老菜鸟为什么喜欢代码重构

23,289 阅读7分钟

“花有重开日,人无再少年”,诸位,如果再给你们一次机会还会选择做个码农吗?

“今年花胜去年红,可惜明年花更好”,诸位,对码农生涯还有多少期盼?

“君看今日树头花,不是去年枝上朵”,诸位,可曾想过:如果在几年前便拥有现在的技术、薪资,面对生活、谈女朋友会不会是另外一番滋味呢...

好了!扯多了,还是谈一谈正题:老菜鸟为什么喜欢代码重构!

屎山上挖呀挖

最近几个月流行的"花园种花"跟大家分享一下:

222213.jpg

小朋友们准备开始
在小小的花园里面   ~ 挖呀挖呀挖 ~ 种小小的种子   ~ 开小小的花
在大大的花园里面   ~ 挖呀挖呀挖 ~ 种大大的种子   ~ 开大大的花
在特别大的花园里面 ~ 挖呀挖呀挖 ~ 种特别大的种子 ~ 开特别大的花
在什么样的花园里面 ~ 挖呀挖呀挖 ~ 种什么样的种子 ~ 开什么样的花
在特别大的花园里面 ~ 挖呀挖呀挖 ~ 种特别大的种子 ~ 开特别大的花

每天对着自己项目中的代码,真的想改编一下:

在小小的屎山里面   ~ 挖呀挖呀挖 ~ 
在大大的屎山里面   ~ 挖呀挖呀挖 ~
在特别大的屎山里面 ~ 挖呀挖呀挖 ~
在特别大的屎山里面 ~ 挖呀挖呀挖 ~

没被铲走的屎山就是好屎山

诸位,想不想一睹屎山真容?----去你自己项目上找吧,哈哈; 重构并不一定是因为屎山,屎山可能不一定需要重构

  1. 于公司、项目而言,能正常运行、满足客户需要的代码就是OK的,甭管它屎山还是花园,能帮公司赚到钱的就是王道也!

  2. 为什么会有屎山的存在,源于项目早期的设计、架构不合理、中后期编码不规范、或者说压根就没有架构、没有规范;

  3. 很多大厂或一些比较讲究的公司,有自己的架构师、质量团队,那他们产出的项目质量就会非常高,就算是重构也可能是跨代、技术层面的升级,绝非屎山引起的重构!

  4. 爷爷都是从孙子过来的,谁还没个小菜成长记呢,谁小时候(初级阶段)还没(写过一些垃圾代码)在裤子上拉过屎呢;能接受别人的喷说明你心智成熟了,能发现项目中的糟糕代码说明你技术成长了;

  5. 最重要的一点,用发展的眼光看问题,以当下的技术、潮流去审视多年前的项目,还是要充满敬意,而不只是吐槽!

优化

你需要可能是优化

重构并不一定是因为屎山,可能是技术自身的转换升级; 屎山可能不一定要重构,或许只需要做代码的优化; 倘若项目的技术栈还比较年轻,那我们面对的可能是优化,而不是重构;

那糟糕的代码源自何处呢?
  • 曾经的你? 曾经梦想仗剑走天涯,如今大肚秃顶撸代码;
  • 已经离职的同事?人走茶凉,雁过拔毛;

话说谁还不是从小菜成长起来的呢,当你发现项目上诸多不合理时,说明你的技术已经成长、提高了不少;

  • 可能你接手了一个旧的项目,看到的代码是公司几年前的产品设计
  • 可能你自己今年前写的代码,因为项目赚钱了,又要升级
  • 可能你接手了(不太讲究的)同事的代码
  • 可能就是因为赶进度,只要功能实现

如果仅仅是代码不够友好,我们需要的或许只是长期优化了...

网友谈重构

当你看到眼前的屎山会作何感想? TMD,怎么会会会有如此的代码呢,某某某真**,ε=(´ο`*)))唉? 正常,如果你没有这样的感慨,下文就不用看了,直接吐槽就行了...

看看网友回复
  • 看心情

  • 别自己找trouble

  • 又不是不能用,你领导怕成本太高吧,新项目可以用新架构

  • 除非你自己愿意花时间去重构,不然哪个老板舍得花这个钱和时间

  • 应该选择成为领导,让底下人996用新技术重构 .... 下面的更绝

  • 小伙子还年轻吧,动不动就重构

  • 代码和你 有一个能跑就行 哈哈,太多了,诸位,你会怎么想,面对糟糕的代码你会重构吗?

cg3.jpg

问题

当你发现问题时说明你用心了;当你吐槽槽糕代码时,说明你技术提升了;当你想爆粗口时说明你对美好生活是充满向往的;

那么,你的项目上可能有哪些问题呢(以前端代码为例)?

  • 技术栈过于古老
  • 架构设计不合理
  • 技术选型、规范不合理
  • 不合理的三目运算符
  • 过多的if嵌套
  • 回调地狱
  • 冗余的方法、函数
  • 全局变量混乱
  • 项目结构混乱
  • 路由管理糟糕
  • 状态数据管理混乱
  • CSS样式样式混乱
  • ..... .... 哪些该重构,哪些该优化?

sikao6.jpg

机会

“祸兮福之所倚,福兮祸之所伏”, 问题的背后往往就是机会;

路人甲: 明明就是一座屎山,又何来机会一说?有扒拉屎山的功夫,搞点新技能,搞点原创不开心吗?答案是肯定的

路人乙: 解决屎 OR 新项目搭建,会选择哪个呢? 我想脑子正常点的人应该会选择重新搭建吧!

个人觉得对于经验比较丰富的开发当然选容易的,对于经验不丰富的开发而言当然也选容易的!对于有一定基础 && 想要快速提升综合能力者,解决屎山或许别有一番滋味,未尝不是一件闻起来臭吃起来香的(臭豆腐)幸事;

  • 理解老旧项目的初始架构、设计有助于了解、理解技术发展的脉络
  • 有很多老旧项目的设计、架构是非常优秀的,值得去深入学习背后的思想
  • 重构的整个过程也是不断审视自己不足的过程,查漏补缺,提升最短的那块板
  • 一切技术服务于业务,重构的过程也是深入理解业务的过程
  • 有机会重构是一种幸福,面对诸多压力本身就是是一种心智的磨练,不经历风云怎能见彩虹; 大成功者必是大磨难者!

挑战

问题的背后是机会, 机会的身边往往伴随着诸多挑战;面对重构不去争取,那老油条和小菜鸟有有什么区别(什么价值),不要等到退出行业了,再说: “曾经有一次重构的机会摆在我面前,我没有珍惜,等到了失去的时候才后悔莫及,尘世间最痛苦的事莫过于此。如果老板可以再给我一个再来一次的机会的话,我会说:重构!重构! 重构!。如果一定要加一个期限的话,我希望是公司设定的时间之前!”

QQ截图20230628143530.jpg

  • 时间:领导、公司会不会给予足够的时间深入重构,万一没有如期完成呢?
  • 回报:重构是否能达到预期,是否能带来质变级的体验,万一重构后没成功呢?
  • 能力:自身能力是否能承担得起重构的重任,是否具备一定的抗压能力
  • 博弈:重构也是一种资源的博弈,考虑如何让自己的利益最大化的

重构

  • 重构的机会应该是去争取的,而不是被赋予的

  • 生活中处处有压力,又总是压得人喘不过气,如果连个代码重构都不敢想、不敢搞,那生活中的种种不如意又当如何?正如那句话:“做人如果没有梦想,和咸鱼有什么区别?”

QQ截图20230628143731.jpg

收获

其实,个人感觉收获最大的还是心智的磨练; 其次是技术的提升;

结语

生活已经够累了,跟大家闲扯一下,放松!放松!放松! 最重要的天热了要多喝水,多吃蔬菜和水果,适度的体育活动!欢迎大家说说自己的看法

heshui15.jpg