UNIX编程艺术 UNIX哲学

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 胶合层

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值