分类: IT职场
2012-06-21 09:47:13
这周末老学员聚会,扔点干货给大家,我学习的笔记,预计这个系列会有10多个。
1.让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。
2.假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序还是未知的。输出中不要有无关信息干扰。避免使用严格的分栏格式和二进制格式输入。不要坚持使用交互式输入。
3.尽可能早的将设计和编译的软件投入试用,哪怕是操作系统也不例外,理想情况下,应该是几星期内。对拙劣代码别犹豫,扔掉重写。
4.优先使用工具而不是拙劣的帮助来减轻编程任务的负担。工欲善其事,必先利其器。
5.一个程序只做一件事,并做好。程序要能协作。程序要能处理文本流,因为这是最通用的接口。
6.你无法断定程序会在什么地方耗费运行时间,瓶颈通常出现在想不到的地方,所以别急着胡乱找个地方改代码,除非你已经证实那儿就是瓶颈所在。
7.花哨算法比简单算法更容易出BUG、更难实现。尽量使用简单算法配合简单的数据结构。
8.数据压倒一切。如果已经选择了正确的数据结构并把一切组织得井井有条,正确的算法就不言自明。编程的核心是数据结构,而不是算法。
9.拿不准就穷举。
10.输入输出方面,提倡简单、文本化、面向流、设备无关的格式。
11.程序若不采用简单的文本输入输出流,它们会变得极难衔接。
12.要想让程序具有组合性,就要使程序彼此独立。
13.将代码的复杂度转移到数据中去。
14.先求运行,再求正确,最后求快。
15.永远不相信有不二法门。
16.keep
it simple stupid
,让你的程序简单到2B。
17.只要可行,一切都应该做成来源和目标无关的过滤器。
18.数据流应尽可能文本化。
19.数据库部署和应用协议应尽可能文本化。
20.复杂的前端和后端应该泾渭分明。
21.宽收严发,对接收的东西要包容,对输出的东西要严格。
22.过滤时,不需要丢弃的信息绝不丢。
23.小就是美。在确保完成任务的基础上,程序功能尽可能的少。
24.开发是一种高水平的游戏。
原文地址: