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

我作为初级开发人员犯的编码错误

时间:2023-03-21 20:51:07 科技观察

您在软件工程或数据科学领域的第一份工作可能会令人沮丧。特别是如果您不在幕后编写代码。我经常收到人们发来的消息,要求提出改进建议。但他们真正需要的是有人告诉他们——“你能行!”以下是我个人在第一份软件工程工作中犯的错误。如果您遇到困难,这应该会让您感觉好些。1.编写比可读代码更聪明编写好的代码很难。理解糟糕的代码更加困难。但一开始并不直观。值得庆幸的是,我有一位资深开发人员不止一次地提出以下几点。同一行上有多个嵌套的if/else语句过度使用链式方法正则表达式从堆栈溢出中复制/粘贴而没有注释过度抽象将逻辑压缩到尽可能小的空间中,这让我觉得很聪明。但这也使我的代码不可读。现在,我总是试图在可读性方面犯错误。调试的难度是编写代码的两倍。因此,如果您尽可能聪明地编写代码,那么根据定义,您还不够聪明,无法调试它。-Kernigan定律2.在没有上下文的情况下使用变量名想出好的变量名非常困难,我想尽快把票搞定。因此,我选择弹出的名称。用户的姓氏变为uln。一系列电子邮件成为一个数组。两者都是糟糕的想法,并且让任何人(包括我自己)都很难理解我写的东西。3.允许安全漏洞在另一种情况下,我要感谢一位出色的高级开发人员,他使我的代码免遭黑客攻击。我已经完成了以下所有操作:允许SQL注入允许URL跳转以访问受限页面仅使用前端验证具有增量ID的命名空间URL构建良好安全实践的心理清单我花了很长时间这个清单现在用于审查其他开发人员的代码。4.阅读功能单后立即编写代码花一个星期在一个功能上然后才意识到它是错误的功能是很尴尬的。我已经做过不止一次了。屏住呼吸,了解业务问题,并为其规划代码对工程师来说是一个巨大的倍增器。以此为鉴,我让新开发者在开始之前详细介绍我自己的创业计划票。此级别的微观计划有助于理清思路并制定更有效的解决方案。5.评论太多或太少我一开始什么都没评论。然后,我经历了对每一行进行评论的阶段。名为add_two_numbers的方法将用#注释以添加两个数字。这太多了。回想起来,我没有点击正确数量的评论,直到我阅读了足够多的其他开发人员编写的代码,注意到我希望他们在何处添加评论。6.推送重复和未使用的代码我已经完成了以下所有工作:应用程序中已经存在的书面功能保留自动生成但未使用的文件(即:测试文件)添加未使用的包一些框架自动生成许多不必要的文件。当您开始使用该应用程序时,您也不知道所有现有代码。有趣的是,我发现避免这些问题的一个极好的方法是在提交审查之前详细检查您编写的代码。7.编写低效的数据库查询当我开始第一份工作时,我对数据库一无所知。我大概花了一年时间才弄清楚数据库索引。当时我写了很多N+1查询,创建了db表来存储很多没有索引的数据。两者都是令人讨厌的缓慢应用程序的秘诀。8.使用基于错误的条件逻辑条件if/else语句是软件的核心部分。在伪代码中,它们通常看起来像这样。如果x为真,则做这个,否则做那个,但我为我的投资组合编写的第一个应用程序充满了这样的逻辑。做这个如果失败了做那个有时候我们需要挽救错误,比如当遇到不可靠的API时。但这应该是例外,而不是规则。9.提交具有多个特性的代码以供审查我学到的第一件事就是不要在同一个pullrequest中组合多个特性。审查代码的人不是好人。超过几百行会使其他人难以在脑海中走遍不同的执行路径。有时这是票据范围不佳的结果。因此,我总是告诉新开发人员,如果他们认为可以将工单进一步细分为子工单,则应该推迟。越小越好。结论学习编写软件非常困难。你只能通过做来学习一百部动人的作品。我希望读到我的笨手笨脚能让你对自己的挣扎感觉好些。对我有很大帮助的是让一位高级开发人员对我提交的每段代码提供详细的反馈。找一个你可以得到它的公司/团队。这是一种更快的改进方法。