中规模程序的教训(C/C++ 2万-10万行)
自己的变量自己管理,减少互相依赖:模块化,服务化,通过函数互相调用。多用get set方法。
多用函数,就算一些过程不能封装成可复用函数,也要尽量封装。
多用变量和复制 每个变量只有一种含义
减少入口 减少参数 不要暴露结构体 让数据来驱动函数前进 多用数据驱动
减少入口函数 减少回调 多使用状态(当然可以用函数去取状态) 减少参数输入
注意生命期由谁管理 不是你创建的资源不要释放。如果需要保留就直接拷贝吧
状态转换编程是很容易出错的 因为你往往忘记把状态调回原来的状态
使用增量结构而不是直接修改 可以减少一些全局变量变化之后影响到全局以及回退的麻烦
不要过度线性化 把数据过度展开没有必要
数据驱动、块映射、线性映射是最常用的思想方法。无论是一般的算法还是hadoop这种东西,都有存在。
如何阅读代码:一个程序有逻辑架构、数据架构、辅助函数、简单数据之分,首先要掌握逻辑架构和数据架构,这只占程序代码的小部分,其他的按需阅读。
一开始不要加入太多feature。
不要提前设计 不要怕改 其实大部分时候改起来没有需要动很多代码 大部分东西都可以慢慢添加 先简洁设计
不要全面 先写先 先不要关注各种特性的添加 内存的消耗 抓住主要的 把主要的进展搞掂 边编译边检查 有新的想法大胆改 说不定有更好的实现方式
一开始目标就要简单 要想想最简单的方案是什么 太复杂又有没必要的 就不要这样做
尽量不要求使用者直接填充结构体,应该做一层封装,自己填参数。
对有可能的性能和内存消耗要有把握,免得以后纠结。
统一结构体,可能会大量浪费内存,但为了简单逻辑,不得不做。
//复杂的逻辑(跨函数)要先设计,以免污染函数。(使函数的逻辑看起来很乱)
//尽量把大函数分成小函数
//复杂的函数(递归)需要合并各个结构体,并使用单个指针传递。函数尽量使用指针,为了以后为了现在。