美文网首页
unix设计思想中的哲学

unix设计思想中的哲学

作者: 东东威武 | 来源:发表于2017-09-14 13:44 被阅读71次

昨日部门技术分享的内容是“Unix的设计思想”,有些感悟,这里分享给大家。

unix是什么

不是软件开发的人可能不懂什么是unix,但其实它老牛逼了,我们每个人几乎无时无刻不和它打交道。

unix是经典的操作系统,可以说是现在操作系统的鼻祖,大家听说过的系统中大部分是来源于unix,例如linux、苹果电脑的osx都是类unix系统。大家使用的苹果手机,它的ios系统的核心也是类unix,安卓手机用的也是linux内核,大部分服务器都是使用linux。

你们现在都手机不离手,每天都要上网,你们说你们不是每天都离不开它~

unix的设计思想

你们现在知道unix这么厉害了,那它的设计思想绝对靠谱没错吧。这里舍弃只适用于技术领域的设计原则,并“翻译”部分原则成非软件用语。完整的介绍可以查看维基上的条目

do one thing and do it well

在软件开发层面的意义是尽可能让一个代码模块只做一件事情,把这件事情做好,然后把一个个小功能组合起来实现大功能。打个比方,把“泡茶”这件事情拆分成“烧开水”、“找茶叶”、“放茶叶”、“倒水”这样4个功能。这样很好维护,如果其中一个模块没做好,只要修改那个模块就好,而且可以提高程序的复用性,比如“烧水”除了可以用于“泡茶”还可以和其他小功能组合成其他功能,例如“煮泡面”。

  • 单一职责

一个模块做一件事情,就叫单一职责。只做一件事情,就能把事情做的更好,而且模块间的组合可以提高软件的复用性。这是一个普适的道理,可以以很多角度去解读。比如现代工业中,产品的生产环节被拆分成很多部分,每一部分的生产来源可能是世界各地。再比如,在企业管理中,让每个部门每个组甚至每个人做职业明确专一的工作,职业划分清楚,不仅可以提高专业度,也可以提高整个企业的协同效率,不会出现相互推诿的情况。

  • 杠杆效应

假设有A、B、C、D四个功能,那排列组合可以组成N个功能,这就是一个杠杆效应。比如ABC串连可能形成一个功能A+B+C,对AB的结果进行C操作又可以形成一个功能C(A+B)。只要职责清晰,虽然每个功能很小很专一,但是组合起来就可以无限的可能。如果你掌握A技能,同时掌握B技能,它们组合起来就可能给你创造很大价值。例如你英语很好又善于投资,早几年看到了看到了国外的比特币的资料,然后随便买了几千,现在就财务自由了...

  • 一生只做一件事

日本人的制造业世界一流,有很大部分原因在于他们做事的专一程度。很多日本人,一辈子只做一件事,做饭的做一辈子饭,做手表的做一辈子手表。一生或者一个阶段只做一件事,对于大部分人或者组织来说都是做好事情的必须。前段时间我有一个习惯培养计划,一下子写了很多个,结果发现顾此失彼,后来直接删到只有一个,我花一年时间能养成一个好习惯,其实完全值得。

简单即是美

这个在程序开发里的意思是尽量避免不必要的复杂性,例如接口简单易用。KISS,即Keep It Simple & Stupid。在程序开发上,这样可以提高程序的使用成本。在类unix系统中,各种文本都是小写为主,而且有简写。例如lslist的意思,但它还可以写的更简单,一个l就够了。这个设计思想其实和乔布斯对苹果产品的定义也是一样的。没有多余的信息和操作,只保留最精简最核心的点。苹果产品的设计无论是硬件还是软件都是尽可能简洁。这个思想可以在平时的创作、沟通表达等等不同角度去应用。例如你可以在写PPT、工作报告时不要太花哨,重点突出,少无价值信息的修饰,刻意精简生活用品数量,衣服太多每天还得纠结串哪件~

90%的解决方案

没有100%完美的方案,99%完美度的方案的成本很可能是90%的几倍。所以不追求100%,如果一个方案可以解决问题的90%,那就可以了。打个比方,如果你上网想买个椅子,花10分时间你看到一款还行,那你就把它买下。也许你花点时间可以找到质量更好价格更便宜的,但你很可能为此付出几个小时时间。100%和90%的差距并不大,而更好的椅子可能只是便宜几十块,质量好点但是并没有打区别,但你却为此付出了2小时。

结语

专一、单一、简单、不追求完美,这些思想都是概念上的,大家可以脑洞大开,看看还能有什么应用。

相关文章

  • unix设计思想中的哲学

    昨日部门技术分享的内容是“Unix的设计思想”,有些感悟,这里分享给大家。 unix是什么 不是软件开发的人可能不...

  • 程序员进阶书单:内功理念篇

    《UNIX编程艺术》 本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验。小巧简单...

  • The Art of unix programming

    The Art of unix programming 哲学 哲学基础: unix 哲学并不算是一种正规设计方法,...

  • Eric Raymond:UNIX 编程艺术 (扫描版).pdf

    【下载地址】 本书主要介绍了Unix系统领域中的设计和开发哲学、思想文化体系、原则与经验,由公认的Unix编程大师...

  • UNIX / LINUX 设计哲学

    准则 1. 小即是美 2. 让每个程序之做好一件事 3. 快速建立原型 4. 舍弃高效率而取可移植性 5. 采用纯...

  • Socket网络通讯

    1.套接字(socket)概念 socket起源于UNIX,在Unix一切皆文件哲学的思想下,socket是一种"...

  • 依赖管理

    在Unix的设计哲学中,do one thing 被广大软件设计开发人员奉为圭臬,很多底层的基础代码只需要做成库,...

  • 【设计哲学】

    设计的哲学哲学的设计 设计应该提升高度哲学不妨加强趣味 当设计遇上逻辑问题将会更易解决当哲学注入创意思想自然更加开...

  • JavaScript设计原则与编程技巧

    1 设计原则概述 《UNIX/LINUX设计哲学》设计准则① 小既是美。② 每个程序只做一件事情。③ 快速建立原型...

  • 25.《Bioinformatics-Data-Skills》之

    《Bioinformatics-Data-Skills》之管道 Unix的一大哲学思想就是模块性。我们不仅需要学习...

网友评论

      本文标题:unix设计思想中的哲学

      本文链接:https://www.haomeiwen.com/subject/zckdsxtx.html