"简单原则"----尽量用简单的方法解决问题----是"Unix哲学"的根本原则。(KISS 原则)
KEEP IT SIMPLE , STUPID !
关于Unix哲学,Eric S. Raymond在《The Art of Unix Programming》一书中,一口气总结了17条:
1、 模块性原则:写简单的,通过干净的接口可被连接的部件;
2、 清楚原则:清楚要比小聪明好。
3、 合并原则:设计能被其它程序连接的程序。
4、 分离原则:从机制分离从策略,从实现分离出接口。
5、 简单原则:设计要简单;只有当你需要的时候,增加复杂性;
6、 节俭原则:只有当被证实是清晰,其它什么也不做的时候,才写大的程序
7、 透明原则:为使检查和调试明显更容易而设计
8、 健壮性原则:健壮性是透明和简单的追随者
9、 表现原则:把知识整理成资料,于是程序逻辑能变得易理解和精力充沛的。
10、 最小意外原则:在接口设计中,总是做最小意外事情
11、 沉默原则:当一个程序令人吃惊什么也不说的时候,他应该就是什么也不说
12、 修补补救:当你必须失败的时候,尽可能快的吵闹地失败
13、 经济原则:程序员的时间是宝贵的;优先机器时间节约它。
14、 产生原则:避免手工堆砌;当你可能的时候,编写可以写程序的程序;
15、 优化原则:在雕琢之前先有原型;在你优化它之前,先让他可以运行;
16、 差异原则:怀疑所有声称的“唯一真理“
17、 可扩展原则:为将来做设计,因为它可能比你认为来的要快
如果你想最简单地完成一项编程任务,我认为可以从四个方面入手:
1. 清晰原则。
代码要写得尽量清晰,避免晦涩难懂。清晰的代码不容易崩溃,而且容易理解和维护。重视注释。不为了性能的一丁点提升,而大幅增加技术的复杂性,因为复杂的技术会使得日后的阅读和维护更加艰难。
2. 模块原则。
每个程序只做一件事,不要试图在单个程序中完成多个任务。在程序的内部,面向用户的界面(前端)应该与运算机制(后端)分离,因为前端的变化往往快于后端。
3. 组合原则。
不同的程序之间通过接口相连。接口之间用文本格式进行通信,因为文本格式是最容易处理、最通用的格式。这就意味着尽量不要使用二进制数据进行通信,不要把二进制内容作为输出和输入。
4. 优化原则。
在功能实现之前,不要考虑对它优化。最重要的是让一切先能够运行,其次才是效率。"先求运行,再求正确,最后求快。"(Make it run, then make it right, then make it fast.)90%的功能现在能实现,比100%的功能永远实现不了强。先做出原型,然后找出哪些功能不必实现,那些不用写的代码显然无需优化。