中规模程序的教训(C/C++ 2万-10万行)

 

自己的变量自己管理,减少互相依赖:模块化,服务化,通过函数互相调用。多用get set方法。

多用函数,就算一些过程不能封装成可复用函数,也要尽量封装。

多用变量和复制  每个变量只有一种含义

减少入口 减少参数 不要暴露结构体 让数据来驱动函数前进     多用数据驱动

减少入口函数 减少回调 多使用状态(当然可以用函数去取状态) 减少参数输入

注意生命期由谁管理 不是你创建的资源不要释放。如果需要保留就直接拷贝吧

状态转换编程是很容易出错的 因为你往往忘记把状态调回原来的状态

使用增量结构而不是直接修改 可以减少一些全局变量变化之后影响到全局以及回退的麻烦

不要过度线性化  把数据过度展开没有必要

数据驱动、块映射、线性映射是最常用的思想方法。无论是一般的算法还是hadoop这种东西,都有存在。

 

如何阅读代码:一个程序有逻辑架构、数据架构、辅助函数、简单数据之分,首先要掌握逻辑架构和数据架构,这只占程序代码的小部分,其他的按需阅读。

 

一开始不要加入太多feature。

不要提前设计  不要怕改  其实大部分时候改起来没有需要动很多代码 大部分东西都可以慢慢添加  先简洁设计

不要全面 先写先 先不要关注各种特性的添加 内存的消耗 抓住主要的 把主要的进展搞掂 边编译边检查  有新的想法大胆改  说不定有更好的实现方式

一开始目标就要简单 要想想最简单的方案是什么 太复杂又有没必要的 就不要这样做

 

尽量不要求使用者直接填充结构体,应该做一层封装,自己填参数。

对有可能的性能和内存消耗要有把握,免得以后纠结。

统一结构体,可能会大量浪费内存,但为了简单逻辑,不得不做。

 

 

 

//复杂的逻辑(跨函数)要先设计,以免污染函数。(使函数的逻辑看起来很乱)

//尽量把大函数分成小函数

//复杂的函数(递归)需要合并各个结构体,并使用单个指针传递。函数尽量使用指针,为了以后为了现在。

 

 

 

 

posted on 2013-01-21 14:17  dearplain  阅读(409)  评论(0编辑  收藏  举报