一次只做一件事,并做到极致。

《UNIX编程艺术》一书,提出的17条编程原则,经过时间和实践的锤炼,发展成为Unix哲学17条原则,在维基百科能搜到。

下面就来说说我对这17要原则的解读——

1、模块化原则(Rule of Modularity)

原文:开发人员应该使用定义良好的界面连接简单的部分来构建程序,所以问题是本地的,部分程序可以在未来的版本中替换以支持新的功能。此规则旨在节省调试复杂,长期且不可读的代码的时间。

解读:这条规则,现在但凡学编程的人都知道,代码要模块化,这样不仅方便别人复用,自己也能更便捷的替换新代码。而实际上,不管是学习还是实践中,模块化原则都是非常好的一条原则,比如,我们学习写作,如果能将一篇文章分模块,并通过逻辑线索串联起来,就能形成一篇不错的文章,其实就是模块化原则在起作用,我们常说的格式化写作,就是这样的。因为模块是可以替换的,模块是组成一堵墙的单元结构,可以是漂亮的空心砖,也可以是纯色的实心砖。同样,工作中也很实用,将不同的大任务分解成不同的小人物和模块,逐个击破,也是非常实用的,关键点就在于模块化是可复用和可替换的。

2、清晰原则(Rule of Clarity)

原文:开发人员应该编写清晰的程序,就好像最重要的沟通是向开发人员读取和维护程序,而不是计算机。这个规则的目的是使代码在将来的代码中尽可能易读和易理解。

解读:清晰在编程中意味着当别人看你写的代码时,能明白其中的含义,同样的,学习中也应该这样&

UNIX 设计哲学:Do one thing and do it well相关推荐

  1. [总结]Unix设计哲学 Unix编程艺术

    转载请注明出处:http://blog.csdn.net/horkychen 学习了<<Unix编程艺术>>第一章关于哲学的部分, 做个汇总. 现在对精简设计, 舍弃华而不实是 ...

  2. 【转载】Unix设计哲学 回车换行八卦 EOF八卦 UNIX目录结构八卦

    昨天看了这篇文章 <关于Unix哲学> 首先用了两个例子,用风扇吹出空肥皂盒 和 太空铅笔,来说明简单设计也能派上作用吧. Unix哲学,Wikipedia上列出了好几个版本,不同的人有不 ...

  3. 03 unix 设计哲学和流重定向

    1 pipeline cat sample-db.csv | head -3 3 Standard Input, Standard Output, and Standard Error 4 Readi ...

  4. UNIX设计哲学概要

    1.小即是美,易于维护,易于理解,节省资源 2.每个程序只做好一件事,减少冗余代码,避免不必要的复杂性和缺乏灵活性,避免过高资源开销 3.尽快建立原型,原型是学习的过程,早期降低风险,减少问题的累积 ...

  5. Unix编程哲学和软件设计方法

          Unix编程哲学: 1,模块原则:使用简洁的接口拼合简单的部件. 2,清晰原则:清晰胜于机巧. 3,组合原则:设计时考虑拼接组合. 4,分离原则:策略同机制分离,接口同实现引擎分离. 5, ...

  6. 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 ...

  7. Linux/Unix 设计思想概述

    IT技术变化日新月异,但是可以发现几十年前设计的Linux系统直到如今依然是稳定高效的操作系统,这在很大程度上源于他的设计哲学,哲学就是哲学,它不会过时.如今软件生产领域出现的各种复杂庞大,运行缓慢, ...

  8. Golang 入门 : Go语言的设计哲学

    前言 设计哲学之于编程语言,就好比一个人的价值观之于这个人的行为. 因为如果你不认同一个人的价值观,那你其实很难与之持续交往下去,即所谓道不同不相为谋.类似的,如果你不认同一门编程语言的设计哲学,那么 ...

  9. python的设计哲学_Python 的设计哲学

    The Zen of Python, by Tim Peters Python 的设计哲学,作者:Tim Peters Beautiful is better than ugly. 优雅胜于丑陋. E ...

最新文章

  1. 【风控决策】风控决策引擎
  2. 【GitHub】github相关问题和解决办法
  3. Qt 控件渐变隐藏消失
  4. 北大计算机学院 教授 湖南人,北大湘籍教授邹恒甫简历
  5. 用java实现 两个工具和一个copy功能
  6. 关于MyAccount无法在standalone环境下运行的问题
  7. 如何在Spring中将@RequestParam绑定到对象
  8. c++代码好玩_Python开源学习:60秒学会一个例子,147段简单代码助你从入门到大师 | 中文资源...
  9. 关于数据库#1063 - Incorrect column specifier for column 'xxx'异常
  10. 功能接口 java8_Java 8功能接口
  11. 查看job运行时间,以便不影响生产数据库正常运行
  12. 微软易升级服务器,通过“微软Windows10易升”升级Win10 1803全程图解
  13. oracle varchar2(n) 与 postgresql varchar(n) 的区别
  14. 110KV降压变电所电气一次部分及防雷保护设计
  15. C++ 读取和写入txt文件
  16. 38、Power Query-背后的贤内助M语言
  17. 四年Android面试遇到的问题整理,值得收藏!
  18. arcgis统计矢量面内栅格数据像元值个数
  19. 多个视频如何合 并,怎么合成视频
  20. Pr 入门教程如何调整肤色?

热门文章

  1. Window10下VS2019编译 Chromium
  2. 【Delphi Stringgrid 设置表格文字居中后有重影,去除重影方法】
  3. 【Bootstrap】<前端框架>Bootstrap布局容器栅格网格系统
  4. 数图互通高校房产管理——房屋模拟分配建设
  5. (吴恩达)6.应用机器学习的建议、机器学习系统的设计
  6. 【CSS】CSS盒子模型
  7. 十一届蓝桥杯大赛延期—心路历程及退赛
  8. 本地化 A NOTE 桌面便签软件 ---最佳开源软件之一
  9. 如果你在做安利或者认识做安利的人
  10. 期货开户手续费组成和最低价