![Avatar notebook default](https://cdn2.jianshu.io/assets/default_avatar/avatar-notebook-default-640f7dde88592bdf6417d8ce1902636e.png)
众所周知,解决代码耦合问题的核心原则之一是信息隐藏。即把所有客户不需要关心的信息尽力隐藏起来,只暴露出仅需要被依赖的东西。这样做不仅可以控制变化...
符号隐藏与依赖管理是软件工程中关乎效率的关键能力。它的核心是“每个软件模块如何在隐藏好自己的同时,还能低成本的精准获取依赖”。做好了这件事,每个...
一个项目中,除了非常底层的软件模块外,大多数模块都需要其它的模块的协助才能完成功能,这需要借助模块之间的依赖管理能力。 依赖管理包含如何控制模块...
前文谈了代码和库的符号隐藏手段。在C/C++中,无论我们如何对符号进行隐藏,最后该暴露给客户的API还是要声明到头文件中发布给别人使用。如何设计...
当程序规模变大之后,人们会对软件进行模块划分,以便分而治之。有了模块之后,就可以将其构建成库(静态库或者动态库)发布给别人使用。 前文所述的符号...
C语言中全局变量和函数的符号是默认外部可访问的。 只要我们知道一个全局变量或者函数的声明,我们就可以在当前的编译单元中直接使用它,即使它定义在另...
由于工作原因,常常会在各种编程语言技术栈下切换。每次切回到C/C++技术栈下,都会为C/C++语言缺乏一个好用的包管理器而不适应好一阵。 包管理...
“C makes it easy to shoot yourself in the foot; C++ makes it harder, but...
代码静态分析 代码静态分析是指在不运行代码的情况下根据代码的静态信息,对代码的各个维度进行分析。 代码静态分析一般包括如下三个方面: 编码规范检...
文集作者