当前位置: 首页 > 科技观察

我从高级开发人员那里学习了软件开发的19条编码原则

时间:2023-03-16 10:33:52 科技观察

整天敲代码,调试成功。但是代码质量堪忧,可读性不是很高。完美的。也许这不是你编码能力的问题,很有可能是你在写代码的时候没有遵循一些看似不重要的编码注意事项。这里列出了高级开发人员经常遵循的19条原则,其中许多原则与实际编码无关,而是与过程以及如何处理可能对您有帮助的任务有关。1.三法则这是代码重构的经验法则,用于决定何时用新代码/过程/方法替换复制的代码段。意思是当你第一次使用某个功能时,你写一个具体的解决方案;第二次使用时,复制上次的代码;当它第三次出现时,你就得开始“抽象化”,写一个通用的解决方案。这个原则的主要思想是让代码/过程/方法更通用,以便在其他地方可以复用。2.一致的应用程序结构和编码方法一致的应用程序结构和编码方法将有助于提高其可读性和可维护性。尝试制定编码标准,这有助于保持编码的一致性。编码标准应该像变量的命名规则一样少。另一个大问题是结构3.减少程序嵌套如果嵌套在if里面会使程序非常混乱,代码难以阅读。可能无法解决这些问题写代码时遇到的问题,但是需要经常查看代码结构,elseif也是一样,所以要尽量避免嵌套,一个有效的解决办法是guard语句:guard语句将一个复杂的条件表达式拆分成多个条件表达式。无守卫语句的编码方式:if(account!=null){if(order!=null){if(order.term==Term.Annually){//termannually}elseif(order.term==Term.Monthly){//termmonthly}else{thrownewInvalidEnumArgumentException(nameof(term));}}else{thrownewArgumentNullException(nameof(subscription));}}使用guard语句编码方式:if(account==null){thrownewArgumentNullException(nameof(account));}if(order==null){thrownewArgumentNullException(nameof(order));}if(order.term==Term.Annually){//termannually(returnhere)}if(order.term==Term.Monthly){//termmonthly(returnhere)}thrownewInvalidEnumArgumentException(nameof(order.term));4.了解大局很重要了解大局有助于处理较小的细节。一旦了解了大局,就不会在小细节上花费大量时间。5.程序中的命名程序中的命名是最难的事情之一,包括类的命名、方法的命名,甚至变量的命名。一个好的开发人员会花时间思考相对命名,这会增加程序的可读性。6.减少技术债务技术债务是指开发人员为了加速软件开发,在应该采用最佳解决方案的时候做出了妥协,转而采用短期内可以加速软件开发的解决方案,从而给自己带来额外的开发负担将来。这种技术选择就像一笔必须在未来偿还的债务,尽管它在现在看来可能是有益的。软件工程师必须花费额外的时间和精力来不断修复之前妥协导致的问题和副作用,或者重构以改进架构以达到最佳实现。对于技术债问题,增加预估时间可以帮助解决此类问题。尽最大努力编写好的代码,否则您将继续改进代码。7.改善预估时间你会看到高级开发人员总是给任务更多的时间,因为他们知道完成任务所需的时间总是高于预期,在评估阶段增加缓冲时间确实有帮助。帮助您完成工作。这确实有助于解决技术债务。如果你低估了任务完成时间,你可能会因为时间不够而写出只能工作的代码,而不会顾及到简单性和可维护性。8.文档和代码注释文档和代码注释有助于保存上下文和共享知识。你会经常听到有经验的人说,我们能不能把这个过程记录下来,或者代码审查失败,因为没有对接口之类的东西进行评论。9.删除不需要的代码许多不自信的开发人员会注释掉大块代码而不是选择删除。但是代码版本控制是有目的的!优秀的开发人员会从他们的应用程序中删除错误的代码。10.花时间在代码审查上好的开发人员会花更多的时间在代码审查上,代码审查的重要性包括:及早发现错误;提高开发人员技能并让团队其他成员参与良好实践;共享知识;一致的设计和实施。最好的代码审查过程是:对于风险较小的任务,1名开发人员审查就可以了;中/大型变更或风险变更应由3名开发人员审核,其中一名必须是高级开发人员;非常高风险的变更或正在开发的应用程序的新部分,应安排与3名开发人员中至少一名作为首席开发人员的会议,共同完成每一行并提出要点。11.编写好的测试你会注意到更有经验和能力的开发人员花更多的时间编写好的测试。拥有良好的测试可以帮助您更有信心地扩展应用程序并减少错误。12.花时间设计程序在实际编写代码之前,开发人员会仔细考虑并将代码分解成小块。这有助于他们更好地将所有内容联系在一起并创建更清晰的代码。13.关注基础而不是语法更多地关注基础而不是语法有助于开发人员更快地发现问题,更好地理解问题并在搜索引擎上搜索解决方案。14.让搜索引擎成为你最好的朋友高级开发人员是使用搜索引擎解决问题的专家。从上一项也可以看出,他们更注重基础而不是语法,所以他们知道要搜索的关键词。如果你一直专注于语法,这将很难做到。15.首先确保程序有效,然后再改进它。你经常会看到比较弱的开发者,他们花了很多时间让程序一开始看起来很漂亮,但后来发现程序不起作用。优秀的开发人员会在早期找到愉快的工作方式。在他们把事情做好之前尽早发现问题。这可以帮助项目更顺利地运行。16.风险管理和问题解决高级开发人员可以定义风险,可以应用设计模式提炼复杂的问题,可以根据以往的经验独立解决不同的问题。17.多问问题高级开发人员什么都想知道。他们不介意提出听起来很简单的技术和业务问题。了解业务需求有助于开发人员编写更好的代码!他们不怕提问,因为他们对自己的能力充满信心。18.尽可能将逻辑放在数据库之外这取决于您正在构建的应用程序类型,并且仅在不影响性能的情况下才适用。高级开发人员知道将数据库查询保持为简单的CRUD操作。CRUD指的是在计算处理过程中的添加(Create)、检索(Retrieve)、更新(Update)和删除(Delete)。接下来,业务逻辑层应该将CRUD操作整合在一起。这有助于开发人员了解在哪里寻找业务逻辑。如果您在数据库查询和代码中有逻辑,这很快就会变得混乱!19.保持代码整洁保持代码整洁是最佳实践。即使这意味着编写更多代码行。这是一个相对较弱的开发人员编写的单行代码:returndir.Keys.Any(k=>k>=limit)?dir.First(x=>x.Key>=limit).Value:dir[dir.Keys。最大限度()];这样的代码可以运行,但是可读性很低。原文链接:https://medium.com/javascript-in-plain-english/19-things-i-stole-from-great-developers-85511ff56570【本文为机器之心专栏原文翻译》、微信公众号《机器之心(id:almosthuman2014)》】点此阅读作者更多好文