这只是我自己的总结,其中一些我没有深刻印象的东西就没有列出来。
其他的:
1.NIH(Not Invented Here)--------非我发明就要自己写,要利用别人的优秀代码
2.三个系统:(1)第一个,初创系统:简单,做出之前没有的东西
(2)第二个,专家系统:功能全,臃肿
(3)第三个,改进系统:大幅优化,颠覆性,最优体验
系统的开发都要经历这三个阶段。
九个准则:
1.小即是美:(1)易于维护
(2)易于理解
(3)易于结合
(4)耗费小
2.让每个程序只做好一件事
3.快速建立原型:(1)降低风险
(2)专注整体架构
4.舍高效率而取可移植性:(1)硬件发展快
(2)过度优化通常不可移植
(3)当今跨平台的趋势
5.采用纯文本存储数据:(1)通用
(2)易于查看,编辑
(3)简化工具使用
6.充分利用软件杠杆效应:(1)借用优秀代码
(2)避免NIH
(3)让你的代码能被别人借鉴
(4)让一切自动化-----自动化测试
7.用shell脚本提高杠杆效应和可移植性
8.避免强制的用户界面(CUI):(1)命令解释器难以编写
(2)难以与其他程序结合,无法运用杠杆效应
(3)界面和程序分离
9.让每个程序都成为过滤器
小准则:
1.允许用户定制环境
2.纸质数据无法管理,将数据留在硬盘里
3.寻求90%解决方案
4.小写字母易于阅读
5.部分之和大于整体
6.silence------ls命令,当目录里没有文件时候什么也不显示