UNIX 设计哲学:Do one thing and do it well
一次只做一件事,并做到极致。
《UNIX编程艺术》一书,提出的17条编程原则,经过时间和实践的锤炼,发展成为Unix哲学17条原则,在维基百科能搜到。
下面就来说说我对这17要原则的解读——
1、模块化原则(Rule of Modularity)
原文:开发人员应该使用定义良好的界面连接简单的部分来构建程序,所以问题是本地的,部分程序可以在未来的版本中替换以支持新的功能。此规则旨在节省调试复杂,长期且不可读的代码的时间。
解读:这条规则,现在但凡学编程的人都知道,代码要模块化,这样不仅方便别人复用,自己也能更便捷的替换新代码。而实际上,不管是学习还是实践中,模块化原则都是非常好的一条原则,比如,我们学习写作,如果能将一篇文章分模块,并通过逻辑线索串联起来,就能形成一篇不错的文章,其实就是模块化原则在起作用,我们常说的格式化写作,就是这样的。因为模块是可以替换的,模块是组成一堵墙的单元结构,可以是漂亮的空心砖,也可以是纯色的实心砖。同样,工作中也很实用,将不同的大任务分解成不同的小人物和模块,逐个击破,也是非常实用的,关键点就在于模块化是可复用和可替换的。
2、清晰原则(Rule of Clarity)
原文:开发人员应该编写清晰的程序,就好像最重要的沟通是向开发人员读取和维护程序,而不是计算机。这个规则的目的是使代码在将来的代码中尽可能易读和易理解。
解读:清晰在编程中意味着当别人看你写的代码时,能明白其中的含义,同样的,学习中也应该这样&
UNIX 设计哲学:Do one thing and do it well相关推荐
- [总结]Unix设计哲学 Unix编程艺术
转载请注明出处:http://blog.csdn.net/horkychen 学习了<<Unix编程艺术>>第一章关于哲学的部分, 做个汇总. 现在对精简设计, 舍弃华而不实是 ...
- 【转载】Unix设计哲学 回车换行八卦 EOF八卦 UNIX目录结构八卦
昨天看了这篇文章 <关于Unix哲学> 首先用了两个例子,用风扇吹出空肥皂盒 和 太空铅笔,来说明简单设计也能派上作用吧. Unix哲学,Wikipedia上列出了好几个版本,不同的人有不 ...
- 03 unix 设计哲学和流重定向
1 pipeline cat sample-db.csv | head -3 3 Standard Input, Standard Output, and Standard Error 4 Readi ...
- UNIX设计哲学概要
1.小即是美,易于维护,易于理解,节省资源 2.每个程序只做好一件事,减少冗余代码,避免不必要的复杂性和缺乏灵活性,避免过高资源开销 3.尽快建立原型,原型是学习的过程,早期降低风险,减少问题的累积 ...
- Unix编程哲学和软件设计方法
Unix编程哲学: 1,模块原则:使用简洁的接口拼合简单的部件. 2,清晰原则:清晰胜于机巧. 3,组合原则:设计时考虑拼接组合. 4,分离原则:策略同机制分离,接口同实现引擎分离. 5, ...
- Linux九大哲学原理,Linux/Unix设计思想(全新阐释开源哲学,Jon “maddog” Hall作序推荐)...
<Linux/Unix设计思想> 第1章 Unix哲学:集思广益的智慧 1 1.1 NIH综合征 2 1.2 Unix的开发 2 1.3 Linux:一个人加上一百万人的智慧 4 1.4 ...
- Linux/Unix 设计思想概述
IT技术变化日新月异,但是可以发现几十年前设计的Linux系统直到如今依然是稳定高效的操作系统,这在很大程度上源于他的设计哲学,哲学就是哲学,它不会过时.如今软件生产领域出现的各种复杂庞大,运行缓慢, ...
- Golang 入门 : Go语言的设计哲学
前言 设计哲学之于编程语言,就好比一个人的价值观之于这个人的行为. 因为如果你不认同一个人的价值观,那你其实很难与之持续交往下去,即所谓道不同不相为谋.类似的,如果你不认同一门编程语言的设计哲学,那么 ...
- python的设计哲学_Python 的设计哲学
The Zen of Python, by Tim Peters Python 的设计哲学,作者:Tim Peters Beautiful is better than ugly. 优雅胜于丑陋. E ...
最新文章
- 【风控决策】风控决策引擎
- 【GitHub】github相关问题和解决办法
- Qt 控件渐变隐藏消失
- 北大计算机学院 教授 湖南人,北大湘籍教授邹恒甫简历
- 用java实现 两个工具和一个copy功能
- 关于MyAccount无法在standalone环境下运行的问题
- 如何在Spring中将@RequestParam绑定到对象
- c++代码好玩_Python开源学习:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
- 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
- 功能接口 java8_Java 8功能接口
- 查看job运行时间,以便不影响生产数据库正常运行
- 微软易升级服务器,通过“微软Windows10易升”升级Win10 1803全程图解
- oracle varchar2(n) 与 postgresql varchar(n) 的区别
- 110KV降压变电所电气一次部分及防雷保护设计
- C++ 读取和写入txt文件
- 38、Power Query-背后的贤内助M语言
- 四年Android面试遇到的问题整理,值得收藏!
- arcgis统计矢量面内栅格数据像元值个数
- 多个视频如何合 并,怎么合成视频
- Pr 入门教程如何调整肤色?