编写只做一件事情,并且要做好的程序;编写可以在一起工作的程序,编写处理文本流的程序,因为这是通用的接口。这就是UNIX哲学.所有的哲学真 正的浓缩为一个铁一样的定律,高明的工程师的神圣的“KISS 原则”无处不在。大部分隐式的UNIX哲学不是这些前辈所说的,而是他们所做的和UNIX自身建立的例子。从整体上看,我们能够抽象出下面这些观点:
1、 模块性原则:写简单的,通过干净的接口可被连接的部件。
2、 清楚原则:清楚要比小聪明好。
3、 合并原则:设计能被其它程序连接的程序。
4、 分离原则:从机制分离从策略,从实现分离出接口。
5、 简单原则:设计要简单;只有当你需要的时候,增加复杂性。
6、 节俭原则:只有当被证实是清晰,其它什么也不做的时候,才写大的程序。
7、 透明原则:为使检查和调试明显更容易而设计。
8、 健壮性原则:健壮性是透明和简单的追随者。
9、 表现原则:把知识整理成资料,于是程序逻辑能变得易理解和精力充沛的。
10、最小意外原则:在接口设计中,总是做最小意外事情。
11、沉默原则:当一个程序令人吃惊什么也不说的时候,他应该就是什么也不说。
12、修补补救:当你必须失败的时候,尽可能快的吵闹地失败。
13、经济原则:程序员的时间是宝贵的;优先机器时间节约它。
14、产生原则:避免手工堆砌;当你可能的时候,编写可以写程序的程序。
15、优化原则:在雕琢之前先有原型;在你优化它之前,先让他可以运行。
16、差异原则:怀疑所有声称的“唯一真理“。
17、可扩展原则:为将来做设计,因为它可能比你认为来的要快。
1. 模块原则: 使用简洁的接口拼合简单的部件.
2. 清晰原则: 清晰胜于取巧. 设计有可能从简单到复杂,但最终一定再回归到简单.
3. 组合原则: 设计时考虑拼接组合.
4. 分享原则: 策略同机制分离, 接口同引擎分离.
很多设计模式都可以看到这一原则的影子. 目的为解耦, 中心是要模块的职责清晰. 在Unix世界常见的应用就是将某个系统功能分为前端和后端.
5. 简洁原则: 设计要简洁, 复杂度能低则低.
6. 吝啬原则: 除非确无它法,不要编写庞大的程序. 让程序只做一件事。
7. 透明性原则: 设计要可见, 以便审查和调试.
8. 健壮原则: 健壮源于透明与简洁.
9. 表示原则: 把知识体现在数据结构上, 以追求逻辑质朴且健壮.
不要让复杂的数据定义破坏你优雅的设计.
10. 通俗原则: 接口设计避免标新立异.
11. 缄默原则: 如果一个程序没什么好说的,就沉默.
12. 补救原则: 出现异常时,马上退出并给出足够错误信息.
13. 经济原则: 宁花机器一分, 不花程序员一秒. (我最喜欢这一条.)
14. 生成原则: 避免手工hack, 尽量写程序去生成程序.
(patch算是13&14好的示例了)
15. 优化原则: 雕琢前先要有原型, 跑之前先学会走. 按小步快跑的节奏展开.
16. 多样原则: 决不相信所谓"不二法门"或"银弹"的断言.
17. 扩展原则: 设计着眼未来, 未来总比预想来得快.
分享到:
相关推荐
【目的】研究发情周期各阶段KiSS-1/GPR54系统在母羊下丘脑中的表达规律。【方法】将12只雌性小尾寒羊随机分为4组,每组3只,分别于发情前期、发情期、发情后期和间情期,颈动脉放血致死后采集其下丘脑,采用实时荧光定量...
KISS-kde-等离子桌面的KISS存储库 吻吻 目前这项工作正在进行中。 随时提供帮助! KDE是Linux的全功能桌面环境! 它使用Qt框架生成一个简单,功能强大的华丽桌面。 这在Alpha中非常重要。 如果您有贡献,请随时...
kiss-ui, 在IUP之上( http是构建 Rust的简单UI框架) 亲吻用户界面 一种基于 KISS ( 简单点,傻瓜) 思想的Rust UI框架。通过使用Tecgraf的IUP GUI库,通过为 IUP rust创建的绑定。( 与同样出色的 kiss3d插件无关。)...
$ # Some packages like `lxqt` and `pingus` needs also the KISS-kde or kiss-games repositories. $ git clone https://github.com/eudaldgr/kiss-repo $ cd kiss-repo $ for i in -- $(ls -d -- */); do export ...
Flatpak接吻指示# NOTE: You must have user namespaces enabled in your kernel.-> CONFIG_USER_NS=y# NOTE: The community repository must also be enabled.-> git clone ...> export KISS_PATH=/path/to/kiss-...
“做一件事,做好事” —着重于构建简单,简短,清晰,模块化和可扩展的代码,这些代码可以轻松维护和调整用途(根据Unix哲学)。 IRC的KISS,这是一个用POSIX C99编写的小型IRC客户端。 目标“做一件事情,做好事”...
waifu2x-caffe汉化版是一款免费的图片拉伸提升画质的软件,有时候我们想找一张二次元图片作为壁纸总是找不到合适尺寸的,自己拉伸图片尺寸不是变的模糊了就是各种不和谐。waifu2x-caffe汉化版可以做到放大图片而几乎...
简约的Android KISS蓝牙/ USB调制解调器客户端,用于使用开源Codec2进行业余无线电DV(数字语音)通信。 Android Codec2对讲机Minimalistic Android KISS蓝牙/ USB调制解调器客户端,用于使用开源Codec2进行业余无线...
KISS原则,将UNIX逻辑保留在GNU / Linux系统中。 该操作系统具有主菜单脚本/自动会话程序调用tuxhatlinux,您可以在其中加载Fluxbox,也具有setup-tuxhat来设置系统实时会话并将其安装到HDD。 这是一个非常轻巧的...
KISS 原则,将 UNIX 逻辑保留在 GNU/Linux 系统中。 这个操作系统有一个主菜单脚本/自动会话程序调用 tuxhatlinux,你可以在其中加载 Fluxbox,也有 setup-tuxhat 来设置系统实时会话并将其安装到硬盘上。 这是一个...
kiss-latex-mindset 是一个简单的 LaTeX 框架,使用直白的函数,而不是创建抽象的东西,简单直白。主要特性:优先级配置文件LaTeX 文档自动组合
Arduino-KISS-OSD.zip,flyduino.net中用于minimosd和kiss fc的软件,Arduino是一家开源软硬件公司和制造商社区。Arduino始于21世纪初,深受电子制造商的欢迎,Arduino通过开源系统提供了很多灵活性。
KISS-ICP: In Defense of Point-to-Point ICP – Simple, Accurate, and Robust Registration If Done the Right Way
linux-麒麟-mysql-5.7.33_glibc2.12-x86_64.tar
AD系列fft变换
most powerfull EA scalping mt5
一个简单的监视器,带有 KISS 哲学下的 Unix/Linux 警报。 保持简单,愚蠢! 轻:只有 ~7MiB 的 RAM。 (这对你的树莓派来说很棒!) 非常易于使用和理解。 用任何语言(Bash、Python、Perl、JS、Ruby、PHP、C、...
EOS DIGITAL REBEL Xsi/450D/ Kiss X2 EOS DIGITAL REBEL XS/ 1000D/ KISS F EOS 50D EOS 5D Mark II EOS Kiss X3/EOS REBEL T1i /EOS 500D EOS 7D EOS-1D Mark IV EOS Kiss X4/EOS REBEL T2i /EOS 550D EOS 60D EOS...
Kiss-ORM是用于TypeScript的新的,很有思想的ORM。 这是它的设计理念的描述: 没有查询构建器(您可以使用SQL的全部功能和表现力) 安全性:Kiss-ORM允许您编写和连接SQL查询,而不必担心SQL注入 经过全面测试 ...
EOS 5DS / EOS 5DS R / EOS REBEL T6s / EOS 760D / EOS 8000D / EOS REBEL T6i / EOS 750D / EOS Kiss X8i / EOS M3 EOS-1D X Mark II / EOS 80D / EOS Rebel T6 / EOS 1300D / EOS Kiss X80 / EOS M10 EOS 5D ...