铃铃,一位刚毕业的大学生
现在在某大司做技术运营
虽然每天都和技术哥哥们聊技术
但总觉得自己技术底蕴还差很多
于是
↓
她拿起了一线码农的挚爱 ---《重构》
但读着,读着
她发现重构这个词被用在了很多领域
像产业重构、场景重构...
难免会引起对基础概念的混淆
于是
↓
她向身边的技术哥哥们逐一请教
重构和重写的区别是什么?
热情的技术哥哥们当然不令赐教
于是
有了下面的答案
魔方版
把一个魔方通过各种旋转步骤拼好叫重构
把魔方拆成一块一块再拼好叫重写
整容版
重构有点象化妆
重写有点象整容
开源版
看懂了源实现的改进叫重构
没看懂就硬写叫重写
Coding版
开发新版本的时候
换人了就重写
没有换人就重构
生活用品版
重构:新三年,旧三年,缝缝补补又三年
重写:买新衣服
男朋友版
重构:修理下现在的男朋友
重写:新找一个
房地产版
重构 = 旧址改造
重写 = 棚改户
认真版
重构(refactor)与重写(restructure, or, rebuild)因为有很相似的关键点——将代码重新组织,所以很难让人理解两者的重要区别究竟在哪。翻开《重构》这本书时,里面讲到bad smells并生动地通过具体示例展示如何改善代码质量。这本书被誉为与《设计模式》齐名,所以多少能折射出其重要性并让人想到与《设计模式》多少有些关系(重构的本质是改变设计,所以与设计模式一定是有关联的)。
《重构》在第四章的第一句话明确地指出了关键点:If you want to refactor, the essential precondition is having solidtests。再直接一点,如果一个“重构”行为发生时,并没有现成的单元测试做保障,那其实是重写的行为。之所以强调“现成的单元测试”,因为重构时是希望接口行为不发生变化的,而没有单元测试是保障不了这一点的。
↓
听了技术哥哥们
用各种方式解释了重构和重写的区别
如果你还意犹未尽
希望能和技术大牛们近距离接触
这里有一个不错的机会
杭州•云栖大会 开发者生态峰会
即将在9月22日,杭州云栖小镇举办
届时将有
↓
阿里巴巴集团CTO 张建锋(行癫)
阿里巴巴中间件负责人 林昊(毕玄)
阿里巴巴高级研究员 蔡景现(多隆)
阿里巴巴高级研究员 刘国华(索尼)
Oracle中国首席工程师 杨晓峰
《码出高效》作者 杨冠宝
视障工程师 蔡勇斌
Apache Dubbo 布道师 吕仁琦
阿里巴巴计算平台资深技术专家 王峰
Apache RocketMQ创始人 & Linux OpenMessaging 标准创始人 冯嘉
Pouch Container 开源负责人 孙宏亮
阿里巴巴IoT资深技术专家 于新林
想参加,还没门票?
转发本文
并在公众号后台发送“开发者生态峰会”
赢取限量门票(共5张)