找回密码
 注册
关于网站域名变更的通知
查看: 222|回复: 1
打印 上一主题 下一主题

Unix编程之透明性

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-1-19 11:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
透明性,来点光。
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.
透明性是被动品质,可显性是主动任务。% h- s! X$ N/ h- d3 s* X  r
透明性:没有阴暗的角落和隐藏的深度;能够预测到程序行为,能够看透机器干什么(整个)。, R% ^3 O0 O, `3 ~! M
可显性:做什么,怎么做。文档就是为了提高可显性。要必须尽力做到有帮助(具体)。
可显性降低进入门槛;透明性则减少代码中的存在成本。
9 B" D3 ]# y' o& P
研究实例
audacity:UI可操作性,易操作性。
fetchmail的-v选项:防弹程序,可显性。
/ T5 {( B1 @  f" h; Q/ x+ e不要让调试工具仅仅成为时候追加或者用后就束之高阁的东西。他们是通往代码的窗口:不要只在墙上造出粗糙的洞,要整修这些洞并装上窗。如果打算让代码一直可被维护,就必须让光照进去。
GCC:预处理器、解析器、代码生成器、汇编器和连接器。
4 X' ^9 m% J" t' B0 U0 y前三个阶段的可读文本流。可以监视中间步骤,有利于回归测试。
kmail:显示过程信息。让你对状态充分了解。% G4 n; y1 c, S+ \1 G  g
让UI沉默只做对了一半,真正聪明的是找到一个方法,可以访问具体细节,但又不让他们太显眼
SNG:与PNG之间进行无缝、无损转换。用户可以直接编辑SNG纯文本文件,而不是PNG文件。& q! D$ S7 i7 y
sng本身程序代码不容易理解,但是通过让PNG的全部内容可显,提高了程序中较大系统的透明性。
Terminfo:使用Unix文件系统作为数据库是一种策略,对数据库要求简单的其他应用程序可以效仿并从中受益。
Freeciv:数据文件的聚合、存储、使用,修正。因为只读,所以不会蠕变。

! p! ~& p" e& b" ^为透明性和可显性而设计
透明性:不要在具体操作的代码上放太多的抽象层(不要过度抽象)
+ C& {4 @3 p* I7 ]不要垒高台,要用设计简单而透明的算法和数据结构紧贴基面;薄胶合层。! A6 N4 z* _$ F/ W$ H1 n
最大静态深度是4层。" _3 ^' `: f; B& y4 _
不变性质有助于人们推演代码和发现有问题的情况。) f5 D+ o2 l+ r- C. q9 ?( v- p. ~
API正交、标志位要少6 m7 w2 A* a. |' b3 F
强调、形象化重要数据。" N. _' |* `# u6 V+ r, W4 b
数据结构与外部实体的关系。* d% T* F1 T4 M1 X
容易找到代码部分。3 L9 Y2 G+ @" i0 ~
增加了特殊还是避免了特殊。特殊使代码更难理解。
; [5 n9 M. l% b' F" @3 I少用magic number(意义含糊的常量)
提供调试和探测的开关
$ H, u6 a; S) [+ v二进制格式数据考虑文本化器
' y9 R8 _4 N- v& E透明性抵御bug

( D7 p9 v( y  _为可维护性设计
抛弃蹩脚代码;; S6 w7 D8 e5 D/ B2 |3 Z$ F8 }- ^; q
使用简单算法;+ ^: q; Y7 \% o) l- Z# |
包含开发者手册。

( y! y, ?' U7 `3 j# s

该用户从未签到

2#
发表于 2020-1-19 15:19 | 只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-25 15:20 , Processed in 0.140625 second(s), 24 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表