大厂五年经历,教我如何写好工程代码

市面上有很多教大家如何写好代码的书籍,教会大家通过一些设计模式来设计模块,一些规范来书写代码。

但在实际工作中,我们在编写工程代码时会发现,除了书面上提到的一些最佳实践和代码规范,我们实际上要思考的东西要多得多,但我发现网上很少提及这部分,所以想来聊聊我的经验和感悟。

先说实现一个新功能。

如果刚接手新功能,一开始可能想到的是 "如何实现",你可能会有如下一些想法:

  • 看看别人是怎么实现的
  • 套模板,copy and paste

但很可能你不会考虑:

  • 是否全部的场景,边界条件都处理了
  • 接口设计的是否好用,是否满足需求
  • 是否有不符合直觉的设计

虽然可能不考虑,功能大概率也会实现。但它或许会给未来带来深远的坏影响。那么如果希望写出可靠的代码,那么我们首先拥有了正确的态度:对待代码要谨慎。不要抱着:"我这样写它可以跑诶,管他是否合理";"虽然有可能出问题,但是概率太小了,要不就不管了吧!" 这样的态度去做事。

但其实有想要变好的想法,与真的能写出优秀的代码之间,还是有很大区别的。

下面提供一些思考的方向:

  • 首先设计模块时,最重要的是定义接口。因为这关系到了其他模块要如何使用你的功能。所以要先明确其他模块需要什么样的功能,基于现状设计,而不是基于所谓的 "common" 模型/设计。
  • 不要依赖一些无法保证的,由其他模块决定的条件。即使会让你的代码写起来轻松很多。
  • 用户不会按你的想法来使用你的程序,所以如果用户以各种"姿势"来使用,是否都没问题。

但要知道什么样的架构是好的,什么是坏的,还是需要多看 "好架构", 才能在心里有所判断。不能囫囵吞枣的看,要带着思考看:多想为什么这么设计,是为了解决什么问题,现有的框架解决不了这个问题么?如果是你的话你会怎么设计。

再说说如何在原有的基础上添加一些功能。

一般我们在公司开发需求的时候,大部分都是这种情况。之前的功能可能实现的不完善,可能基于特定的条件实现的方案,那么我们在实现新的需求的时候,如果想要实现的好,考虑的东西就非常多了。

我们需要考虑:

  • 先抛掉原有的功能,新功能有会有什么使用场景,需要支持什么限制什么?
  • 旧功能实现的逻辑,旧的实现有什么问题,最好心知肚明。
  • 加了新逻辑后,各种情况需要考虑全面。
  • 切忌想当然。

综上,其实还是要慢,一开始慢慢想,培养深度思考的习惯。不要急躁不要糊弄。慢慢训练,方有所成。

相关推荐
我有满天星辰9 分钟前
【前端模块化】前端模块化演进之路:从脚本堆砌到标准统一
前端
我有满天星辰15 分钟前
Vue 3 响应式双雄:ref 与 reactive 完全指南
前端·javascript·vue.js
随风一样自由9 小时前
【前端独角兽】刚进入前端领域的前端开发用jQuery还是Vue3?
前端·javascript·vue3·jquery
IMPYLH9 小时前
HTML 的 <data> 元素
前端·html
YHHLAI10 小时前
[特殊字符] 面试中的 Promise —— 从入门到精通
前端·javascript·面试
weixin_BYSJ198710 小时前
SpringBoot + MySQL 乒乓球运动员信息管理系统项目实战--附源码04954
java·javascript·spring boot·python·django·flask·php
沪飘大军11 小时前
ll-llm:一个零依赖、可插拔的 OpenAI 兼容 LLM 代理
javascript
kyriewen12 小时前
我扒了 GPT-5.6 的全部编程跑分——有一项 OpenAI 没敢放出来
前端·gpt·ai编程
前端H12 小时前
微前端 v3 架构升级:从加载隔离到状态协同
前端·架构·状态模式
山河木马12 小时前
GPU自动处理专题3-NDC怎么映射成屏幕像素坐标(视口变换)
javascript·webgl·图形学