神物:如何召唤Codethulhu

      最后更新:2020-04-08 11:22:08 手机定位技术交流文章

      全文由3476个单词组成,预计持续10分钟。

      资料来源:Unsplash

      肖鑫之前已经介绍了许多关于提高软件质量的文章。这个角度倾向于那些想要提高软件质量的读者,但是他们不小心忽略了他们的伙伴,他们想用更多的错误来感染系统。

      是的,是的,世界上有各种各样的东西,虫子也很可爱。

      因此,臭虫爱好者们,下面的小核心将在他们的头脑中庄严地介绍能够系统地创造臭虫温床的头号生物。

      阅读警告:这篇文章可能含有讽刺意味,可能会引起你的不适。请仔细阅读和编码。

      首先,找到一个非常复杂的问题

      资料来源:Unsplash

      非常好!你选择用寄生的复杂性增长来感染代码库,导致无数小时只有你能做的复杂工作(即“工作保障”)。

      魔法是产生高复杂性的好方法。只有非常了解它的开发人员才能在不违反质量保证的情况下找到答案。

      上帝也有一些昵称,如“Codethulhu”、“初级开发人员的克星”和“质量保证分析师”。

      有一个问题需要首先解决。我知道这篇文章的任务是增加复杂性和保持工作。解决问题不是核心。但是,请耐心听我说。

      如果代码解决的问题不够特殊和重要,未来的开发人员可能会避免它,甚至完全放弃它。

      因此,我们正在寻找的问题是:

      需要高度的技巧和思考能力来解决;

      不能很好地理解它或者不需要花时间思考它;

      与许多其他复杂的系统和过程相互作用,显示出它们的一些复杂性;

      需要新的功能,这些功能可能会增加和扩大复杂性;

      没有现成的简单替代品。

      如果你什么都没想到,有两个选择:等待新的复杂特性到来,或者从现有的代码层中提取一个大文件来扩展。

      可以考虑的对象:

      通信/网络服务层;

      自定义用户界面控件;

      数据访问层;

      对象序列化/反序列化逻辑;

      公共服务(业务逻辑)层。

      当然,业务问题是所有问题中最特殊的,但是如果您的组织不愿意提供足够大的功能来扩展到Codethulhu,那么可以使用其中的任何一个。

      二。科德图鲁的诞生

      资料来源:Unsplash

      一旦发现机会和主要问题,最复杂的阶段就来了。阅读前给自己吸一口。

      为了让生物存活并进入数据库,它必须是可行的。也就是说,首先,我们应该解决或主要解决我们工作中发现的所有问题。

      所以我们必须先低下头。我们必须非常努力地工作,以便在以后解决由大功能引起的问题,更不用说在大文档中故意制造的大问题了。

      第三,扩大感染

      然而,这种巨大的生物不会在一夜之间长大。我们想要培育的怪物需要时间和投资才能茁壮成长。刻意培养是不必要的,但肯定会有帮助。

      记住:尽可能多地把逻辑放在同一个类中。

      如果问题适用于对象,则在对象中解决。例如:

      序列化

      反序列化

      数据存取

      确认

      分析

      格式化

      记录日志

      线程管理

      国家管理

      躲藏

      Web服务调用

      所有这些都可以通过魔法来解决。

      请记住以下公式:

      你的问题很特殊,解决的问题也很复杂,所以它不同于其他代码。如果这个问题中还存在其他代码,它就不再特殊了。代码内部需要特别定制的逻辑。

      在开发时,建议只对代码添加一些注释。毕竟,代码应该是自动记录的,对吧?

      一定要利用外部库和所有可用的新语言特性,尤其是同事不熟悉的特性。

      嵌套的三元表达式和正则表达式可以有效地确保只有特殊的开发人员才能访问代码。

      记住:在别人发现和提问之前,你只有有限的时间来培养超自然力量,所以好好利用这段时间,让它达到巨大的规模和极高的复杂性。

      资料来源:Unsplash

      Iv .捍卫新生的科德图鲁

      如果您在创建大型复杂类时遇到问题,可以说它遵循单一责任原则(SRP),在单个文件中解决业务问题。

      如果SRP的理由仍然受到质疑,那就打着开会迟到的幌子逃跑。如果怀疑继续,是时候改变你的态度了。

      你应该表现得好像你受到了侮辱和冒犯,然后要求对方解释当场解决的问题的全部复杂性。如果对方不能完全描述问题或解决方案,反击并终止对话。

      如果对方真的是对的,那么就去寻找那些没有提到的技术和其他问题。例如验证、持久性、线程、模糊边缘情况等。

      当谈到线程时,最好宣称代码的复杂性是以提高性能的方式构建的(如果是真的,那就更好了)。

      如果对方说想彻底检查代码,那就是在设陷阱。你说时间太紧了,不允许这样做,代码检查只针对垃圾开发人员。他们应该知道你的代码非常好,所以他们会雇佣你,让你继续解决关键问题。

      如果还有人继续纠缠于代码问题,也有一个好办法。给其他开发人员一个在没有帮助的情况下应用这些代码的机会,最终完全失败。在这一刻,你可以突然出现,展示你的才华。

      最后,如果这个小工具仍然引起其他开发者的不满,就给它重新命名,并以诸如外观、控制器或服务之类的词结束。似乎每个人都不关心这种数据越来越多。

      资料来源:Unsplash

      五、混乱,又称保住饭碗

      迟早,你的魔力会在质量保证、程序员同事和潜在产品中造成混乱。

      别担心,这很正常。

      上帝就像教堂每个月都会送出的果冻。它们是不断被给予的礼物。

      当然,下面的一些工作会非常复杂和紧迫,但这是你所期望的结果。

      作为唯一一个能够处理复杂的状态管理、线程和操作序列问题的人,你的声望正在上升,你的命运与此息息相关。

      希望Codethulhu对企业目前的持续运营至关重要,否则你和它都将在下周离开。

      如果科德图鲁已经根深蒂固,祝贺你赢得长期工作。

      当然,你不能被提升,因为公司担心除了你没人能控制这只野兽,但这只是保住你工作的一个小代价。

      如果任何架构师或任何人最近读过或发表过任何与“重构”相关的东西,请小心。

      资料来源:Unsplash

      六、小心谁能杀死克多图鲁

      穿着闪亮盔甲的骑士总是时不时地来杀怪物。这通常没有问题,因为Codethulhu会让初级开发人员失去理智。

      然而,有时有些人对软件架构和模式有着混杂的知识,渴望“改进”代码库,以及杀死陌生人的技能和纯粹的意志力。

      当这种人真的出现时,那就不好了。让我们开始寻找出路。

      一般来说,这种人会大声喊叫,告诉开发公司重构代码是一种常见的模式、单一责任原则(SRP)、提取助手类、更喜欢组合而不是继承等等诸如此类的废话。

      他们的桌子上可能有这些书:

      -"有效处理遗留代码",迈克尔·费斯著

      马丁·福勒重建

      肯特·贝克的测试驱动开发

      罗伯特·马丁的干净代码

      * "软件设计的全面分析",亚当·托希尔著

      小心他们成功修改了代码图,或者更糟,测试它。如果真的发生了,事情被揭露了,也许是时候改变公司去崇拜上帝了。

      七、以上都是笑话

      资料来源:Unsplash

      因此,总而言之,这篇文章很讽刺。

      然而,这和我早期职业生涯中犯的一些错误非常相似。

      我正在为Windows桌面应用程序开发一个复杂的非标准用户界面控件。虽然我只工作了六个月,但我已经编码了大约15年。

      随着工作进行到大约四分之一,我创建了一个非常复杂的用户界面控件类,它管理:

      动画

      *选择

      焦点

      数据虚拟化

      Ui虚拟化

      事件的传播

      键盘导航

      当每一个新版本发布时,我们将会添加所需的新特性,这个类将会继续增长,甚至在一个文件中达到4000行代码。

      这些特征不可避免地开始相互冲突。在问题发生之前,我们不知道有一个神奇的对象控制着代码库,这导致了混乱和不可预测的错误,并且难以复制和修复。

      八.杀死科德图鲁

      资料来源:Unsplash

      大多数人不会故意创造魔法物品,但即使他们创造了,里面的一切也不会丢失。

      以下是一些让你摆脱困境的高级方法:

      Srp是你忠实的朋友。如果在开发类或方法时牢记这一点,默认情况下将避免这种反模式。

      将非核心职责转移到其他对象,以将逻辑提取到辅助类,这有助于简化代码。

      在对类进行任何更改之前,执行尽可能多的固定测试。这捕捉了当前的行为并知道重大的变化。

      不要害怕与管理层沟通技术债务,并讨论对当前代码基础的担忧。领导者可能会欣赏诚实和开放的员工,并希望获得有关风险缓解代码的最新信息。

      资料来源:Unsplash

      保持警惕,希望你的代码库永远不会遇到Codethulhu。

      最后,祝你好运!

      评论、表扬和关注

      让我们分享人工智能学习和发展的干货。

      如果重印,请在后台留言并遵守重印规则。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/3852.html

          热门文章

          文章分类