In Object Oriented Programming, we deal with classes and their variations. A subclass is conceptually a more concrete realization of it’s superclass. Subclasses appear to be a family of classes with certain extent of variation.

Variations are also introduced in functions. A function can derive a family of functions that are similar but with the same purpose. We will use Python functions as example to demonstrate the use of function variations, and effectively how it changes our way of writing clean code and tests.

Continue reading

代码审查(Code Review)是很多大公司里面都有的一个流程。它指的是一个人编码,另有几个人负责审查,并提出修改意见。代码审查在大多数情况下对公司整体的工程质量是有提高的,但是如果使用不当的话,很可能反倒会降低工程质量。代码审查究竟在一个组织里面是有正面效应或者是负面效应取决于很多因素,而我认为其中最重要的是代码审查在开发过程中扮演的角色。

Continue reading

我在工作中采用Reactive Programming(RP)已经有一年了,对于这个“新鲜”的辞藻或许有一些人还不甚熟悉,这里就和大家说说关于RP我的理解。希望在读完本文后,你能够用Reactive Extension进行RP。

Continue reading

硅谷夜谈

in Life

旧金山严格意义上不算是硅谷的一部分,它其实坐落于硅谷以北。城市的占地面积不大,百分之九十是一马平川的居民区。东北角的Financial District是这里唯一高楼耸立的区域,人如川流,在他们之中不少都是科技工作者。贯穿整个Financial District的是Market Street,好似是旧金山的脊柱一般,撑着这个科技之都鲜活的躯体。 随着越来越多的硅谷公司北上,旧金山其实和硅谷已然是
Continue reading

Debugging with strace

in Tools

strace is a tool that helps to inspect system calls your application makes. I found it really useful this week when I debugging a complex python application. I am not going through my original problem though, but will show you some typical examples as proof of concept.

Continue reading

(本文投稿于InfoQ,无论其是否刊登,其他第三方转载请务必注明出处)

现如今,Docker已经成为了很多公司部署应用、服务的首选方案。依靠容器技术,我们能在不同的体系结构之上轻松部署几乎任何种类的应用。在洛杉矶时间2015年10月21日于旧金山展开的Twitter Flight开发者大会上,来自Fabric的工程师Joan Smith再次谈到了这一点。

Continue reading

在学习一些语言的时候,你经常会听到“函数是一等公民”这样的描述。那么究竟函数在这类语言中扮演着怎么样的一个角色?它和函数式编程、无状态设计、封装抽象有什么千丝万缕的联系?

Continue reading