大家都知道,这是编程的第一法则:如果您的代码以某种莫名方式跑起来了,就不要再碰它了。

系统非常稳定,代码不要随便动:

如果第一个程序员没考虑太多,用了if else。新需求出现时,后面接受的程序员不愿意重新建构,都往后面加if else。

一年又一年,一代又一代,从“粪球”到“屎山”,大概你能做的就是以“屎”盖“屎”,只要代码能跑起来就是大胜利。

其实也不是所有人都不想修正代码,最可怕的是,你只删了一行代码,整个程序就跑不动了,而且原因你可能根本想不到。本以为把它的爸爸妈妈解决掉就行,可它悄悄地和妈妈的哥哥的表舅的三姨夫的女婿的姑妈的女儿有一腿儿~~

当然,谁都有写得一手好工业级代码的追求。

同样的需求同样的逻辑,不同的人实现出来的效果可能完全不一样,那么好的编码习惯应该如何培养呢???

(一)纯粹从写代码上看

单从写代码上看,那么我们需要掌握良好的编码风格:

  • 日志打印。日志打印非常关键,尤其是在生产环境出现线上问题的时候,通常我们只能通过日志去排查问题。因为日志规范打印非常重要。
  • 代码模块化设计。不要一个方法或一个类写太长,这样非常不方便维护和理解,也不方便代码复用。理论上我们的代码是越少越好。我们需要将代码按照功能进行模块化设计,每个模块负责一个小功能。
  • 并发处理。可能出现并发的地方要注意线程安全,否则会出现难以预料的结果,并发问题也非常难以排查。
  • 注释。现代软件开发一般都是团队合作,而不是单兵战斗,所以代码一定要做好注释,尤其是核心功能,要注释清晰。否则可能过一段时间自己都忘记了为什么要这么写。
  • 异常处理&错误码。错误码的指定原则:快速溯源、沟通标准化。

(二)从应用程序设计上看

  • 应用分层。 据业务架构实践,结合业界分层规范与流行技术框架分析,推荐分层结构如图

  • 领域模型设计规约

(三)面向对象设计

(1)掌握几种设计模式

如工厂模式、策略模式等,才能应对复杂的业务逻辑。

(2)SOLID原则

(3)DDD-领域驱动设计

DDD能帮助我们快速有效学习业务领域知识,深入挖掘业务的痛点,并通过技术手段进行落地。

(四)项目流程

  • 在动手写代码前先写好方案设计文档。尽可能的详细,包含业务流程、系统交互、数据表的设计、API的设计等等。方案设计文档写得好,后面编码其实是很快的。
  • 做好功能的拆解和工作量安排
  • 要学会say no!:不合理的需求要学会拒绝,不能只被动的接需求,我们并不是编码机器。切记不要把自己当成一个工具人!

(五)其他优秀实践经验总结

(1)不要重复造轮子。尽可能代码复用,不要重复造轮子,浪费时间,而且基础设施往往需要经过时间的沉淀才成熟。

(2)多阅读优秀的开源项目源码,吸取其优秀的设计经验

(3)做好CodeReview。被别人CR代码,能够聆听其他同事的意见,有助于自己进步。CR别人的代码,能够逼迫自己在代码上精益求精。总之相互交流,共同进步。

分享学习资源推荐
分享Python整套学习资料,需要的小伙伴,大家自取就可以了。白嫖可以,别忘了给我点个关注哈。

网上学习Python的资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。希望这份系统化的技术体系对大家有一个方向参考。文末获取

一、Python所有方向的学习路线
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、Python必备开发工具

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、Python学习视频

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

Python资料、技术、课程、解答、咨询也可以直接点击下面名片,添加官方客服斯琪