软件开发的哲学
来源:互联网 发布:mac 通信检测声音变小 编辑:程序博客网 时间:2024/05/29 07:11
说到Unix为我们所带来的软件开发的哲学,我必需要说一说。Unix遵循的原则是KISS(Keep it simple, stupid)。在http://en.wikipedia.org/wiki/Unix_philosophy 上有很多的基本上大同小异的Unix哲学,都是很经典的。
Doug McIlroy 是认为UNIX的哲学是这样的:三条哲学,简明扼要,就是这三条哲学贯穿着整个Unix世界。尤其是第一条“do one thing and do it well”真是相当精彩!
- Write programs that do one thing and do it well.
- Write programs to work together.
- Write programs to handle text streams, because that is a universal interface.
只要是Unix的程序员,他们会比别的程序员在任何时候都会不停地强调着这三条哲学。
而《The Art of Unix Programming》总结了下面这些哲学,都是至理名言啊。
- Rule of Modularity: Write simple parts connected by clean interfaces.
- Rule of Clarity: Clarity is better than cleverness.
- Rule of Composition: Design programs to be connected to other programs.
- Rule of Separation: Separate policy from mechanism; separate interfaces from engines.
- Rule of Simplicity: Design for simplicity; add complexity only where you must.
- Rule of Parsimony: Write a big program only when it is clear by demonstration that nothing else will do.
- Rule of Transparency: Design for visibility to make inspection and debugging easier.
- Rule of Robustness: Robustness is the child of transparency and simplicity.
- Rule of Representation: Fold knowledge into data so program logic can be stupid and robust.
- Rule of Least Surprise: In interface design, always do the least surprising thing.
- Rule of Silence: When a program has nothing surprising to say, it should say nothing.
- Rule of Repair: When you must fail, fail noisily and as soon as possible.
- Rule of Economy: Programmer time is expensive; conserve it in preference to machine time.
- Rule of Generation: Avoid hand-hacking; write programs to write programs when you can.
- Rule of Optimization: Prototype before polishing. Get it working before you optimize it.
- Rule of Diversity: Distrust all claims for “one true way”.
- Rule of Extensibility: Design for the future, because it will be here sooner than you think.
X Windows 的设计者 Mike Gancarz 给出了下面九条哲学思想
- Small is beautiful.
- Make each program do one thing well.
- Build a prototype as soon as possible.
- Choose portability over efficiency.
- Store data in flat text files.
- Use software leverage to your advantage.
- Use shell scripts to increase leverage and portability.
- Avoid captive user interfaces.
- Make every program a filter.
在今天,这种思想依然被传承着,在影响着世界上各个角落的每一个程序员。
原文链接:http://coolshell.cn/articles/2324.html
- 软件开发的哲学
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考
- 软件开发的哲学思考(转载)
- 对于软件开发哲学的经验谈
- 对于软件开发哲学的经验谈
- 对于软件开发哲学的经验谈
- 通过哲学的视角来看软件开发
- 哲学与软件开发
- 软件的哲学思维
- 东方哲学与软件开发
- 软件开发哲学反思录
- SG函数资料(入门必备)
- python multiprocessing 两种创建方式
- 获取系统时间
- 关于jQuery的data()方法的了解
- Lance老师UI系列教程第五课->自定义风格单选多选对话框的实现
- 软件开发的哲学
- memcpy与memmove的区别
- excel蛇(s)形分班函数
- DH 密钥交换
- Android4.1 onTouchEvent分析 (选字模式等)
- Ext.Net 1.x_Ext.Net.GridPanel序号宽度自适应(待完善)
- Struts2.1整合dwr2的问题及解决办法
- Disable auto select after clicking magnifier
- mysql命令行下的数据导入与导出