MilkBeer Blog

天下事有难易乎?为之,则难者亦易矣;不为,则易者亦难矣。

如何避免冗长的 if-else:策略模式

Avoid tedious if-else: The Strategy Pattern

本文概览: 1. 原理与实现 1.1. 策略的定义 1.2. 策略的创建与使用 2. 优化代码 3.小结 策略模式最常见的应用场景是,利用它来避免冗长的 if-else 或 switch 分支判断,以及提供框架的扩展点等。 1. 原理与实现 在 GoF 的《设计模式》一书中,它是这样定义的:Define a family ...

分布式事物:All or nothing

Distributed transaction: All or nothing

本文概览: 一、什么是分布式事务? 1.1. 刚性事务与柔性事务 二、如何实现分布式事务? 2.1. 二阶段提交方法 2.2. 三阶段提交方法 2.3. 基于分布式消息的最终一致性方案 三、参考 一、什么是分布式事务? 事务:是指包含一系列操作的、一个有边界的工作序列,有明确的...

如何理解 Go 中的反射

The Laws of Reflection

本文概览: 1. Types and interfaces 2. The representation of an interface 3. Three law of reflection 3.1. Reflection goes from interface value to reflection object. 3.2. Reflection...

Go 中的错误与异常

The error & exception in Go

本文概览: Go 中的错误处理 1. 传播错误 2. 操作失败重试 3. 输出错误程序 4. 忽略错误 Go 中的异常处理 在 Go 语言中,错误和异常从语言机制上面讲,就是 error 和 panic 的区别,放到别的语言也一样,别的语言没有 error 类型,但是有错误码之类的,没有panic,但是有 ...

如何使用 Pandas

How To Use Pandas

本文概览: 一、什么是 pandas 二、Pandas 最常使用方法 2.1. Reading data 2.2. Writing data 2.3. Seeing the data 2.4. Logical operations 2.5. Updating the data 三、Pandas ...

Adaboost Algorithm

数学原理 1. 初始化数据集权重 给定一个数据集: $$D=\{(x^{(1)}, y^{(1)}), (x^{(2)}, y^{(2)}) … (x^{(n)}, y^{(n)})\}$$ 并为数据集初始化一个对应的权重分布 $W_{k,i}$,得: $$W_{k,i} = (w_{k,1}, w_{k,2} … w_{k,n})$$ 初始时设置 $k=1$,且初始时权重向...

整合 Flume+Kafka+Spark 实战配置(macOS)

Flume+Kafka+Spark combat configuration (macOS or Linux)

本文概览: 一、Flume 1.1 配置 1.2 启动与测试 二、Kafka 2.1 配置 - server.properties 文件 2.2 启动与测试 - 单 Kafka 测试 ...

Flume 初识与搭建

Meet and build Flume

本文概览: 1 什么是 Flume 2 Flume 架构 2.1 数据流模型 2.1.1 可靠性 2.1.2 可恢复性 2.2 数据收集部件 Source 2.3 数据流通部件 Channel 2.4 数据转发部件 Sink 2...

50+ 精选数据结构和算法面试问题 【译】

附带算法对应解答

本文概览: Top 50 算法和编程面试问题 1. 数组类面试问题 2. 链表类面试题 3. 字符串类面试问题 4. 二叉树面试问题 5. 各式面试问题 现在,你应该准备好了 原文链接:https://hackernoon.com/50-data-structure-and-algorit...

Hadoop 学习系列(四)之 MapReduce 原理讲解

Hadoop 四大核心组件(三)

本文概览: 一、What is MapReduce? 二、The Algorithm Mapper Reducer Partitioner 三、WordCount Example 四、Advantage & Shortcoming of MapReduce 本篇文章将会介绍 Hadoop 重要的计算框架...