Unix编码哲学

这几天,我在看Unix,发现很多人在谈"Unix哲学",也就是开发Unix系统的指导思想。

但是我发现,所有人都同意,"简单原则"----尽量用简单的方法解决问题----是"Unix哲学"的根本原则。这也就是著名的KISS(keep it simple, stupid),意思是"保持简单和笨拙"。

下面就是我对"简单原则"的笔记。如果你想最简单地完成一项编程任务,我认为可以从四个方面入手:

1. 清晰原则。

  代码要写得尽量清晰,避免晦涩难懂。清晰的代码不容易崩溃,而且容易理解和维护。重视注释。不为了性能的一丁点提升,而大幅增加技术的复杂性,因为复杂的技术会使得日后的阅读和维护更加艰难。

2. 模块原则。

  每个程序只做一件事,不要试图在单个程序中完成多个任务。在程序的内部,面向用户的界面(前端)应该与运算机制(后端)分离,因为前端的变化往往快于后端。

3. 组合原则。

  不同的程序之间通过接口相连。接口之间用文本格式进行通信,因为文本格式是最容易处理、最通用的格式。这就意味着尽量不要使用二进制数据进行通信,不要把二进制内容作为输出和输入。

4. 优化原则。

  在功能实现之前,不要考虑对它优化。最重要的是让一切先能够运行,其次才是效率。"先求运行,再求正确,最后求快。"(Make it run, then make it right, then make it fast.)90%的功能现在能实现,比100%的功能永远实现不了强。先做出原型,然后找出哪些功能不必实现,那些不用写的代码显然无需优化。目前,最强大的优化工具恐怕是Delete键。

原文地址:https://www.cnblogs.com/Qzai/p/8471768.html

时间: 2024-10-03 14:01:08

Unix编码哲学的相关文章

Unix的哲学

mnesia在频繁操作数据的过程可能会报错:** WARNING ** Mnesia is overloaded: {dump_log, write_threshold},可以看出,mnesia应该是过载了.这个警告在mnesia dump操作会发生这个问题,表类型为disc_only_copies .disc_copies都可能会发生. 如何重现这个问题,例子的场景是多个进程同时在不断地mnesia:dirty_write/2 mnesia过载分析 1.抛出警告是在mnesia 增加dump

学习Linux程序设计之路(1)UNIX程序设计哲学

UNIX程序编程有自己特定的风格,我们在学习UNIX程序设计的时候,应该尽量遵从这种设计风格,它能够最大限度地帮助我们避免一些问题. 简单化 许多有用并且好用的UNIX系统软件都非常简单,而且很小并易于理解."小而简单"是一个值得学习的技术.越大.越复杂的系统就注定会包含越大.越复杂的错误,对于我们调试来说,是一件非常痛苦的事情. 集中性 让程序执行一个任务通常要比将所有功能串联在一起要好很多.臃肿的程序一般很难进行维护与使用,比起单一功能的程序来说,修改该程序的某一个功能很容易引发其

[译]从LinkedIn,Apache Kafka到Unix哲学

原文链接:http://www.confluent.io/blog/apache-kafka-samza-and-the-Unix-philosophy-of-distributed-data作者:Martin Kleppmann译者:杰微刊-macsokolot(@gmail.com) 当我在为我的书做研究时,我意识到现代软件工程仍然需要从20世纪70年代学习很多东西.在这样一个快速发展的领域,我们往往有一种倾向,认为旧观念一无是处——因此,最终我们不得不一次又一次地为同样的教训买单,这真艰难

Unix编程艺术读书笔记(一)

 Unix编程艺术读书笔记(一)这本书是一位面试官告诉我的,很感谢他的指点,关于面试的详细过程,我想以后再写,当然我也意识到自己的不足,一方面是面试的技巧,还有一方面就是学习的方法.阅读这本书很享受,加上之前的积累,一些疑惑,还有一些基础的不足,在这本书里找到了归宿. 下面,一起来享受这本书的精华吧 Unix诞生与1969年,那时候我们还在闹文革吧,可一个可以改变21世纪甚至更远的未来的操作系统问世,至少现在的Linux是基于Unix的设计哲学.Unix是唯一一个在不同种类的计算机,众多厂商

Unix——真正的黑客是门艺术

黑客这个词从诞生到现在,从来就没有解释为“高级入侵者”.“病毒制造者”或者“QQ盗号者”过.我至今不清楚在中国是谁先把黑客和这些无聊的词汇联系在了一起,导致如此多的人被误导.但有一点是肯定的,不负责任的媒体一直侮辱这两个字. 那个写熊猫烧什么来着的叫什么来着的也叫黑客?太可笑了.他做鬼也当不了黑客.请分清这两个词,hacker & cracker,别去研究他们的中文翻译. 不花力气多解释,不懂黑客是什么意思的人终究不懂,我的这篇文章也不是呼吁那些垃圾更正他们的思想(请不懂的人关闭网页窗口),而是

Mike Gancarz:Linux/Unix设计思想

Mike Gancarz是一位技术布道者.他是Linux/Unix最主要的倡导者之一,也是最早开发X Window System的先驱.他把一些在Unix/Linux社区里口口相传的哲学思想总结提炼,写成了<Linux and the UNIX Philosophy>这样一本完整的Unix/Linux哲学理论书籍.他在书中提出了九条训格之言: 一.小即是美 二.让每一个程序只做好一件事情 三.尽快建立原型 四.舍高效率而取可移植性 五.使用纯文本文件来存储数据 六.充分利用软件的杠杆效应 七.

[转]py编码终极版

py编码终极版 原文链接:http://www.cnblogs.com/yuanchenqi/articles/5956943.html 一 什么是编码? 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种表示称为"明文"(plain text).对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文. 其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文本转回成明文.从明文到编码文本的转换称为"编码&qu

Unix传奇

转自 http://coolshell.cn/articles/2322.html 了解过去,我们才能知其然,更知所以然.总结过去,我们才会知道我们明天该如何去规划,该如何去走.在时间的滚轮中,许许多的东西就像流星一样一闪而逝,而有些东西却能经受着时间的考验散发着经久的魅力,让人津津乐道,流传至今.要知道明天怎么去选择,怎么去做,不是盲目地跟从今天各种各样琳琅满目前沿技术,而应该是去 —— 认认真真地了解和回顾历史. Unix是目前还在存活的操作系统的元老了,走过了40年的历程(参看<Unix

15-python基础4-字符编码

说起python编码,真是句句心酸.算起来,反复折腾两个来月了.万幸的是,终于梳理清楚了.作为一个共产主义者,一定要分享给大家.如果你还在因为编码而头痛,那么赶紧跟着我咱们一起来揭开py编码的真相吧! 1.什么是编码 基本概念很简单.首先,我们从一段信息即消息说起,消息以人类可以理解.易懂的表示存在.我打算将这种表示称为"明文"(plain text).对于说英语的人,纸张上打印的或屏幕上显示的英文单词都算作明文. 其次,我们需要能将明文表示的消息转成另外某种表示,我们还需要能将编码文