前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >国外大牛 Adam Fallon 十年软件开发的一些经验分享

国外大牛 Adam Fallon 十年软件开发的一些经验分享

作者头像
明明如月学长
发布2023-07-10 17:16:59
2370
发布2023-07-10 17:16:59
举报
文章被收录于专栏:明明如月的技术专栏

经过了长达十年的编程生涯,我对于软件工程的理解和认识已经日趋成熟。在此,我想与大家分享一些对于编程的独到见解和心得体会,希望这些经验可以为你的编程之路提供一些参考。

首先,我发现有一个庞大而声音响亮的行业,致力于将复杂性加入到软件工程项目中。这种复杂性通常表现为无用的功能、繁琐的流程以及冗长的代码。这些都可能导致我们的软件过度复杂,难以维护和优化。因此,我建议尽可能避免这种复杂性,追求简洁、高效的设计和代码。

其次,我们需要明白,关于软件的 99% 的文字都是由那些尚未看到全貌,对此过于兴奋且信息不充足的人写的。这不仅包括一些技术博客,甚至也包括这篇文章。因此,在阅读这些资料时,我们应保持批判性思维,明确它们可能只是部分人的观点,不一定适用于我们的实际情况。

除此之外,我们需要尽量避免与编程相关但不涉及编写和测试代码的繁琐工作,例如过度的设计、无用的会议等。相反,我们应该更加专注于完成工作,编写可用的软件,并获取用户。

关于测试,我认为一旦代码库开始稳定,测试就变得非常重要。在这个阶段,通过测试可以有效地发现和解决问题,提高软件的质量。然而,在软件开发的试验阶段,我们可以暂时忽略测试,以便更快地进行试错和优化。

同时,你无法阻止某人"毁掉"你的代码库。但你可以责怪自己没有设计防护措施来阻止这种事情发生。因此,我们在设计和编程时,需要考虑到这种可能性,预先设置好防护措施。

我还发现,选择并坚持一个技术栈非常重要。我选择了 React(Web)、NodeJS(后端)、Postgres(数据库)和 React Native(移动端)。这套技术栈可以满足我几乎所有的需求。因此,我建议你找到适合自己的技术栈,并坚持使用。

另外,我建议大家多做辅助项目。这不仅可以提升我们的编程技能,还可以 帮助我们更好地理解和运用新的技术和工具。例如,你可以试着完善从数据库拉取的 JSON 数据列表的展示,这种练习将大大提升你的技能水平。

在编程范式的选择上,我认为函数式并不比命令式更优,它只是编写软件的另一种方式。因此,我们不应该成为任何一种编程范式的狂热者,而应该根据实际需求和情况,灵活选择适合的编程范式。

当然,我们也应该明白,并非所有的高级(及以上级别)软件工程师都是一样的。我们需要警惕那些只是凭资历而非真正技能和经验的工程师。同时,我们也需要明白,一分钟的规划等于一小时盲目编码的价值。因此,在开始编程前,我们应该花时间进行充分的规划和设计。

在我看来,所有好的软件都是在 70 年代编写的,从那时以来,软件的质量似乎一直在下滑。我想,这可能是因为我们过于追求新的技术和工具,而忽视了软件的本质和基础。因此,我建议大家在追求新技术的同时,也不要忘记软件的基础和本质。

在交流和合作中,我认为安静总比喧闹好。我们需要学会在合适的时机与他人分享我们的想法和成果,而不是随意地说出来。这样,我们的想法和成果才能得到真正的重视和尊重。

最后,我想说,在编程领域中,不应该轻易改变使用的技术栈或工具,只为了追求一些微小的好处或瞬间的满足感。同时,我发现,真正的好工程师都很谦逊,他们喜欢学习,喜欢分享,是我们值得学习和借鉴的榜样。

以上就是我在编程十年的一些心得体会,希望对你有所帮助。当然,每个人的经验和心得都会不同,我也期待你能分享你的见解和体验。

注: 本文根据 : https://adamfallon.com/programming/software-engineering/2022/09/09/some-thoughts-on-my-first-ten-years-of-programming.html 改编而来。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-07-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档