Stephan14 Blog

享受编程,信仰技术

libevent源码分析

定时器实现

背景 以前搞mesos,接触最多的基础库就是libprocess,说实话libprocess使用了大量的C++11的新特性,对于大多数的人来说,阅读这种代码的门槛还是比较高,我也只是对actor模型整体的有了认识,但是对于libprocess中的很多细节之处还是没有很好的掌握,每隔一段时间在回头看libprocess的代码时,都会有新的发现。 最近想找一个成本比较低的基础库继续学习,然后就...

mysql update使用

大量数据update优化

场景 最近使用Python语言基于SQLAlchemy编写一些查数据的操作,要向数据库中大量更新数据(大约50000行的数据),本来是通过modle的方式更新数据库中的相应的数据,这样开发成本比较低,比较方便,代码如下: if reserved_empty: if len(reserved_empty) < len(codes): replace_code...

状态模式

基础介绍

使用意图 由于转态导致行为不同,为了方便行为自动适应状态的改变,去掉if或者case语句 结构图 使用场景 对象收到其他对象的请求时,根据自身的不同状态做出不同的反应 一个操作中含有大量的条件分支语句,并且这些分支依赖于状态 优点 通过增加State的子类可以容易的增加新的状态和转化 状态转换的时候,Context类中只需要重新绑定一个State变量,无须重...

Linux下各文件夹含义

Linux基础

分区 在 Linux系统里面,“分区”,被称作“挂载点”,简单明了的说,“挂载点”意思就是:把一部分硬盘容量,“分”成一个文件夹的形式,用来干什么事情。这个文件夹的名字,就叫做:“挂载点”。所以,和Windows有着本质上的超级大的区别,你在任何linux发行版系统里面,绝对不会看到C盘,D盘,E 盘这样的,你能看到的,只有“文件夹”形式存在的“挂载点”。 含义 ...

Linux中使用正则表达式

正则表达式

介绍 正则表达式(regular expression)是一种指定字符串模式的简洁方式,通常简写为regex或re,最常见的应用就是搜索字符串。 使用方法 通过一个例子来学习正则表达式。现在有如下的一个data.txt文件: Harley is smart Harley I like Harley the dog likes the cat 目...

c指针和数组

基础知识

尝试写了一个小程序,但是运行时发生错误,就简单的回顾了一下C语言中的数组名和指针 相同点: 他们都具有指针值,都可以通过下标引用和间接访问操作。 不同点: 声明一个数组的时候,编译器先根据指定的元素的数量分配内存空间容纳数组元素,在创建数组名,注意数组名是一个指针常量。 这两种声明只有当他们是函数的形参的时候才是相等的。 ...

新人成长

送给刚入职场的年轻人

六大意识是百度在数年前每个入职的工程师必被灌输的职场意识,若干年后更深以为然。 质量意识 流程意识 world class procedure:用流程解决具有共性的、重复性问题,提高效率 既有的流程应严格遵守;没有流程的应创建流程 要对自己的工作质量负责,不要期待...