写点什么

重构之十六字心法(一)

  • 2020-01-16
  • 本文字数:525 字

    阅读完需:约 2 分钟

重构之十六字心法(一)

这篇文章是我写过的所有文章里最难产的一篇,前前后后斟酌酝酿了好几个月。因为重构对于我来讲真的太重要也太深刻了,包含的内容和想说的也太多了。如果说这几年自己觉得在哪些方面的收获最大的话,非重构莫属了。

重构的威力

软件开发的难点在于不确定性,邱大师写过一篇《软件开发为什么很难》就提到


软件的复杂性来自于大量的不确定性,而这个不确定事实上是无法避免的。

需求在变,语言在变,框架在变,工具在变,框架在变,架构在变,趋势在变,甚至连组织结构都在不断的变化。


随着变化的不断产生,软件变得越来越复杂。就像那篇经典的《架构腐化之谜》中提到的一样,我们的软件也会像一个生命体,经历从新生到衰老腐化的过程。


而重构就像是一次手术,通过优化内部结构,减慢腐化衰老,让软件“青春永驻”,可见重构的威力。


重构教会了我如何通过高效安全地改善内部设计以使之适应外部的不确定性和频繁变化。

重构威力无边,就像是武侠小说中的一件插在石头上的上古神器,但同样也不是一般人可以轻松驾驭的。


如果运用不当,造成的损害也会同样巨大。



如何将重构这件神器运用自如,发挥其最大的威力,也是我一直在探寻的,即重构的手法和心法。


本文转载自健荐公众号。


原文链接:https://mp.weixin.qq.com/s/SyKu1m7FVXzB5fInmj44wQ


2020-01-16 11:51860

评论

发布
暂无评论
发现更多内容

99%的人都能看懂的分布式系统「补偿」机制

华为云开发者联盟

分布式 高可用 系统

【MySQL】面试官:如何添加新数据库到MySQL主从复制环境?

冰河

MySQL 高可用 主从复制

阿里架构师不慎泄露内部互联网架构面试题库。你确定不看一下吗?

小Q

Java 学习 架构 面试 阿里

大作业二:总结

zcj

线上医疗未来的发展

anyRTC开发者

ios 音视频 WebRTC RTC 安卓

网易伏羲问鼎全球AI文创大赛:用户可零门槛生产音视频动画

核桃Eason

人工智能 AI 动画 网易

双亲委派模型与 Flink 的类加载策略

Apache Flink

flink

架构师训练营第一期-第二周课后-作业二

极客大学架构师训练营

第13周作业

动图演示:手撸堆栈的两种实现方法!

王磊

Java 数据结构 算法

HashMap源码解析

彭阿三

hashmap HashMap底层原理

免费CA证书安装配置与背后原理浅析

陈德伟

LeetCode题解:83. 删除排序链表中的重复元素,递归,JavaScript,详细注释

Lee Chen

大前端 LeetCode

架构师训练营第一期-第二周课后-作业一

极客大学架构师训练营

TensorFlow 篇 | TensorFlow 2.x 基于 Keras 的模型构建

Alex

tensorflow keras model

聊聊布隆过滤器

大头星

10个常见的软件架构模式

GuoYaxiang

架构模式 软件架构 架构设计

学习Java的三个阶段(学习目标+知识点),一起努力吧!

Java架构师迁哥

极客大学 - 架构师训练营 第二周

9527

面试官,ThreadLocal 你要这么问,我就挂了!

小傅哥

Java 面试 小傅哥 ThreadLocal 开放寻址

不一样的面向对象(一)

书旅

php 面向对象

Java8 之 Lambda 表达式

hepingfly

Lambda java8 新特性

第二周 框架设计学习总结

蓝黑

极客大学架构师训练营

C++的匿名函数(lambda表达式)

良知犹存

c++ 编程开发

LeetCode题解:83. 删除排序链表中的重复元素,迭代,JavaScript,详细注释

Lee Chen

大前端 LeetCode

从 LRU Cache 带你看面试的本质

小齐本齐

算法

软件开发的 5 条核心原则,让工作事半功倍

沉默王二

程序员 软件开发

滴滴开源AgileTC:敏捷测试用例管理平台

滴滴技术

开源 滴滴技术 滴滴开源

多端消息推送的设计思考

TaurusCode

Java spring 设计模式 消息推送

高难度对话读书笔记—认知篇

wo是一棵草

架构师 0 期 | 大数据相关技术

刁架构

架构师训练

重构之十六字心法(一)_语言 & 开发_王健_InfoQ精选文章