刘智勇 2009年08月26日 星期三 07:16 | 1497次浏览 | 11条评论
一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。
1.)让每个程序就做好一件事。如果有新任务,就重新开始,不要往源程序中加新功能而搞的复杂
2.)假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输入中不要有无关的信息干扰。避免使用严格的分栏格式和二进制格式输入。不要坚持使用交互式输入
3.)尽可能早地将设计和编译的软件投入试用,哪怕是操作系统也不例外,理想情况下,应该是几个星期内。对拙劣的代码别犹豫,扔掉重写
4.)优先使用工具而不是拙劣的帮助来减轻编程任务的负担。工欲善其事,必先利其器
5.)编程的核心是数据结构,而不是算法
6.)拿不准就穷举
17条原则
一、模块原则:使用简单的接口拼合简单的部件
二、清晰原则:清晰胜于机巧
三、组合原则:设计时考虑拼接组合
四、分离原则:策略同机制分离,接口同引擎分离
五、简洁原则:设计要简洁,复杂度能低则低
六、吝啬原则:除非却无它法,不要编写庞大的程序
七、透明性原则:设计要可见,以便检查和调试
八、健壮原则:健壮源于简明与简洁
九、表示原则:把知识叠入数据以求逻辑质朴而健壮
十、通俗原则:接口设计避免标新立异
十一、缄默原则:如果一个程序没什么好说的,说沉默
十二、补救原则:出现异常时,马上推出并给出足够错误信息
十三、经济原则:宁花机器一分,不花程序员一秒
十四、生成原则:避免手工hack,尽量编写程序去生成程序
十五、优化原则:雕琢前先要有原型,跑之前先学会走
十六、多样原则:届不相信所谓"不二法门"的断言
十七、扩展原则:设计着眼未来,未来总比预想来得快
计算机编程的本质就是控制复杂度 -----Fred Brooks
Zeuux © 2024
京ICP备05028076号
回复 姚坚锋 2009年10月18日 星期日 16:54