设计比实际写代码重要
代码是思考的落地,动手写代码不是最重要的,接到需求,分析需求,设计思考,代码是设计出来的,当面对复杂需求,分而治之,将需求拆分子需求,设计每个子需求的实现,先整体后细节,对功能进行划分,划分功能模块,将涉及的对象实体找出来,找出来后,思考各个对象实体之间的关系,先将整体框架搭好,设计时时刻思考可否应用设计原则和设计模式来设计,实现具体某个函数或者功能时,先将实现步骤写下来,即先将框架搭好,再写代码,设计和实现时还需要思考这样实现是否优雅,可读性,可维护性,可复用性,可扩展性是否更好,而不是堆代码,如实现一个函数,这个函数是否可抽象出来以便以后复用,当你实现一个功能后,可以自己评估下这段实现是否优雅,是否看起来不那么变扭,如果自己都觉得怪怪的,那极有可能是需要优化的。
抽象思维和整体全局思维
刚开始在面对一个复杂需求时,可能你对整体还不够了解,整体怎么实现还比较模糊,这就需要先了解依赖的周边模块已经具备了哪些功能,了解系统已经具备了哪些功能,看可否被我们复用,另外还是比较模糊时,需要具备抽象思维以及整体思维来思考设计,意思就是说某个功能我当前不知道怎么设计实现时,先以抽象思维和整体框架意识(全局意识)抽象出整体框架,具体实现我先不管,至少设计出来的整体结构或者框架是合理的,后面再针对每个子模块设计。
持续迭代和重构
随着我们对业务了解的越多,又会有新的心得诞生,此时最开始的设计可能会存在优化点,此时我们就可以持续迭代和重构,好的架构设计是持续迭代和重构出来的,在这个过程中,要有写出好的代码的意识,意识上要重视,同时多思考,多分析,多改进,保持刻意练习好的设计。
借助AI工具优化
当你想给一个函数命名却想不出好的名字时,可以让chatgpt帮你命名,写完代码后,代码的风格检查以及性能检查也可以让gpt或者bito帮你检查,从而优化代码和写注释。
代码review审查
自己写完后,发起代码review,让同时帮忙review代码,多个人从不同角度审查代码,提出修改意见,相当于集思广益了
借助gpt后,优化后的表达如下:
精心设计胜于匆忙编写
编码是思考的实际体现,手写代码并非至关重要。当你面对复杂需求时,首要任务是分析需求,深思熟虑,然后再进行代码的设计。在应对复杂需求时,可采用分步骤的策略,将大任务分解成小子需求,并针对每个子需求进行设计。你需要先关注整体框架,然后逐渐展开细节。在功能划分时,要将其拆解成模块,找出涉及的对象实体,并思考它们之间的关联。在设计过程中,要时刻思考是否能够运用设计原则和模式,以达到更高的优雅性。
在实现具体函数或功能之前,可以先规划实现步骤,建立合理的框架,再逐步填充代码。此外,你需要考虑优雅性、可读性、可维护性、可复用性以及可扩展性等方面,而非简单地堆砌代码。例如,实现一个函数时,需思考它是否能够抽象为可供将来复用的组件。当你完成一个功能后,要进行自我评估,检查实现是否优雅,是否流畅,若有异样之处,那可能需要进行优化。
抽象思维与全局意识
在面对复杂需求时,初期可能对整体情况不够明确,如何实现整体可能仍模糊。此时,你需要先了解相关的周边模块功能,也要探索系统已有功能是否可复用。若整体还显模糊,抽象思维和全局意识便成为关键。以抽象思维和整体框架为基础,先设计出一个合理的整体结构,而不需过多涉及细节。随后,可以逐一考虑每个子模块的设计,逐步完善细节。
持续迭代与重构
随着对业务的深入了解,你会不断积累新的见解,此时初期设计可能出现优化的空间。这是持续迭代和重构的契机。优秀的架构设计是经过反复迭代和重构得出的。在这一过程中,你要时刻保持高标准,注重代码质量,持续思考、分析、改进,努力实现良好的设计。
借助AI工具进行优化
当你遇到命名困难时,可寻求ChatGPT的帮助进行函数命名。代码风格检查和性能检查也可以交由GPT或其他工具,以优化代码并进行注释。
代码审查与评估
在你完成代码后,进行代码审查并邀请他人参与。多人从不同角度审查代码,提出修改建议,有助于汇聚智慧。这有助于进一步优化代码设计和质量。