文档章节

unix编程艺术与原则

水海云
 水海云
发布于 2017/09/07 20:43
字数 401
阅读 31
收藏 0

尽量使用简单的算法配合简单的数据结构。

编程的核心是数据结构,而不是算法。数据要比编程逻辑更容易驾驭,在设计中,你应该主动将代码的复杂度转移到数据之中去。

UNIX原则

  1. 模块原则:使用简单的接口拼合简单的部件
  2. 清晰原则:清晰胜于机巧
  3. 组合原则:设计时考虑拼接组合
  4. 分离原则:策略与机制分离,接口与引擎分离
  5. 简洁原则:设计要简洁,复杂度能低则低
  6. 吝啬原则:除非别无他法,不要编写庞大的程序
  7. 透明性原则:设计要可见,以便审查和调试
  8. 健壮原则:健壮来自透明与简洁
  9. 表示原则:把知识叠入数据以求逻辑质朴而健壮。
  10. 通俗原则:接口设计避免标新立异
  11. 缄默原则:如果程序没什么好说的,就保持沉默
  12. 补救原则:出现异常时,马上退出并给出足量的错误信息
  13. 经济原则:宁花机器一分,不花程序员一秒
  14. 生成原则:避免手工hack,尽量编写程序去生成程序
  15. 优化原则:雕琢前先得有原型,跑之前先学会走
  16. 多样原则:决不相信所谓的“不二法门”的断言
  17. 扩展原则:设计着眼于未来,未来总比预想快

K.I.S.S:Keep It Simple,Stupid.

Those who cannot remember the past are candemned to repeat it. ——《The Life of Reason》,1905 George Santayana

© 著作权归作者所有

共有 人打赏支持
水海云
粉丝 50
博文 120
码字总数 101938
作品 0
深圳
程序员
Unix设计哲学原则(摘自《Unix编程艺术》)

看了《Unix编程艺术》,这个里面讲的观念对现有产品和项目的设计有很多借鉴意义,建议大家都能读读(不过中文版翻译的有点烂,看的有点纠结)。这里总结下几种原则。 Unix哲学的原则: --模块...

IT熊猫
2015/01/21
338
0
编程的艺术门槛

编程是门艺术,这个说法由来已久。最近在朱赟的公众号(滴答滴答)读到一篇文章《设计是门逻辑学,然后才是美学》,文中作者漂洋过海追寻艺术,老师却说:“设计不是艺术!”。如果设计都不是...

切切歆语
2016/11/04
6
0
unix设计十七条原则之一(unix编程艺术笔记)

最近在学习《unix编程艺术》。第一章非常不错,讲了很多Unix的历史,哲学基础,其中最重要的是提到的十七条设计原则。很多原则自己也知道,但是从来没有总结的如此详细深刻。 下面的内容大部...

晨曦之光
2012/06/06
43
0
[转]什么是数据驱动编程

前言: 最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容...

文艺小青年
2017/05/25
0
0
什么是数据驱动编程

前言: 最近在学习《Unix编程艺术》。以前粗略的翻过,以为是介绍unix工具的。现在认真的看了下,原来是介绍设计原则的。它的核心就是第一章介绍的unix的哲学以及17个设计原则,而后面的内容...

晨曦之光
2012/06/06
82
0

没有更多内容

加载失败,请刷新页面

加载更多

Bash脚本输入参数的使用

Bash脚本输入参数的使用 Bash脚本传入的参数,在脚本中以位置的形式进行访问,即 $n 。例如,$1 为执行脚本的第一个参数,$2 为执行脚本的第二个参数。另外Bash中还提供了一些其它的便捷操作...

小陶小陶
22分钟前
2
0
多线程场景下,触发OOM的线程是否会影响其他线程的工作

public static void main(String[] args) { Thread t1 = new Thread(new Runnable() { @Override public void run() { int i = 0;......

麦馍
26分钟前
2
0
模拟Dubbo的zookeeper一致性Hash发现

接之前一篇<手写zookeeper来模拟dubbo的注册/发现>,使用一致性Hash来进行查找需要寻找的服务. Hash处理接口 public interface HashFunc { public Long hash(Object key);} 一致性Has...

算法之名
37分钟前
13
0
#mysql50# not Exist

data 目录有中文名称,可能是复制的"复件...."

少年不搬砖老大徒伤悲
51分钟前
2
0
在yii2中,让你action参数支持POST数据的小方法

我们先来看一段代码 class RaController extends Controller { public $enableCsrfValidation = false; public function actionSay($username = '',$city = ''){ echo "{$......

阿北2017
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部