今年是我在软件开发行业的第七个年头,我觉得现在是时候和一些新软件工程师分享我认为越早知道越好的知识。希望对你有所启发。1.需求总是会变的或许你已经和你的团队成员评估了需求的合理性并达成了共识。您确信对产品的需求不会再次改变。但事实是残酷的,需求总是会因为各种原因而改变,例如:你或你的老板有新的想法;产品的目标群体发生了变化;期望;你需要认识到,正是因为这个残酷的事实,我们才有了一个重要的软件工程师职业标准:你是否能写出更有条理的代码。这就引出了我们的下一个话题。2.始终致力于编写更有条理的代码。新手工程师有时会沉迷于快速实现功能,从而编写“面条式”代码。一旦你到了某个点,你突然发现无法移动任何代码。对代码的任何更改都将是一场噩梦。因此,新手工程师比有经验的工程师更讨厌需求变更,因为他们需要花更多的时间去理解和修改代码,有时甚至需要重写整个模块。所以,为了节省宝贵的时间,所有的工程师都应该站在更高的层次上,在编写代码之前思考一下代码的组织方式。我知道一些优秀的框架已经在语法层面解决了这个问题,但是你应该在这里在基础上做得更好。更好的代码组织意味着:更稳定的应用;更少的错误;更清晰的代码结构;代码可以更加灵活和扩展;您可以学习一些MVC思想并将它们应用到您的软件开发中。要知道“三思而后行”在软件开发领域同样适用。3.代码有保质期相信我,你的代码总会过时的。随着你的技术水平的提高和功能的不断迭代,总有一天你会找到一种更好的方式来组织你现有的代码。对于需要长期迭代的产品,让代码过期就是我们常说的“技术债”。一个好的工程师不会给未来的自己或接手的下一个工人留下太多的债。这关系到开发商的责任心和信誉,需要引起重视。摆脱技术债务不仅对产品有好处,您还可以在此过程中提高自己的技能。当你意识到代码即将过期需要更改时,说明你的技术水平比以前有了很大的提高。处理过时代码有两种方式:重构:保证功能接口输入/输出的稳定性,但优化内部结构,使其更具可读性和易维护性;完全删除和重写:你很少有机会这样做,但是当一段代码不再被任何人理解并且维护成本太高时,这是必要的;大多数工程师不重视代码重构,不了解或不愿意在代码中加入单元测试和定期重构代码,这让他们错失了宝贵的晋升机会。作为一名新手工程师,应该尽早认识到代码重构的重要性,并尽量说服上司和合作伙伴在开发计划中预留代码重构的时间。4.不要重新发明轮子。由于新手工程师在工作之初不能要求有挑战性的工作,因此即使有第三方库或框架,他们也倾向于选择自己实现功能模块。这种行为的出发点是值得肯定的。作为工程师,我们都想证明自己的实力,但优秀工程师的核心能力之一就是充分调动现有的成熟资源。很多时候,自制的功能模块在健壮性和可靠性方面无法与社区成熟的功能模块相提并论。贸然使用自制的功能模块会给产品增加风险,成熟的开发者应该尽量避免。我建议新手工程师不妨换个思路。只有站在巨人的肩膀上,才能看得更远。与其花大量时间在工作上重新发明轮子,不如利用业余时间研究成熟轮子的优点并在其上工作。发现新的挑战。5、文档很重要这有两层意思:查阅文档很重要;写文件很重要;新手工程师有时会因为各种原因不愿意查阅官方文档,但事实是查阅官方文档是工程师经常做的事情。优秀工程师的核心职责是构思如何组织代码以实现目标功能并付诸实践,而查阅文档的过程使我们能够准确地为合适的“建材”选择必要的方式。通过经常查阅文档,一个API最终会成为你的长期记忆,你的工作效率会大大提高。与阅读文档同样重要的是编写文档,不幸的是,大多数工程师要么没有给予足够的重视,要么无法编写可读的文档。这两者对于一个好的文档来说都是非常重要的。文档的读者将是所有对您当前工作感兴趣的人,包括您未来的自己。对于一个没有文档或者文档没有及时更新的大项目来说,结局就是死亡。请积极编写产品或技术文档!6、如何应对不熟悉的代码库无论是刚加入一家公司还是换了一个项目组,我们都免不了要接手一个不熟悉的代码库。新手程序员这时候往往会手足无措,不知如何下手。我对此的建议是:运行应用程序,尝试修改一些代码,看看程序是如何工作的;分析目录结构以了解代码的组织方式;查看项目引入的第三方库,了解它们的作用;修改核心逻辑,试着画个流程图,搞清楚整个程序的逻辑是什么;请确保你已经基本掌握了代码逻辑再进行改动,否则无疑会增加代码的臭味,而且你很可能在未来的某个意想不到的时刻不得不还债。当您进入代码库并开始添加代码时,重要的是要确保您与原始代码库的编码风格保持一致,即使您认为您的编码风格更明智和优雅。这样做的好处是你的代码风格可能不是最好的,以后可能对代码风格有新的想法;当每个项目参与者都将自己个性化的代码风格带入代码中时,代码会变得越来越难读,也很容易让接手的下一个开发人员感到困惑;具有一定规模的开发团队会考虑统一的代码风格,请确保与团队要求的代码风格一致。如果您的团队没有统一的编码风格,那么就由您来主导构建,这是您大放异彩的机会!另外,新手开发者要坚信“我能行”,我可以坦白的告诉你,在web开发的世界里,没有魔法,所有的问题最终都可以解决,不管你是新手还是新手一个软件开发的老手,区别只在于解决问题的思路和时间。这就是软件开发行业的魅力所在。通过自己的努力解决一个难题,不仅能为你所服务的公司解决问题,还能提升你的专业水平,满足你的心灵。所以请享受你正在做的事情,并勇敢地解决任何问题。7.永远学习,永不止步软件开发行业的特点之一就是需要通过不断的学习来提高自己在市场上的竞争力,而编程世界永远有无穷无尽的创意、技术和产品。您需要认识到一个残酷的事实,即在大多数工作环境中,您改进的动力只能来自您自己。很多团队没有完善的培养机制,也不会为你制定职业发展规划。团队成员疲于完成业绩或没有兴趣与您讨论前沿技术话题,因此您需要保持警惕并寻求持续改进。确保您的技能水平始终高于或至少与您多年的经验相称。否则,你工作的时间越长,你的市场竞争力就会越低。请勇敢地走出你目前的舒适区。8.结语在这篇文章中,我与大家分享了我认为对于软件开发行业的新人来说值得注意的7件事。这些事情有的是我刚入行时希望有人告诉我的,有的是我进入这个行业以来的一些体会。感谢您的阅读,也期待您在评论区补充您的经验,让更多的人受益。
