如果有一个原则应该添加到UNIX哲学中,它是:
它最简单,最忽视的软件工程原理我可以想到的。
除了一些基本的UNIX工具,如grep或make,它几乎不可能找到任何真正的完成,而不是被遗弃的那样找到'
想象一下,木匠就像程序员一样。你买了一把椅子。你买了它,因为你' VE检查了它,发现它满足了您的所有需求。然后,每隔一天,木匠在你的位置转到并对椅子进行了修改。一些变化可能是有用的,一些中立的,有些是令人讨厌的,一些类似的东西,就像那些从木材突出的尖峰一样,使椅子不再使用。但无论如何谁知道,也许你和#39; LL能够在下周加湿你的雪茄。所以你拒绝让木匠只是为了找到第二天早上,椅子在夜间穿过后门偷偷溜出,并加入了良好的闪亮牙科。在这一点上,没有追索者,而是为了烧掉椅子,把它的倒容放入地窖里,并倒一些质量的混凝土,以确保它永远保持死亡。但是在电影结束之前,有一个拍摄的镜头,在混凝土中显示出裂缝,使其清除新的,怪物和#34;椅子,2"续集即将到来。很快。
当然,它将稍后需要维护,错误修复和安全补丁,但首先使其在功能上完成。
是的,我听说你声称你的项目很特别,无法在功能上完成,因为你知道,情况x,y和z。
在这里和#39;诀窍:如果它可以' t在功能上完成它&#39太大。你' ve试图咬掉比你吞下的大的一块。只需返回绘图板并分开可以在功能完整的件。那个''您要实现的组件。
第一个开源项目I' VE工作是AMQP消息传递协议及其参考实施。这是不可能使其功能完整的,因为它是由委员会设计的,并且它一直在增长。如果它仍然生活在漫长而折磨的生活中,它可能能够唱歌和跳舞,并现在为整个家庭提供光线娱乐。
与AMQP I&#39的挫败感开始了我自己的Zeromq项目。这次没有委员会!肯定,我能够在功能上完成吗?好吧,没有。我试图让它做太多。它是一个兼容性库,一个异步I / O框架,消息分隔协议和消息传递模式库。今天,近八年成立后,该项目仍处于积极发展,并朝向它能够发送电子邮件的地步。
下一个:纳米。 Zeromq的替代品。我试图通过将传输功能分割为单独的插件来限制项目范围。我是部分成功的,但吞下单件仍然太大了。
最近,经过30年的编程业务,我终于设法将我的项目减少到合理的规模。
核糖体是代码发生器。它会生成代码和它的代码。它'功能完整。既然我写了它,我已经修复了一些错误,它被翻译成几种替代的编程语言(谢谢阿帕托斯Xekoukourotakis和Ali Zaidi!)。但它' s。没有添加功能。而且,我向你保证,在那里没有计划这样做。
libmill是一个图书馆,它介绍了Goy-sique Concurrency到C.在几个月的发展几个月后,它似乎现在可以完成。将来,它可能会移植到不同的CPU架构和接头系统,但不会有功能改变。将有错误修正,但没有功能蠕变。
请加入我努力,并完成您的项目。你的用户会爱你。