拥抱linux
当英雄们开始表现怪异时,您就会重新审视他们对生活的影响。 我一直在通过TDD,模式等来学习,演示和教学干净的代码。 但是,当我回头看时,我现在担心这些想法会对我的生活和工作以及他人的生活产生负面影响。
许多认识我的人都认为我是一位非常熟练的程序员。 我之所以这样,是因为我经常晚上花时间练习编程技术。 在磨掉一些最终毫无意义的代码后,我通常比同事晚1-2小时离开办公室。 这是我不和家人在一起的时间。 因为我已经学会了关心清洁代码。
在我的职业生涯中,一些最不愉快的经历是由于对编写某些代码的“纯净方式”的分歧。 我认识一些我专业敬重的人,如果我们中的一个人在某些情况下不坚持纯粹的代码,那本可以成为好朋友的。
我并不孤单。 我见过由于对程序员义务的不同期望而导致的团队之间的冲突。 通常由“清洁代码”的想法推动。
随着年龄的增长,我学会了不再对“ Unclean”代码感到沮丧。 在任何现实世界的代码库中,都会有无数不幸的怪癖,奇数和结局。 没关系 事物之所以如此,是因为它们就是那样。 人们之所以做自己的事情是有原因的。 这些原因是正确的,无论是因为周围的需求发生了变化,还是由于开发人员经验不足,因为他们想回家而不是坐在办公室里而不是呆在办公室里或者他们对好的代码的看法有所不同而引起的。 。
有时,我会在TDD,增量设计,重构和结对编程方面对团队进行培训。 我几乎总是要花很多时间来帮助团队以更具建设性的方式弥合分歧。 通常,那些阅读过“清洁代码”的人最容易遇到这种冲突。
我为什么现在提这个? 因为“清洁法规”的思想作为指导原则无济于事的原因上周末得到了彻底的缓解。 原因很简单: 当我们遵循某个原则或规则而没有思考它对自己和他人的行为时,我们会误入歧途 。 罗伯特(鲍伯叔叔)马丁(Martin)是《清洁法规》(Clean Code)书的作者,也是一位著名的开发培训师。 他经常写义务 , 捍卫和维护该行业荣誉的誓言 ,并且羞辱未做TDD的借口 。 很长一段时间以来,我一直对这种“荣誉”,“义务”和“专业主义”语言at之以鼻。 但是我喜欢测试驱动的开发,并且我将它作为一种更有趣的开发方式进行了体验。 我相信开发商应该拒绝非法订单 。 我同意鲍勃叔叔的所有这些要点。
只有当他写了一些我强烈不同意的东西时,对“清洁代码”的直觉才变得清晰起来。 在Twitter上的最后几天,我们看到鲍勃叔叔暗中谴责了违反戈德温法律的行为,而不是在大赦国际将其与酷刑相提并论的情况下拘禁数千名儿童。 在接下来的几天里,鲍伯叔叔反击了他的批评家,并强调他认为情况令人恐怖,“但是……”并不比“将其与纳粹相提并论”那么“不光彩” 。 我认为他的工作重点非常错误。 我回应说:“ 鉴于@unclebobmartin最近的推文,像Clean Code之类的想法已经开始在我的口腔中造成不良味道。 我们只说“代码”,是吗? 我正式设立“星期一肮脏的代码”,以记住质疑教条,部落主义和事前思维。 鲍勃让我解释一下“您为什么决定抵制《清洁法》的概念” 。 因此,此博客文章。
我非常不同意他在这个政治问题上的立场。 我尊重某些人对规则和原则的重视程度高于个人命运。 我不重视规则本身。 将其返回到代码中:我不认为我们应该使用TDD, 因为这是一项专业义务。 相反,当它使我的工作更愉快时,我会使用TDD。 我认为我们不应该重构代码, 因为它违反了SOLID原理。 取而代之的是,我有时会达成一项原则,以理解为什么某些代码难于更改或理解。 我不想因为编写不干净的代码而感到羞耻。 相反,我相信在平等之间就我们希望代码的外观进行诚实的对话。 我认为专业精神不应迫使我们为所有未经测试的代码引入测试。 相反,我认为我们应该优先考虑解决的缺陷以及允许哪些代码怪兽在代码库中度过自己的生命。
我想接受我的不洁代码是作为值得骄傲和谦虚的战斗伤痕,而不是因为失败而感到羞耻。
我的朋友ThorbjørnSigberg写道, 如果您的敏捷转型只有一个目标,那就应该是“少做些无聊的事情”。 当Clean Code成为减少枯燥工作的源头时,我是支持的。 当它成为挫败感和内感的来源时,我反对。
对我而言,极限编程的思想是整个团队,结对编程和专注于用户的思想,它们给我的职业生涯以及我的团队带来最大的快乐。 Bob叔叔承认编程实践的这些要素,但是几乎没有谈论过如何做到这一点。 我不同意这些优先事项。
当鲍伯叔叔提名我为“抵制干净代码”的负责人时,我想我应该尝试以深远的结尾。 怎么样:您最有价值的技能是知道重要的事情。 代码并不重要。 原则并不重要。 规则并不重要。 人很重要。 这意味着您的用户,您的团队,您的家人,您自己。 引用约书亚·克里夫斯基的《 现代敏捷》 :让人们真棒。 清洁代码可能会帮助或伤害该目标。 学会看区别。
翻译自: https://www.javacodegeeks.com/2018/06/forget-clean-code-embrace-compassionate.html
拥抱linux