前言
知乎上有一个提问:如何写好业务代码?
↓↓↓
今天,我们就这个话题一起来做个讨论。
我的回答
关于写业务代码这件事,个人觉得,当你理清产品的需求点后,往往不会太难,很多时候剩下的是一些CRUD工作,等我们写完代码,完成自测,然后和相关对象(比如前端或相关依赖方)联调通过后,就可以走提测环节了。
那话说回来,提问的问题是如何写好业务代码,那和我上文说的写完业务代码有什么区别呢?
由于提问的小伙伴并没阐述清楚对这个“好”字的语意,在这里,我先根据自己的理解,给它下个定义。
好的第一层语义是保证代码质量。我刚才就说了,写完代码很容易,但你写的代码怎么保证不容易出错,上线后基本没bug,这就体现了一个程序员的编码水平了。
好的第二层语义是确保你编写的代码具备可扩展、可维护性。
特别是当你面对复杂性极高的业务需求的时候,太多的if- else条件判断,太多的状态代码,如果你采用事务脚本模式来写代码,很容易一个类、一个方法几百上千行代码,所有逻辑黏在一起,代码美感不说,其复用性变得极其低下、不易扩展与维护,甚至一处代码的改动会产生连锁效应,其他功能跟着受影响。
事务脚本模式:传统的MVC组织架构,业务类方法没有任何状态,所有逻辑都封装在方法内部,进行各种计算、组装
就这样开发持续在里面堆代码,时间长了,连自己都不敢动原来的代码。
一旦他离职,交接的新手更不敢动,那怎么办呢?很多人为了保证自己的改动不会影响其他功能,他会选择重载一份原来的代码,然后在新方法里面新增业务代码,就这样长此以往,屎山代码终成。
OK,那有什么方法能写出所谓的好的代码呢?
在这里,我结合自己超过八年在一线互联网公司的编程经验,深度总结了如下11个方法,是我认为可以帮助你写好业务代码的:
1.详细设计:我曾经不止一次强调,详细设计对于我们编程的重要性。尤其是如果你做的需求估时在3天及以上,那我强烈建议你先不要着急着编码,一定要先认真写一份详细设计文档(可以画一下业务逻辑架构图、UML图、ER图等来辅助我们理清待开发的业务需求)
它能帮助我们,及时发现潜在的风险点、难点,然后在评审会议上,我们一一与团队小伙伴展开充分讨论,将最终方案确定下来。
只有这样,你编写的代码,方向才是正确的,没有后顾之忧的,更不会后期返工。
2.遵循编码规范:使用一致的编码规范,确保整个团队都采用相同的标准。这有助于提高代码的一致性和可读性。
3.模块化设计:将代码划分为小的、独立的模块,每个模块负责一个明确的功能。模块化设计有助于提高可维护性和可扩展性。
4.清晰的命名和注释:使用有意义的变量和函数命名,以及清晰的注释,帮助他人理解代码的意图。避免使用模糊或缩写的命名。
5.错误处理和日志:添加适当的错误处理机制,以便及时捕获和处理潜在的问题。同时,使用日志记录系统,有助于在出现问题时进行故障排除。
6.单一职责原则:每个函数或类应该有一个单一的职责。这有助于代码的清晰度和可测试性。
7.测试驱动开发(TDD):使用测试驱动开发的方法,先编写测试用例,然后编写代码以满足测试。这有助于确保代码的质量和稳定性。
8.版本控制:使用版本控制系统,例如Git,来追踪代码的变化,方便团队合作和回滚到先前的稳定版本。
9.性能优化:在设计阶段考虑性能,并使用合适的数据结构和算法。进行性能测试,并优化关键路径,以确保系统具有足够的响应速度。
10.代码复审(简称CR):实施代码复审机制,通过团队内的同事对代码进行检查,以发现潜在问题并提供改进建议。
11.学习和不断改进:关注行业最佳实践,参与培训和社区讨论。不断学习新的技术和工具,以不断提升自己和团队的水平
OK,接下来,分享一则某大厂一个资深架构师关于这个问题的精彩答复,灰常精彩,一定看到最后哦!
知友作答
写到最后
感谢您一路陪伴着我,探索编程的奇妙世界。如果您对程序员日常趣事、编程技巧和技术干货等充满兴趣,那么不要错过未来我为大家奉上的精彩内容!点击关注,让您的程序员之旅更加丰富多彩,我们一同成长,一同前行!