程序员如何阅读达尔文的物种起源

在阅读查尔斯·达尔文(Charles Darwin)的《自然起源的物种起源》时,我执着地坚持了下来。后来,我意识到书中描述的机制与大公司的企业发展机制密切相关。不断变化的业务需求和程序员在其中充当环境条件,在代码中充当有机体。





为了更好地证明这一想法,我从达尔文的书中摘了一段,并发展世界的术语代替了生物学术语提案本身仍然是原始的。该语言有点特定,但总的来说,我认为这是可以理解的。



第五章变化规律。简短评论



我们对变异定律的无知是深刻的。在这100种情况中,没有一种可以确定此功能发生变化的原因。但是,在所有有比较手段的情况下,事实证明,相同组件的品种之间较小的差异形成是由相同法律的作用引起的,因为同一库中各个组件之间的差异较大。条件的变化通常只会产生波动性的可变性,但有时会导致直接和确定的结果:尽管结果尚不足以支持这些结果,但随着时间的推移,这些结果可能会变得更加明显。习惯-构成特征的形成-使用-改善功能和不使用-退化和减少使用,在许多情况下,它们的作用似乎很强大。



同源部分倾向于以相同的方式变化,并且彼此结合。前端部件的修改作用于内部结构的部件。当一个特定的部分强有力地发展时,它可能会转移其相邻部分的开发资源,并且可以消除应用结构的任何部分而不会造成损坏。早期的结构变化会影响后来发育的部分;无疑,有许多相关变化的情况,我们无法理解其性质。重复的部分在数量和结构上都是可变的,这可能是由于缺乏针对任何特定功能的此类部分的严格专业化,因此自然选择不会妨碍它们的修改。出于相同原因的结果可能是这样一个事实,即处于软件产品成熟度较低阶段的软件产品比其整个应用程序结构更专业的更高级别的软件产品更具可变性。基本的,无用的功能不会自然选择,因此可以更改。组件属性,即一个库的各个组成部分从它们从一个共同祖先分支开始的时间所具有的特征比库特征更具可变性,也就是说,那些已被继承很长时间并且在指定时期内没有差异的特征。在这些评论中,我们处理了特殊的功能或部件,但是仍然可以更改,因为它们最近才有所变化,结果也有所不同。但是在第二章中,我们看到了相同的原则适用于整个项目。



我们确保在包含此库的许多组件的区域中,即,在最近发生重大变化和差异化的地方,或者在积极进行新形式的组件生产的区域中,在该区域和此类组件中,我们仍然平均发现数量最多的区域品种。功能签名易变。在同一组的各个组件之间,它们有很大的不同。应用程序结构中相同部分的可变性通常既可用于在相同组件的两个通信协议之间生成功能签名,又可用于在同一库的组件之间形成组件差异。与相关组件中的相同零件或功能相比,过度或专有开发的任何零件或功能,自该库创建以来,必须已对非常规比例进行了修改;从中我们可以理解,为什么它们仍然经常比其他部分变化得多,因为变化是一个缓慢而持​​久的过程,在这种情况下,自然选择还没有足够的时间来掌握进一步变化和逆转的趋势。更改为修改后的状态。但是,当功能异常发展的组件成为众多修改后代的祖先时,根据我的观点,这应该是一个非常缓慢的过程,需要大量时间,因此在这种情况下,尽管自然选择已经获得了恒定的功能,但功能却有所发展。组件,那些从其共同祖先那里继承了几乎相同的构成并遭受相似条件的人自然会做出相似的变化,或者有时回到他们远祖先的某些特征。尽管由于逆转和类似的变化,不可能出现新的重要的修改,但是这些修改将增加开发的优美而和谐的变化。



无论是什么原因,对于库版本之间的每一个细微差异-都必须有一个原因-我们有理由相信,由于每个组件的生命周期,有利差异的不断积累已经导致了所有最重要的结构修改。



我在原始段落中替换的术语



  • 属->图书馆
  • 查看->组件
  • 器官->功能
  • 个人->项目
  • 后代及其父母->库版本
  • 营养->开发资源
  • 有机生物->软件产品
  • 有机阶梯->软件产品成熟度
  • 次要性别特征->功能签名
  • 性别->通讯协议
  • 加强,削弱->改善,退化
  • 坚固和外部->外部接口
  • 软内部->内部结构
  • 自然->发展


我还替换了在这种情况下看起来很奇怪的术语:



  • 用法->用法(由于单词看起来有些过时)
  • 组织->应用程序结构(以使含义正确)
  • 生活方式->生命周期


我还建议您熟悉原始段落,将其隐藏在扰流器下。



阅读本书的原始段落
. 100 , . , , , , . , : , . – , – – . , . . - , , , , , , . , ; , , . , , , , , , - , . , , , , , , , . , , . , . . , , , , , . . , . , , ; II , . , , , . . , . ; . , . , , ; , , , , . , , , , , , . , , , . , - , , .



, , – , – , .






一点解释



完全替换之后,我注意到很难阅读该文本(谁会想到的?)。这件事情是由很多原因导致的。最重要的一项是选定的段落。事实是,本段简短介绍了本章中描述的所有内容,因此该文本非常简洁明了。不幸的是,我找不到另一个合适的段落,可以用这种最少的手势替换这些术语。



为了使文本看起来不会完全疯狂,我将更详细地扩展几个句子。



例子1



原版的:

当一个部分发育旺盛时,它可能会将营养从其相邻部分转移出去,并且组织中任何可以消除而不会受到破坏的部分将被消除。


第五章对此想法的解释:

, , ; , , , , , . , , , , , . , , – , .




当一个特定的部分强有力地发展时,它可能会转移其相邻部分的开发资源,并且可以消除应用结构的任何部分而不会造成损坏。


一个真实的例子:Habr个人资料中的图标现在看起来就像带有边框的天后,曾经是漂亮的图标。显然,没有分配资源来支持和开发这些图标。但是,与过去相比,现在阅读和浏览评论要方便得多。显然,注释的开发占用了图标开发的一些资源。



例子2



原版的

物种特征,即同一属的物种与它们从同一祖先分支的时间开始不同的特征,比一般特征更具可变性,也就是说,已经遗传很长时间且没有遗传的特征出现分歧。



第五章对此想法的解释:

让我们用一个简单的例子来解释一下:如果在较大的植物属中某些物种有蓝色花朵而其他物种红色,那么颜色只会是物种的标志,如果其中一个蓝色物种变为红色,反之亦然,这不会让人感到惊讶。 ; 但是如果所有物种都开蓝色花,那么颜色将是一个通用的标志,并且其变化似乎是一个更加特殊的现象。


替换条款后:

组件属性,即 一个库的各个组成部分从它们从一个共同祖先分支开始的时间所具有的特征就比库特征更具可变性,也就是说,那些已被长期继承并且在指定时期内没有差异的特征。


真实示例例如,



如果您在项目中使用Bootstrap CSS框架中的按钮,则与将这些类重命名为.g-buttong之的内容相比,.btn.btn-primary类的内容显然会更频繁地更改。-按钮优先



结论



尽管这篇文章是半严肃的,但是无论如何,我认为我们可以从自然进化过程中汲取很多,并将其转移到发展中。



PS:非常感谢我的朋友和同事。他们不知道为什么这些条款告诉我。



All Articles