前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布

重构

作者头像
只喝牛奶的杀手
发布2023-09-18 14:54:33
2280
发布2023-09-18 14:54:33
举报
文章被收录于专栏:只喝牛奶的杀手

说到重构,我们再来了解一下定义:重构是一种对软件内部结构的改善,目的是在不改变软件的可见行为的情况下,利用设计思想、设计原则、设计模式编程规范等理论来优化代码。使其更易理解 (可读性),修改成本更低(可维护性),提升代码质量。

重构目的:1.重构是时刻保证代码质量的一个极其有效的手段,防止代码腐化。当代码腐化到一定程度,量变引起质变,项目的维护成本已经高过重新开发一套新代码的成本。2.优秀的架构和代码是迭代出来的。

时机:持续的重构(做好重构计划,小步快跑,要保证代码仓库中的代码一直处于可运行、逻辑正确的状态.要做好与新功能,老代码的兼容工作。利用静态代码扫描,codeReview做好日常持续重构)。

在“怎么改”这件事儿上,我当时的确做了不少功课,但偏偏“要不要改”这个关键问题脱离了业务,所以成了单方面的“技术自嗨”。这种改进虽说从技术上看十分必要,但业务上优先级却没那么高。

一个需求总是要解决一个业务问题的,在遗留系统中应用假设驱动开发。

我们相信 < 某个功能 >将 < 产生某种结果 >当 < 我们看到某种可度量的信号 > 时,我们就有信心沿着这个方向继续下去。

我们相信,为 < 库存模块添加单元测试 >将 < 提升库存模块的内建质量 >当 < 我们看到库存模块新需求的 bug 数量连续三个月降低 > 时,我们就有信心沿着这个方向继续下去。

明确目标和度量指标

  1. 业务敏捷:系统快速响应市场变化和新兴机会的能力,比如一个需求从提出到上线的时间;
  2. 运营效率:系统提升价值流效率的能力,比如一个业务从开始办理到办理完成的时间;
  3. 客户洞见:系统理解和解释客户数据、行为和反馈的能力,比如前面提到的,客户对于商品视频和直播等特性的敏感程度,我们应该如何去解释;
  4. 系统韧性与弹性:云时代对于系统的基本要求。 要记得把数据可视化出来,可以打印出来贴在墙上,也可以用一个大显示器立在团队旁边。它们一方面可以激励团队成员,另一方面也是向业务方展示工作的成果,让他们相信,一个看上去很技术向的改进任务,也能给业务带来巨大的价值。

增量演进是指,以增量的方式,不断向明确的目标前进的过程。

重构手法总结为“十六字心法”,非常形象、贴切:旧的不变,新的创建。一步切换,旧的再见。

“旧的不变”是指先不动旧方法;“新的创建”是指创建一个跟原来方法功能相同的新方法,你可以通过先复制再重构的方式,来得到这个新方法,也就是整个系统的一个增量;“一步切换”是指,在充分测试之后,新的方法可以完全替代旧方法了,就将开关切换到新方法上;“旧的再见”则意味着删除旧方法以及相应的开关,一个演进到此也就结束了

我还相信,但是架构调整这么大的动作,怎么可能增量演进呢?”这其实就是我们一直想要强调的,越是大的改进,越要频繁上线去验证,不要等到最后来个“大惊喜”。

当“重”的时候能解决我们有些一知半解的问题,空杯心态对待技术。你真的懂了吗?你真的真的知道吗?你知道的越多,你会发现自己不知道的就会更多。最近看一门课关于结构化表达和思考的,大多数搞IT的可能觉得自己的结构化表达和思考都到位啦,包括我在内。其实不然,真的还有很大差距。最怕自认为自己都懂了,其实只是懂了个皮毛。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-07-31 22:19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 只喝牛奶的杀手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云 BI
腾讯云 BI(Business Intelligence,BI)提供从数据源接入、数据建模到数据可视化分析全流程的BI能力,帮助经营者快速获取决策数据依据。系统采用敏捷自助式设计,使用者仅需通过简单拖拽即可完成原本复杂的报表开发过程,并支持报表的分享、推送等企业协作场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档