UNIX哲学起源于Ken Thompson早期关于如何设计一个服务接口简介、小巧精干的操作系统的思考,随着UNIX文化在学习如何尽可能发觉Thompson设计思想的过程中不断成长,同时一路上还从其它许多地方博采众长。
是自下而上的,注重实效,立足于丰富的经验。

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

第4章 模块性:保持清晰,保持简洁
4.1 封装和最佳模块大小
4.2 紧凑型和正交性
4.2.1 紧凑型
4.2.2 正交性
4.2.3 SPOT原则
Don’t Repeat Youself
真理的单点性 Single Point of Truth
4.2.4 紧凑性和强单一中心
4.2.5 分离的价值
限制不仅提倡了经济性,而且某种程度上提倡了设计的优雅。要达到这种简洁性,尽量不要去想一种语言或操作系统最多能做多少事情,而是尽量去想这种语言或操作系统最少能做的事情–不是带着假想行动,而是从零开始(禅称为“初心”(beginner’s mind)或者叫“虚心”(empty mind))。
要达到紧凑、正交的设计,就从零开始。禅教导我们:依附导致痛苦;软件设计的经验教导我们:依附于被人们忽略的假定将导致非正交、不紧凑的设计,项目不是失败就是成为维护的梦魇。
禅授超然,可以得教化,去苦痛。
Unix传统也从产生设计问题的特定、偶然的情形讲授分离的价值。抽象、简化、归纳。因为我们编制软件是为了解决问题,所以我们不能完全超然于问题之外–但是值得费点心思,看看可以抛弃多少先入之见,看看这样做能不能使设计变得更紧凑、更正交。这样做下来,代码复用经常由此变为可能。
关于Unix和禅的关系的笑话同样也是Unix传统中一个仍然鲜活的部分。这绝非偶然。
4.3 软件是多层的
4.3.1 自顶向下和自底向上
4.3.2 胶合层

UNIX编程艺术 UNIX哲学相关推荐

  1. 【转载】Unix编程艺术——Unix哲学

    Unix编程艺术主要介绍了Unix系统领域中的设计和开发哲学.思想文化体系.原则与经验.此文大致摘录了Unix的哲学. web程序员也应该看看此书,软件开发和web开发很多地方都是相通的.看完之后,我 ...

  2. Unix编程艺术——Unix哲学

    题外话:一个月之前,刚刚读完<unix编程艺术>这本据说有些"愤青"的书,读书的过程,感觉是种享受,不但unix本身是艺术,连作者著书也是艺术,本想就本书写篇读感,但是 ...

  3. Unix 哲学的一些原则——《Unix 编程艺术》

    Unix 哲学是在 Unix 先哲们和 Unix 本身所作出的榜样中体现出来的.可以概括为以下原则: 模块原则:使用简洁的接口拼合简单的部件. 用清晰的接口把若干简单的模块组合成一个复杂软件. 这样, ...

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

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

  5. 读《UNIX编程艺术》随记

    2012-07-07 <UNIX编程艺术>这本书是人介绍的, 一看到这书的厚度,我有想打退堂鼓的冲动.好厚的说. 不过,听到可以不用细也可以,就硬着头接下这本书了. 先看它的书皮,一位师傅 ...

  6. 三读《UNIX编程艺术》

                                              三读<UNIX编程艺术>           第一次读<UNIX编程 艺术>是2004年的夏 ...

  7. 《UNIX编程艺术》读书笔记

    <!-- /* Font Definitions */ @font-face {font-family:Wingdings; panose-1:5 0 0 0 0 0 0 0 0 0; mso- ...

  8. Unix编程艺术和代码大全比较阅读

    最近在看Unix编程艺术,收获颇多,联想起以前看过的同样获益匪浅的代码大全,突然萌生出比较两者观点的想法,那就开始吧. Unix编程艺术:简称U. 代码大全:简称C. 1) 函数的长度 U ( 4.1 ...

  9. 《Unix 编程艺术》 理解

    一:机制, 而不是策略 Unix文化贯穿始终的一条设计主线, 被翻译为: 机制, 而不是策略(Mechanism, not policy), 这句话的英文解释如下: The distinction b ...

  10. Unix编程艺术(前言)

    Preface 前言 Unix is not so much an operating system as an oral history. --NealStephenson Unix与其说是一个操作 ...

最新文章

  1. 网络协议栈11:Connect函数分解之TCP层
  2. leetcode 279. 完全平方数 bfs广度优先解法 图解 动态规划解法 c代码
  3. 编译与解释实践(1)-flex and bison 配置安装
  4. 复现经典:《统计学习方法》第14章 聚类方法
  5. linux虚拟文件系统vfs
  6. VTK:PolyData之InterpolateMeshOnGrid
  7. python花瓣飘零_Python爬虫练习之花瓣网
  8. guid主键 oracle_使用GUID作为数据库主键的测试
  9. mysql oracle 备份数据库备份_完整备份Oracle数据库
  10. C++设计模式详解之装饰者模式解析
  11. 什么样的老板不适合找运营?
  12. 物体识别_深度学习在物体识别中的应用探讨:以ImageNet和人脸识别为例
  13. python软件-python 2.7官方版
  14. 自有数据集上,如何用keras最简单训练YOLOv3目标检测
  15. Java编程中“为了性能”尽量要做的26点
  16. install java 7 or 8 on ubuntu14
  17. 2013考研数学复习指南(理工类)-陈文灯
  18. tp5 in_array 在 view页面用法
  19. python查询缺失值所在位置使用scipy_在稀疏lil_matrix(Scipy / Python)中查找最大值及其索引...
  20. 南梦宫 拼图笔记 1.流畅的拖拽操作

热门文章

  1. 连续状态空间模型离散化
  2. 倾斜补偿的电子罗盘(1):地磁场,磁传感器,倾斜补偿
  3. 三菱伺服电机选型技巧
  4. mike21换成计算机名称,mike21
  5. 【MIKE21】MIKE21笔记-HD
  6. 计算机基础雨课堂答案,雨课堂试卷批量导入Word模板
  7. php缓冲--ob缓冲
  8. Hexo 和博客园添加 Live 2D 模型
  9. Flash Cs4 安装之后打不开
  10. 国税报表html,国税纳税申报表在哪里打印