以下是从比较经典的书籍中摘录了的几条跟软件设计相关的原则和思想,这些思想不仅可以帮助你在设计软件、编写代码时有用,而且正如Mike Gancarz的《Linux/Unix设计思想》的译者序的作者漆犇所说“如果用“武侠”来作一个类比,这本书就好像是一部教你修炼内功的秘笈,无论新手老手,修炼基本内功都是一件必须持之以恒甚至可以毕生研习的事情,而同时我们也要知道,有时候优秀程序员和普通程序员水平差距的关键也正在于此”。
摘自Robbins和Beebe的《Shell脚本学习指南》软件工具设计概念和原则(P8-P20)
(1)一次做好一件事。 (2)处理文本行,不要处理二进制数据。 (3)使用正则表达式。 (4)默认使用标准输入输出。 (5)避免喋喋不休。 (6)输出格式必须与可接受的输入格式一致。 (7)让工具去做困难的部分。 (8)构建特定工具前,先想想 。摘自Mike Gancarz的《Linux/Unix设计思想》UNIX哲学(P5-P9)
(1)小即是美。 (2)让每一个程序只做好一件事情。 (3)尽快建立原型。 (4)舍高效率而取可移植性。 (5)使用纯文本文件来存储数据。 (6)充分利用软件的杠杆效应。 (7)使用shell脚本来提高杠杆效应和可移植性。 (8)避免强制性的用户界面。 (9)让每一个程序都成为过滤器。10个次原则
(1)允许用户定制环境。 (2)尽量使操作系统内核小而轻巧。 (3)使用小写字母,并尽量保持简短。 (4)保护树木。 (5)沉默是金。 (6)并行思考。 (7)各部分之和大于整体。 (8)寻找90%的解决方案。 (9)更坏就是更好。 (10)层次化思考。