都是些在项目中的小感想,开个头,慢慢补充:
1.千万不要假设别人提交给你的数据是合法的,不管是网络传输还是函数调用,自己的模块应该具有足够的免疫力。
2.尽量减少和别的模块的耦合,当耦合不可避免时,尽量避免使用函数调用等紧密耦合方式,而应该使用消息队列,SOCKET等松耦合方式。
3.当自己的模块不得不依赖于别人的实现时,在依赖发生点添加粘合层,使自己的模块除了系统调用和库函数外只依赖于自己的函数。
4.许多功能要求都可以抽象成get-set和ctrl三个操作,get,set操作的是属性,ctrl操作的是方法。
5.许多模块都可以抽象成这样的一个组件
|============|
in ===========| |============out
|============|
||
||
||
||
ctrl
6.三层结构是一种不错的设计思想,它实现了数据传输,数据处理,数据展现的分层化处理。
7.用C设计界面程序时,基于对象的思想和消息机制的运用是必要的。
8.不要在宏定义中改变传入参数的值,不要在传参过程中改变变量的值,对于后者,如果是宏参数,结果很可能不是想要的,如果是函数参数,它依赖于求值顺序。