什么是整洁代码
我最近看过《整理生活的改变人生的魔法》这本书。 我想我在Play商店获得了一个样本,马上想到:“哇,这个女人真是一个了不起的写作之声。” 现在,我已经读了很多书,我知道为什么:1.它是冗长的句子 ,礼貌地传递,就像以娃娃的声音传递的女巫诅咒一样; 2.它完全是哲学上的。 尼采说他只爱用鲜血写的东西。 如果生活得当,传记应该是一本好书。 如此令人敬畏的是,作者在5岁时就迷上了杂乱的问题。这本书令人敬畏的是,您是否立即相信她的每一次转身,她的修辞力都很棒。 (单词图的词源来自希腊语中的写作。)
当然,在某个时候,我开始思考,我们是否曾经整理过软件? 部分原因是作家似乎是一个典型的自助者,他要赶走李子糊涂的溴化物。 但是实际上,发生的事情是,转而切入了我其他最喜欢的哲学家之一大卫·休ume的核心,她攻击的是幻想,而不是错误。 这使我意识到,软件的整洁冲动被幻想所笼罩。 可悲的是,我认为鲍伯叔叔的书确实做了本人(我的新英雄之一)所没有的。 这并不是说鲍勃叔叔的书里没有很多好主意。 但是,它始终坚持遵循纯净模型的概念。 与其鼓起勇气去面对自己的幻想,并试图束手无策,因为他们不得不问自己如何摆脱我们行业一直在转向的几乎普遍的指控。
我想到的第一个想法是,编码中显然有位置动态:在感兴趣的领域中从事未开发项目的程序员生成有序且具有一定组织维度的东西的可能性要高数千倍。而不是有人送进一个废弃的矿场,将骨灰中的碎屑刮掉。 而且,我们所有人都已经看到了一百万次,村长们是如何将自己摆在前庭,并修剪修剪整齐的小桩,然后留给下层来将他们真正地吸引到抽血的服务上,换句话说:通过前述的器官启动心脏的实际过程。
(我认为当我完成此操作时,我必须遍历科学怪人。原因,确实是伙计们,这就是我们大多数时候所要做的。软件开发中的动画总是在零件“组装”之后通常是由Perto单独制作的。法律80%的人穿过剪贴板。)
但是在考虑分频器时,我开始意识到的另一件事是,我们生活在一种基本的幻想中,可以很容易地将其概括为整洁的事物:由于我们在做软件,而且事情还在不断变化,所以我们真的无法清理现在,但我们肯定会在以后。 (换句话说,假设我现在正在用《墙》的声音说话,说如果你不吃肉怎么期望得到任何布丁,'当我仍在使用所有这些玩具时,如何清理所有这些布丁?我还不能把它们收起来吗?
零件有序但设计变化无穷
令人震惊的是,我对此部分表示同意。 好吧,这并不是说我们应该让自己投降。 不,我们宁愿面对面,也要使其成为实现秩序的过程的一部分。 Hondo女士的无错定义实际上是一个世界,在这个世界中,欢乐的事物被提出,然后以定义的方式发回。 当然,您可以想象这将如何映射到烹饪。 例如,当我有一个Caesar(几乎无处不在的产品,在90%的情况下是非常糟糕的假货)时,我可以立即知道大蒜酱是否在研钵和杵中制成。 凯撒瓶调味是一个完全的笑话。 如果我在五轮死亡比赛中未能通过盲目测试来检测哪个是新鲜的v。瓶装,我可能会在判断后接受铁杉。 无论如何,将凯撒(Caesars)做成一堆之后,我当然学会了有效地制作糊状物的最佳方法。 这是否意味着我已经从中汲取了欢乐,并将其变成了无生命的死记硬背的练习? 不能。但是请记住,适当的凯撒的准备工作将包括渲染许多组件,尤其是如果您使面包块新鲜,磨碎奶酪并旋转长叶莴苣,然后不停地进行。 烹饪是一种奇怪的情况,因为您不想对其进行机器人化,但是如果您只是继续接受无效率的无伴奏无脑的学习,那么您也将一无所获。 我最近看了一部有关Madhur Jaffrey的传记,她在上面写上核心香料(即使有3或4种)的味道,就像画家的调色板一样,这意味着同一道菜每次制作时都会有细微的差别。 这是真的。
模式运动试图对我们如何做到这一点进行理论化:学习组件渲染变化,这些变化在内部是有序的,一致且有目的的,但可以组合起来,带来无限的可能性。 如果我查看一个模式,那么它的有序性就不是一个真正的问题:访客要么是一个,要么不是。 如果是这样,我知道双重派遣的两个方面在哪里。 那不是创造力破坏了军国主义。 意识到必须将事物设计为以清晰且可复制(和一致)的方式在内部工作,并且必须兼顾其他元素。 打开扩展名,关闭更改。
也许代码整洁应该是ABC (永远是关闭)信条的一部分。 从某种意义上说,如果我们总是关闭,我们将把每一件事都收起来。 投降的立场与其说是赫拉克利特的声明(我们永远不能两次踏入同一条河),不如说是无情的离岸价,这实际上是部分工作的无力。 众所周知,代码库经常充满上帝对象和弱抽象。 在一定程度上是因为工作集中在频谱的两端:无限和无限。 在这个领域的中间,有人必须能够说:“好的,对此可能会有更多的变化,但是现在,我们可以以有效的方式体现功能上需要的内容,从而放弃接受混乱。含糊不清的期票,它将永远不会还清,或者其清偿成本将随着开始的那一刻消失而消失。
毫无疑问,模式中的整洁元素确实很吸引人。 通常会遇到一些代码,这些代码本身都在努力使自己看起来漂亮且井井有条,但是实际上,这些代码只是呈现出排列整齐,没有星座的天空而已的精美片段。 丰田案例向我们展示了腐烂并不是我们容易相信的一些容易解释的现象。 坦白说,腐烂的生成论是一种典型的替罪羊场景:大人,随着其智慧的增长,会做事,而小人则不会。 当这些小侏儒也经常通过欺骗而潜入时,它们会将代码与他们ho陷的单胞菌一起播种。 我们必须为阻止这些害虫而战! 为了保持我们的代码干净。
嗯是的
翻译自: https://www.javacodegeeks.com/2015/10/what-is-a-tidy-codebase.html
什么是整洁代码