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

推荐订阅源

T
Tenable Blog
H
Heimdal Security Blog
K
Kaspersky official blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
S
Schneier on Security
G
GRAHAM CLULEY
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
CERT Recently Published Vulnerability Notes
Google DeepMind News
Google DeepMind News
罗磊的独立博客
Stack Overflow Blog
Stack Overflow Blog
阮一峰的网络日志
阮一峰的网络日志
Simon Willison's Weblog
Simon Willison's Weblog
C
Cisco Blogs
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
Security Archives - TechRepublic
Security Archives - TechRepublic
www.infosecurity-magazine.com
www.infosecurity-magazine.com
博客园 - 司徒正美
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
V
Visual Studio Blog
博客园 - Franky
Engineering at Meta
Engineering at Meta
WordPress大学
WordPress大学
Jina AI
Jina AI
P
Proofpoint News Feed
P
Proofpoint News Feed
有赞技术团队
有赞技术团队
L
LINUX DO - 最新话题
宝玉的分享
宝玉的分享
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 聂微东
T
The Blog of Author Tim Ferriss
Spread Privacy
Spread Privacy
Application and Cybersecurity Blog
Application and Cybersecurity Blog
IT之家
IT之家
S
Security Affairs
博客园 - 叶小钗
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
小众软件
小众软件
N
News | PayPal Newsroom
Cloudbric
Cloudbric
AWS News Blog
AWS News Blog
W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
NISL@THU
NISL@THU

博客园 - 白板

招聘.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之后的产物。

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

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