本文转载自公众号《读书芯》(ID:AI_Discovery)软件工程或者数据科学对很多人来说都不是一件容易的事。尤其是没有编码经验的人,在这两个领域中找到第一份工作可能会令人沮丧。经常收到“寻求改进方法”的消息或私信。但实际上,你真正需要的只是有人对你说“你能行!”这篇文章总结了我在第一份软件工程工作中所犯的错误。如果您正像我一样经历困难时期,那么这篇文章应该对您有所帮助。1.巧妙就够了,不会读懂写出好的代码很难,理解错误的代码更难。一开始我们可能很难直观地理解,其中一位资深开发人员针对以下问题提出了建议:过度抽象同一行上有多个嵌套的if/else语句过度使用链式方法Copyorpasteregexfromstackoverflow公式,没有评论,把逻辑压缩到尽可能小的空间里,让作者觉得很聪明。但是代码的可读性没有了。根据凯尼根定律:调试的难度是编写代码的两倍。因此,如果读者尽可能聪明地编写代码,根据定义,他们还不够聪明,无法调试它。2.提交审查的代码结合了多个特性我学到的第一件事就是不要在同一个请求中结合多个特性。这对审查代码的人来说并不友好。超过几百行的代码会让其他人难以在脑海中走完执行过程。有时这是门票范围不佳的结果。所以我总是告诉新开发者,如果他们认为一个票可以进一步细分为子票,他们应该推回去,越小越好。3.使用上下文无关的变量名想出一个好的变量名是非常困难的,但当时我急于尽快完成。所以我选择了第一个想到的名字。用户的姓氏是uln。一组电子邮件地址是一个数组。两者都不是一个好主意,并且让任何人都很难理解所写的内容,即使是我自己。4.看完featureticket马上写代码图源:pexels在一个feature上花了一个星期,然后才意识到这个feature是错误的,这真的很尴尬,但是我不止一次犯过这个错误。一个工程师放松一下,理解业务问题,并围绕它来规划代码,这是很多工作。吸取教训,在笔者自己的创业计划开始之前,让新开发者详细规划一些门票。这种级别的微观规划有助于理清思路并制定更有效的解决方案。5.评论太多或太少最初,作者没有任何评论。在第二阶段,作者对每一行都有评论。add_two_numbers函数将用#adds2numbers注释。这有点矫枉过正。回想起来,直到我阅读了足够多的其他开发人员编写的代码,我才注意到我希望他们在何处添加注释,我才明白注释的真正用处和正确数量。6.推送重复和未使用的代码作者做了以下所有事情:应用程序中已经存在的书面功能保持自动生成但未使用的文件(即:测试文件)添加未使用的包一些框架自动生成许多不必要的文件。当您开始使用应用程序时,您也不知道所有现有代码。我发现避免这些问题的最好方法是在提交审查之前始终仔细阅读您编写的代码。资料来源:unsplash7。允许安全漏洞我要感谢一位优秀的高级开发人员保护我的代码免受黑客攻击。我做了以下所有事情:允许SQL注入允许URL跳转以访问受限页面仅用于前端验证具有增量ID的命名空间URL构建最佳安全实践的心理清单花了很长时间,我现在在查看其他开发人员的时使用它代码。8.编写低效的数据库查询当我开始第一份工作时,我对数据库一无所知。弄清楚数据库索引花了大约一年的时间。当时我写了很多N+1查询,创建了db表来存储很多没有索引的数据。这两个都是应用程序缓慢而乏味的原因。9.使用基于错误的条件逻辑条件if/else语句是软件的核心部分。在伪代码中,它们通常看起来像这样:ifxistruedothiselsedothat但是当作者写他的第一个扔砖软件时,它充满了以下逻辑:dothisifthisfailsdothat有时你需要保存一个错误,比如当你遇到一个不可靠的API小时。偶尔出现这样的问题可以,但不能成为常态。编写软件是一项艰巨而又充实的工作,实践可以使我们快速成长。处在困难时期,但做好事的朋友,不要问未来,结果会在你努力的过程中悄然到来。
