惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

腾讯CDC
博客园 - Franky
MyScale Blog
MyScale Blog
L
LangChain Blog
Martin Fowler
Martin Fowler
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 司徒正美
量子位
A
About on SuperTechFans
C
Check Point Blog
大猫的无限游戏
大猫的无限游戏
Last Week in AI
Last Week in AI
小众软件
小众软件
Apple Machine Learning Research
Apple Machine Learning Research
I
InfoQ
V
Visual Studio Blog
Vercel News
Vercel News
B
Blog
爱范儿
爱范儿
aimingoo的专栏
aimingoo的专栏
U
Unit 42

博客园 - 白板

招聘.NET SE/SSE/SA -(内部推荐,上市互联网公司) 招 Senior .NET Software Engineer / Architect (ShangHai HP GDCC Regular) Road on EA & IT Governance Seriously I Enjoy Coding 企业应用层面的架构人员---持续关注SpringSide(续) 持续关注SpringSide “官方”辨析---Business Model, Business Object Model, Domain Model, Object Model, Data Model Form Data Validation Framework? ROI of Agile Approach 读 《J2EE Without EJB》 几点WebService集成体会 界面集成 在UI层使用Domain逻辑的一些探讨 Involve me and I'll understand Look at the logic host by OO or SP from Maintaince View Tools Support for high level architecture HP's Scalable world-wide .net-connected service framework 大公司 or 小公司? Thoughtworks - Orchestration Patterns
重读《重构》之杂感
白板 · 2006-01-25 · via 博客园 - 白板

两年后再次翻阅《重构》,感觉很多手法已经很自然的融入到平时的开发之中。而平时开发中有时犹豫不决的地方,在《重构》里正好有最佳解决方案,看来还是温书太少。

有一点,不知道别人会否和我一样想,世事无绝对,比如书里提到消灭switch, 我曾经对一段简单的代码采用remove switch with state and polymorphism, 但是实在感觉那么简单的一个class没必要又抽象出N个子类和方法的多态实现,如此去处理,感觉反而不好维护不好理解。我担心会不会有时候别人指着书对着我的代码说“嘿,按重构手法,这里应该这样改...”,要知道系统总是会有很多trade-off,比如简单编码,效率,代码所有权等等,未必是按照重构手法就是最优的解决方案,书里面也提到了,先重构了碰到效率等问题的时候以后再调整,要知道有可能那段代码已经是trade-off之后的产物。

顺便提一点当前手上碰到的一个很难进行重构的场景:项目已经进入维护阶段,客户的需求是分批来,但是后来的需求可能很紧急需要比先到的需求提前发布,所以项目经理采用了版本控制“基线+分支”的方式,我在某个分支上如果做了重构,每次将分支合并到基线上去的时候简直是莫大的痛苦,而且很容易出错,而其它正在开发的分支以后再合并的时候又要痛苦一次。有时候会放弃重构,感觉就象是看着代码在慢性死亡。

还有个疑问:喜欢重构的人的家里面是一番什么样子呢?一个喜欢代码干净利落的人,会不会忍受自己家里面东西乱摆乱放象个狗窝样呢?至少我不太喜欢那个样子。