前一段看完电视剧《装台》,又赶紧去读了一遍小说。从中体会到很多“活着”的意义。意犹未尽,突然有一个想法。趁着春节放假,到作者在剧情中提到的各个地...
背景: 假设有一个开源/第三方的软件模块ModuleA,我们要基于其上做特性的扩展。我见过的较多的做法是二者的代码实现揉在一起,这样会导致一个问...
函数 函数参数:最好没有,一个次之,两个再次。三个以上不可取。 原因在于,多个参数不便于函数测试,并且多个参数影响阅读。 返回值尽量从返回值输出...
架构的定义 软件架构,是在交付基本功能的基础上,能够使得系统易于开发、部署、运行和维护,用于支撑软件系统的生命周期。在架构设计中要尽可能长时间地...
1 并发和竞态产生的原因 并发是操作系统编程中的核心问题之一。我们必须要能解决对共享资源的并发访问。 并发产生资源竞争的情况如下: 中断和进程之...
1 基本概念 bus,device,driver是经典的linux的驱动抽象模型中的三个元素。我们先从概念角度,讲下他们分别长什么样。当然,理解...
宏因为其各种副作用而备受诟病,就像goto一样,有些产品谈宏色变。但是语言特性本身并无善恶之分,其善恶在于使用者。有时候使用某些语言特性,能够非...
最早的4+1视图由Philippe Kruchten于1995年提出,虽然历经26年的时间,中间使用过程中也被不断丰富,但是今天回头看最初的版本...
深模块/浅模块 作者使用深模块和浅模块的概念来形容模块封装的不同程度。 深模块:即暴露给用户极少的必要接口,其它的实现细节尽量封装在模块内部/接...