《程序员修炼之道》 读书笔记

破窗理论,代码中不应该留“破窗”(低劣的设计,错误决策,糟糕的代码),他会让软件腐烂,影响其他开发人员的情绪,影响功能扩展,在错误的架构上搭建,如在沙堆上建高楼。


温水煮青蛙,留心身边的变换,需求可能在缓慢变化,运行环境可能在缓慢变化,如果不注意,就会被煮熟。


不要重复你自己

设计上的重复(如设计一个类,有成员变量 Point start; Point end; double lenth;,这里的lenth字段可以由end-start算得,就产出代码重复)

无耐性重复(如之前写过一个相似的例程,拷贝过来,并做少许改动。  或直接用数字代表一个循环的上限,产生”魔数“,不知道为什么要用这个数字)

开发者间的重复(同个项目的不同开发者,写出了相同功能的代码,造成重复性劳动)


开发中的自动化

源码控制系统自动构建网站(每晚自动构建,从代码、需求分析、设计文档提取内容,生成流程图)

自动批准流程

(让计算机去做重复、庸常的事,它比我们做得更好,我们得先制作工具,如网页生成器、代码生成器、测试装备)


程序员有用的工具:

学会使用脚本语言快速设计软件。(python)

使用命令帮你做事,IDE的功能是有限的,不高效的。

使用源码控制,不用担心代码丢失(可恢复历史版本)。

自己编写代码生成器,生成可在不同语言间转换,或生成灵活的代码的处理流程,或生成查找表(如正弦表)。(不仅仅生成代码,也可以生成html,文本,xml)

使用vim或emacs等编辑器进行模式化编辑,加快代码编辑速度。

doc文档生成器(DOC++),根据源码生成文档


要配置,不要集成(把容易变动的程序设置作为配置项,读取配置文件来配置)


时间耦合,哪些模块可以并行处理,而不是前后顺序执行,为并发进行设计。


估算算法的复杂度,根据处理的数据量和概率选择算法。


有些问题不一定非要用代码解决,可以转换为管理问题,可以转换为人工处理问题,或控制流程避开这个问题。




你可能感兴趣的:(编程之路,读书笔记,心情杂谈)