unix编程艺术读书笔记

写于2011年, 纪念曾经开发流媒体服务器的日子

Rob Pike 编程原理
Brook
The magic number seven
紧凑:
c,python 半紧凑
其余,不紧凑
C++, 反紧凑
编程风格的元素
初心
只做好一件事情
可复用库架构的守则和方法
列集,散集:序列化,反序列化
互用性,透明性, 可扩展性, 存储/事务处理的经济性;首先考虑经济型是一种过早优化
文本是最好的交互手段,如果担心性能问题,就在应用协议之上或者之下压缩文本协议流
当你想设计一个复杂的二进制文件格式,或是一个复杂的二进制应用协议时,最明智的做法是躺下来等待这种感觉过去
xmltk, pyxie: xml
DSV:优良的格式,键值对的情况
《系统设计中的端对端论》
统一资源定位符:url
《机器美学:优雅和技术本质》
设计要注意的问题:
程序中递归调用超过四次就要担心
全局唯一的记录器捕获系统的高层级状态
特殊情况使得代码难以理解
API是否正交
magic number
区别隐藏细节和无法访问细节
文本化器和浏览器
拿不准,就穷举
《作为第四代语言的unix shell》
《对远程过程调用范式的批评》
多线程是进城生成代价昂贵,ipc功能薄弱的操作系统的选择
《为什么线程是个馊主意》
编程其实就是管理复杂度的问题
程序员每百行代码的出错率和所使用的编程语言在很大程度上无关
m4
《The Humane Interface》
用户接口设计模式:
编译器模式
ed模式:需要持续的交互式对话
接收器模式
源模式
Cantrip模式 : 没有输入,没有输出,只被调用一次,产生退出状态数值
海绵,在接受数据前需要读入全部的输入
引擎和接口分离:分解成几个相互通讯的进程,而不是庞然大物,每个进程只做一件事情并且做好
假脱机/守护进程
基于语言
牵扯环境因素最少,交互最少的模式
Mac的开发者曾经拥有最丑陋的Unix内部架构,他们以交互为中心,由外向内设计,而Unix则相反,现在他们试图融合
《敏捷宣言》
《无根的根》
《The Unix Programming Environment》
《The pragmatic programmer》
《The practice of programming》
《zen flesh, zen bones》
《Timeless Way of Building》
《A pattern language》
《Death March》
用软件包的名字或者主题关键字加上"Howto"或者"FAQ",用它作为关键字在网上搜索,会有更有用的资料。
blivet:描述把十磅马粪硬塞进五磅麻袋的行为:过专用陷阱
New Jersey哲学
Freshmeat
用GNU软件编程
lex

你可能感兴趣的:(unix编程艺术读书笔记)