文章 2017-11-21 来自:开发者社区

三读《UNIX编程艺术》——UNIX哲学

如果在我目前的职业生涯中要选出一本对我影响最大的书籍,我一定会选择ESR的《UNIX编程艺术》。第一次读此书时资历尚浅,更多的是当做一本课外读物来看,但是随着职业中接触了更多不同的操作系统,完成了更多项目产品的设计、架构、实现,对书中所讲内容产生了更大的共鸣。在第三次读此书之际,把书中很多有价值的思想提取出来给自己一个总结,希望也能给大家带来一次分享。 本书关注的重点:不止于方法,更重乎理念。.....

文章 2017-07-06 来自:开发者社区

Unix编程艺术——微型语言

微型语言:小型、专门应用领域特制、大量减少程序行数的语言。      1. 使用微型语言把编程问题的规格说明提升一个层次,更具表达力,更紧凑;      2. 规格说明文件越来越像微型语言。 理解语言分类法 案例分析 sng: 透明,结构化的数据文件使得相应的编辑、转换和生成工具无需要知道其他方的设...

Unix编程艺术——微型语言
文章 2017-07-06 来自:开发者社区

Unix编程艺术——代码生成

Unix下有很强大的专用代码生成器,如用yacc/lex来构建语法分析器和词法分析器、用autoconf或automake生成makefile等。这些工具具有很强大的功能,但还有一些简单轻巧的代码生成方式,下面是《Unix编程艺术》中的两个例子。 生成ASCII显示的代码   如果在程序中直接通过初始化器来写出所有行,会出现对齐、每行很难保证79字符的问题。Ascii源码的解决方法是通过...

文章 2017-05-27 来自:开发者社区

Unix编程艺术:多道程序设计

多道程序设计:分离进程为独立的功能 Unix的最具特点的程序模块化技法就是将大型程序分解成多个协作进程。 Unix提倡把程序分解成更简单的子进程,并考虑接口: 降低进程生成的开销。 提供方法简化进程间通信。 提倡使用能由管道和套接字传递的简单、透明的文本数据格式。 真正的挑战不是协议语法而是协议逻辑:协议设计既要有充分的表达能力,又能防范死锁。 从性能调整中分离复杂度控制 在开发出...

文章 2017-05-18 来自:开发者社区

《Unix编程艺术》重读笔记(三)

题外:从老家从早到晚总算折腾回了杭州,进站太早,火车晚点,提包带断,什么倒霉事也遇上了,先发个已经整理好的部分,后续仍待整理。多道程序设计:分离进程为独立的功能 无论在协作进程还是在同一进程的协作子过程层面上,Unix设计风格都运用“做单件事并做好的方法“,强调用定义良好的进程间通信或共享文件来连通小型进程,提倡将程序分解为更简单的子进程,并专注考虑这些子进程间的接口,这至少需要通过以下三种方法....

《Unix编程艺术》重读笔记(三)
文章 2017-05-18 来自:开发者社区

《Unix编程艺术》重读笔记(二)

软件设计有两种方式:一种是设计得极为简洁,没有看得到的缺陷;另一种是设计得极为复杂,有缺陷也看不出来。第一种方式的难度要大得多。 模块化代码的首要特质就是封装,API在模块间扮演双重角色,实现层面作为模块之间的滞塞点,阻止各自的内部细节被相邻模块知晓;在设计层面,正是API真正定义了整个体系。 养成在编码前为API编写一段非正式书面描述的习惯,是一个非常好的方法。 模块的最佳大小,逻辑行200-....

文章 2017-05-18 来自:开发者社区

《Unix编程艺术》重读笔记(一)

Unix哲学是自下而上,而不是自上而下的,注重实效,立足于丰富的经验,你不会在正规方法学和标准中找到它。    Unix管道的发明人Doug McIlroy曾经说过: 1、让每个程序就做好一件事,如果有新任务就重新开始,不要往新程序中加入功能而搞的复杂。 2、假定每个程序的输出都会成为另一个程序的输入,哪怕那个程序是未知的。输出中不要有无关的信息干扰,避免使用严格的分栏格式和二...

文章 2012-05-29 来自:开发者社区

[总结]Unix设计哲学 <<Unix编程艺术>>

转载请注明出处:http://blog.csdn.net/horkychen 学习了<<Unix编程艺术>>第一章关于哲学的部分, 做个汇总.现在对精简设计, 舍弃华而不实是普遍认可的。但早在Unix发展的时期, 这一条原则却是在实践中不断提炼出来的. 这就是最为根本的一条:  KISS - Keep it Simple, Stupid!  这句话其实常...

[总结]Unix设计哲学 <<Unix编程艺术>>

本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。

开发与运维

集结各类场景实战经验,助你开发运维畅行无忧

+关注