【读书笔记】linux编程艺术

一、哲学

1、Rule of Modularity: Write simple parts connected by clean interfaces. 1、模块原则:尽量使用简洁的接口套和简单的组件。 2、Rule of Clarity: Clarity is better than cleverness. 2、清晰原则:清晰胜于取巧。 3、Rule of Composition: Design programs to be connected to other programs. 3、组合原则:设计时,要考虑连接组合。 4、Rule of Separation: Separate policy from mechanism; separate interfaces from engines. 4、分离原则:策略同机制分离,接口同引擎分离。 5、Rule of Simplicity: Design for simplicity; add complexity only where you must. 5、简洁原则:设计尽可能简洁,复杂度能低则低。 6、Rule of Parsimony: Write a big program only when it is clear by demonstration that   nothing else will do. 6、吝啬原则:除非别无他法,否则,不要去编写庞大的程序。 这点,跟上第5点差不多,以简洁为美,不要刻意去编写庞大而复杂的程序。 7、Rule of Transparency: Design for visibility to make inspection and debugging easier. 7、透明原则:设计要透明可见,以便审查和调试。 充分考虑透明性、显见性、简洁性。 8、Rule of Robustness: Robustness is the child of transparency and simplicity. 8、健壮原则:健壮的程序源于透明与简洁。 程序越简洁,越透明,程序就越健壮。 9、Rule of Representation: Fold knowledge into data so program logic can be stupid and   robust. 9、表示(法)原则:把知识叠入数据,以求逻辑结构质朴而健壮。 建模,以求逻辑结构清晰。 10、Rule of Least Surprise: In interface design, always do the least surprising thing. 10、通俗原则:接口设计,避免标新立异。 程序的好坏由用户来评判,最简单易用、最通俗易懂的程序,往往是最受用户欢迎的程序。 11、Rule of Silence: When a program has nothing surprising to say, it should say nothing. 11、缄默原则:如果一个程序没什么好挑剔的,那就保持沉默。 程序不要有多余冗杂的部分,尽量简洁为上,不需要的多余功能,就不要有。 12、Rule of Repair: When you must fail, fail noisily and as soon as possible. 12、补救原则:出现异常时,马上退出并适当给出足够的出错信息。 尽可能让程序以一种容易诊断出错误的方式终止掉。 13、Rule of Economy: Programmer time is expensive; conserve it in preference to machine   time. 13、经济原则:宁可多花机器一分,也不浪费程序员一秒。 时刻记住,程序员的时间是宝贵的,不要无故浪费一分一秒。 14、Rule of Generation: Avoid hand-hacking; write programs to write programs when you can. 14、生成原则:避免手工hack(直译了),尽可能编写程序,让程序去生成程序。 程序规格越简单,设计者就越容易做对。 15、Rule of Optimization: Prototype before polishing. Get it working before you optimize it. 15、优化原则:雕刻前先要有模型,跑之前,要先学会走。 先制作原型,再精雕细琢。优化之前,先确保能用。否则,一切美妙的优化,都是白搭。 或者如,极限编程大师 Kent Beck所说,先求运行,再求正确,最后求快。 不要一味的去考虑那些蝇头小利的所谓效率提升,尽量不要去过早优化,是一切万恶之根源。 16、Rule of Diversity: Distrust all claims for "one true way". 16、多样原则:绝不要去相信什么所谓"不二法则"的言论。 即使最出色的软件,也常常会受限于设计者的想象力。 爱因斯坦曾说过一句话,这个世界缺乏的不是技术,而是想象力。 没有人能聪明到把所有的东西,都能事先预言安排好。 17、Rule of Extensibility: Design for the future, because it will be here sooner than you   think. 17、扩展原则:设计要着眼于未来,因为有时未来来的要比想象中的快。

二、历史-双流记

1983年 Richard M.Stallman创建了GNU项目

1986年 发明patch的larry wall开始开发Perl语言

一开始unix系统被AT&T SUN IBM掌控,一份源码许可证要4万美元

1991年 linus torvalds 宣布了linux项目

1992年 386BSD 发布

在旧学派的unix开发者中,部分聪明者注意到,做了多年的平价Unix之梦从一个意想不到的方向悄然城镇。

它既不是来自AT&T,也不是SUN,或者任何一个传统厂商,也不是出自学术界有组织的工作成果。它就这样从Internet的石头缝中跳了出来,浑然天成,以令人惊奇的方式重新规划拼装了Unix的传统元素。

黑客的起源和历史:1961-1995

从社会性而言,他们年轻,天资过人,几乎全是男性,献身编程达到痴迷的地步,决不墨守成规--后来被人们唤作“极客(geek)”。他们往往也是头发蓬松的嬉皮士和准嬉皮士。他们有远见,把计算机看作构建社区的工具。他们读Robert Heinlein和J.RR.Tolkien的书,参加复古协会,双关语说起来没完,抛开这些怪癖,他们中的许多人都跻身世界上最聪明的程序员之列。

1995年,linux找到了自己的杀手级应用----开源的web服务器Apache

用自由软件是因为它运行得更好,而不是说“用自由软件是因为所有软件都该是自由的”

“开源”明显要用一个意识形态中性的公众标签来取代Stallman钟爱的“自由软件”

在Unix历史中,最大的规律就是:距开源越近就越繁荣。

过度依赖任何一种技术或者商业模式都是错误的----相反,保持软件及其设计传统的灵活性才是长存之道。别和低价而灵活的方案较劲。

三、unix哲学和其他哲学对比

unix统一性的理念或象征最重要一点: “一切皆文件”模型及在此基础上建立的管道概念。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯数据中心

Google对数据中心成本模型的分析——下

(接上文《Google对数据中心成本模型的分析——上》) 三、案例分析 虽然变量繁多,但通过观察不同行业的小部分数据中心案例,仍有助于我们理解这些成本因素的影响...

7798
来自专栏我是攻城师

你选的不是专业,而是阶级

4575
来自专栏飞总聊IT

大数据那些事(13):乱入的卖书的

大西雅图地区是云的故乡。这里一年超过8个月的雨季让有云的天气遍布夏天以外的每一天。华盛顿湖把大西雅图地区划成了东岸和西岸。东岸是乡下,上个世纪微软在这里成就了它...

3558
来自专栏飞总聊IT

大数据那些事(22):Interactive的Dremel

年新职责,上周开了几天的公司planning的会,接下来的六个月因为要负责关系公司生死存亡的一个重要项目的一大块,估计工作会越来越忙,留给我安心写作的时间也会大...

38611
来自专栏程序员互动联盟

【技术指南】成为更优秀开发者的10条途径

我读过好多“成为更优秀开发者的方法”的文章,它们大部分似乎写于10年前。但大部分仍然很明智,因此我在这篇文章中提取出我认为的最好的10条途径。你可以随时看看。 ...

3405
来自专栏云传输

案例分享|足球频道实现全媒体素材高效传输,为球迷带来视听盛宴

2014年9月4日国务院第七次足球工作座谈会确定内蒙古为全国足球改革与发展工作唯一试点省区。9月15日下午,内蒙古自治区政府召开推进足球改革发展电视电话会议,自...

1614
来自专栏Vamei实验室

门外汉的IT

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

1832
来自专栏CDA数据分析师

如何用 Python 爬取自己的微信朋友

微信作为一款拥有将近9亿用户的超级APP,已经成为很多人生活中不可或缺的一部分,聊天、分享动态、阅读资讯、购物支付……微信就像一张移动互联网的身份证,拥有它就能...

2859
来自专栏大数据

数据到信息到知识到智慧

数据到信息到知识到智慧 这是大数据时代,这是人工智能时代,这是一个数据驱动一切的时代。 中文确实博大精深,大家都在说大数据,说数据挖掘,说知识图谱,说人工智能。...

2207
来自专栏腾讯高校合作

【揭秘】腾讯云数智98.8秒完成100TB数据排序的架构和算法

本月初,腾讯云大数据联合团队以98.8秒的成绩完成100TB数据排序,摘得2016 Sort Benchmark全球排序竞赛冠军。在这次竞赛中,腾讯云数智分布式...

4275

扫码关注云+社区

领取腾讯云代金券