首页 > 编程语言 >普通程序员和厉害程序员的差距!

普通程序员和厉害程序员的差距!

时间:2024-03-23 11:23:42浏览次数:25  
标签:重构 功能 厉害 程序员 发布 差距 方法 代码

大家好,我是程序员陶朱公

前言

今天跟大家聊一下关于代码重构的话题。

话说,很多程序员对自己写的代码平时很随心所欲(各种魔法变量,一个方法几十上百行代码,还有各种让人崩溃的变量或方法命名)。

当有一天让他维护他人的代码,他就会抓狂,很容易激发他体内重构的瘾。(大多数程序员审阅完别人代码后,先会忍不住吐槽一番,然后会忍不住想重构一把, )

在我看来,重构本身是一件值得肯定的事,但有个前提,一定不能影响原先业务功能!

不能因为重构了之后,原来好好的功能反而出问题了,甚至还影响了其他功能,那你这不是重构,是制造问题者。

这里我分享三个关于重构的小技巧,希望日后小伙伴能谨慎的对待“重构”这件事,避免因为重构导致线上事故发生。

重构三技巧

、结构化你的代码

大家看下下面截图assembleOffer这个方法,一个方法内部有很多段代码,比如1.核心商品信息代码片段,2.产品属性信息片段等等。

这样的方法,因为内部需要执行很多件事情,统一完成后,这个大方法才算真正完成。

那么现在问题来了,几十、上百行代码都集中在一个大方法内部,这样的方法显得太过混乱,最终导致”爆炸“的情况发生,以后维护成本也会成倍增加。

 

那如果你能用结构化思维梳理一下你的代码,然后重新组织如下:

将一个大方法内部的代码拆分成多个有明确意义的小方法,然后将它们组装在一起,这样的方法就会清晰很多,以后维护起来也会很方便,甚至有一定的复用性。

、单测

重构完后,一定一定要记得单测。可千万别过分自信,觉得说自己没修改多少多少代码,然后就强制发布上线。

这种因为轻视或过分自信,在不自测的情况下,强制上线的生产事故,这两年还少吗。

所以经过充分的单测,才能保障你写的代码质量稳健。

最后,如果有条件,我建议你用账号登陆你的应用,去使用一下你重构后的功能,看它是否表现正常,就当全链路验证了。

关于发布,这里提醒一下:如果你此次改动内容比较多,比如新增了数据库表的字段、新增了配置中心新的选项等,建议大家提前准备一份发布计划,大致内容如下:

发布前,每执行完一项,就标注一下Done。这样一路下去,直到最后一项任务的完成。

这样能帮助你因为发布的内容过多,避免丢三落四的情况,最终导致发布失败,需要二次发布。

最后成功发布后,一定记得仔细按照刚我跟大家说的,验证一下你发布的功能。当然也要留意一下其他功能特别是主流功能的日志,观察是否正常打印,千万别因你的发布影响到了其他功能。

、对修改关闭,对新增开放

大家如果在重构的时候,面对被修改的代码,其多个地方引用,这个时候一定要小心了,很有可能你改了某一处,但影响了其他功能代码。

这里我有一个建议:不要去修改这种被多个地方引用的代码,你可以新增一个方法:比如重载一个新方法,供你这次的功能调用。然后你在这段新方法内部去重构,这样你的更改,一定不会影响其他功能。

 

 


写到最后

感谢您一路陪伴着我,探索编程的奇妙世界。如果您对程序员职场进阶窍门、编程技巧和计算机原理等充满兴趣,那么不要错过未来我为大家奉上的精彩内容!点击关注,让您的程序员之旅更加丰富多彩,我们一同成长,一同前行!

标签:重构,功能,厉害,程序员,发布,差距,方法,代码
From: https://www.cnblogs.com/StarbucksBoy/p/18090882

相关文章

  • 【C++从0到1-黑马程序员】类和对象(一)
     C++从0到1-黑马程序员 课程学习笔记课程链接: 16类和对象-封装-属性和行为作为整体_哔哩哔哩_bilibiliC++面向对象三大特性封装继承多态C++认为万事万物皆为对象,对象有其属性和行为1.封装1.1.封装的意义(1)将属性和行为作为一个整体,表现生活中的事物类中的属......
  • 今天开始程序员不用再发愁写commit message了,全部由CodeGeeX自动完成!
    每位程序员在开发的过程中,Git提交都是必不可少的一步。CodeGeeX支持通过gitdiff信息,自动生成commitmessage,并成功提交。“这个功能真的是用了,就再也停不下来了!”很多程序员都说:“这个功能真的懂我们!”它的使用方法非常简单,首先在你的VSCode插件市场中,搜索“CodeGeeX”智能编程......
  • 程序员群体对《三国演义》与《三国志》的独特情愫——从技术到人文的双重解读
            在现代科技领域中,程序员以其独特的职业特质和思维方式,在古典文学与史学著作中找到了与自身专业理念相融合的交汇点,其中,《三国演义》与《三国志》两部作品尤为受到程序员群体的青睐。本文将深入剖析程序员对这两部作品的热爱,以及这种喜好如何反映其职业特点与人......
  • 传奇私服中法师冰咆哮和龙卷风技能哪个厉害?
    在传奇中冰咆哮这个技能应该是所有玩过法师的玩家都非常清楚的一个技能了,这个技能由于高魔法攻击和炫酷的魔法攻击特性给我们留下深刻的印象。在新版本的传奇私服中除了原来的冰咆哮技能做了一些提升和改变,还带来了一个全新的技能龙卷风,这个听上去就非常强大的技能作为法师的一......
  • 全球首位AI程序员诞生,将会对程序员的影响有多大?
    首先,我们需要明确的是,AI程序员和传统的程序员在角色和职责上有所区别。AI程序员主要负责设计、开发和维护AI系统和算法,而传统的程序员则更侧重于构建软件应用程序。虽然AI技术在编程领域的应用越来越广泛,但它并不能完全替代传统程序员的角色。AI程序员在某些方面确实具备优......
  • 程序员常用的工具软件推荐
    前言现如今,技术发展十分迅猛,开发者只有通过不断的学习才能跟得上时代的步伐。而为了便于学习和工作(减少996),涌现了很多优秀的开发工具用以帮助开发者提高工作效率。现在我把我工作多年来收集实用的开发利器分享出来,希望能够给同学们参考借鉴(以下排名不分先后)。假如各位同学有更......
  • 年过30转行鸿蒙,职场危机也是转机,程序员的春天又来了!
    前言各位码农朋友们,听我说啊,我这年过30的老程序员,最近可是迎来了人生的新篇章!你们猜怎么着?我准备转行鸿蒙了!没错,就是那个风头正劲的鸿蒙系统!现在啊,它可是IT圈里的新宠儿,不仅功能强大,而且未来潜力无限。我这老程序员也看准了这个机会,果断决定投身鸿蒙的大潮中。说实话,刚......
  • 程序员必须了解的 10个免费 Devops 工具
    哈喽大家好,我是咸鱼。近年来,DevOps已经成为一门将软件开发(Dev)与IT运维(Ops)相融合的重要学科,目的是为了缩短软件的开发生命周期并提供高质量软件的持续交付。这篇文章整理了十种基本的免费开源的DevOps工具,这些工具已经在实践中得到了证明,凭借有效性和能够简化DevOp......
  • 逆向思维 - 懂逆向思维的人有多厉害
     案例一在人潮拥挤的火车上,你端着一碗泡面说:“麻烦让一让”,会被所有人当成耳风。但是你说:“开水小心烫”,大家都会自觉地为你让出一条道!所以别人不帮你,是因为你没有触及到他人的利益,想办法把你的问题和他人的利益结合起来,才能引起对方的重视。   案例二一位大爷到菜......
  • 厉害啊!分离人声,全靠这4款2024最新款音频分离工具
    在音频处理中,人声分离是一个常见的需求。简单来说,人声分离就是将混合音频中的人声和背景音乐(或其他环境声音)分离的过程。随着科技的发展,我们已经有多种方法和技术可以实现这一目标。在本文中,我们将介绍四种可以实现人声分离的工具和方法。一、金舟音频大师(1)工具介绍:金舟音......