又要写试读笔记,头疼,因为要写出好文章总是要花很多精力和心血的。这次试读的是《大话重构》,一讲到重构,感慨良多!
1.你的系统需要重构
随着业务的扩展,数据量的提升,原有的系统已经无法满足贪婪的业务需要了,因此,重构往往成了偶然中的必然事件。我自己也曾亲身经历过这么一段。因为重构,我心潮澎湃、没日没夜的投入工作,用那种“把项目当自己儿子养的感觉”来形容再恰当不过了!重构过程是曲折的,有时因为完成了一个功能难点而兴奋不已,有时会因为重构的结构不好解决现有的难题而沮丧,有时会因为在重构过程中业务的变迁而不知所措……最后重构项目上线,解了Boss和大Boss的燃眉之急,却把自己置于水深火热的情况之中,难免失落和沮丧。
2.重构的工作实践经历
回想去年的这个时候,我正在全神贯注地投入在项目重构之中。原来的项目工程是在业务和Boss们每天都紧紧催促的情况下由一位经验并不丰富的工程师在火急火燎的情况下完成的。这种情况下的代码,难免变得没有结构和不合理设计。使得代码变得结构繁琐,并影响理解,后期加入的工程师更是难以招架。原本简单的业务逻辑,却异常让人感觉晦涩难懂。
就在这样的情况之下,我们赶上要加入一个全新的业务模块。部门会议一致决定:此时不重构,更待何时?!
目标依然确定,怎样付诸行动,怎么制定计划,如何开始成了接下来的问题。
没错,就跟你想的一样!我们采用了“大布局”!一群开发人员开始紧锣密鼓的整理原系统的需求、梳理业务流程和逻辑,形成功能说明书;然后布局新项目的结构,设计代码分层,接口、服务一个个都设计好;接着开始分模块、功能开始编码,联调,测试。一开始是一个月一个周期,项目后来是一周一个周期,最后是一天一个测试版本(貌似在这一步我们没有犯太多的错误,但这也是Bug驱使,不至于使我们错的更远)。可惜的是在最后阶段,Boss又一再要求项目缩减工期,Boss们只关注视觉效果和功能实现,性能是什么?Boss不关注的——这就是赤果果的工作商业(这再一次让我感觉找一个懂一点技术的Boss有多重要)。
3.一点总结
尽管在我们的辛勤努力下,项目最终按期上线了。但是始终耿耿于怀,让我感觉最深刻部分与书中所讲不谋而合(这是亲身实践出来的教训啊,如果早点看到这类重构相关的书籍,或许就不会走如此多弯路了!):
3.1、大布局你真的伤不起!——这很可能让你走很多很多的冤枉路!
3.2、重构时,我们应该崇尚小设计而不是大布局!——这样可以让你的项目变得轻巧,如果出现错误,很容易回归。
3.3、小步快跑是一种逐步进化式的程序优化过程,它是重构思想的重要核心!——切忌急功近利的做法,但一切要从实际出发!
3.4、在职场,一定要替你的Boss考虑,首先保证系统能平稳运行,其次再来求优化和发展。
记:最近正有意阅读此类书籍,非常感谢ITeye试读活动推荐了这本书!阅读本书有助于对重构的理解,尤其适合Java开发人员。
@希望大家多读书、读好书!转载请注明
相关推荐
试读-Docker 容器与容器云(第2版)-P469-浙大-人邮-2016.10
在Android应用开发的世界里,开发者们常常需要面对各种挑战,从构建吸引人的用户界面到实现复杂的网络通信。《Android应用开发全程实录》一书旨在为开发者提供全面的知识指导,帮助他们掌握Android开发的核心技能。...
文档中的内容涉及的是学生在遇到学业困难,如挂科过多,需要进行留级或试读时,需要提交的申请书样本。留级和试读是高等教育中对学生学业表现不佳的一种处理方式,通常根据学校的学籍管理制度执行。以下是相关知识点...
竟成408-数据结构-部分试读,考研计算机408,真题,模拟题,考研408必备用书。
首先,这本书是针对网站全面监控的英文版本,对于中文版定价较高的情况,读者可以获取试读版来一窥书籍内容。从内容描述中可以提取出以下知识点: 1. 监控与管理网站的重要性:本书《CompleteWebMonitoring》的副...
竟成408辅导书-数据结构-部分试读.exe
- **持续重构**:随着项目的进展,不断地对代码进行重构以改善其结构和性能,这对于保持代码的可维护性至关重要。 ### 结语 通过对“软件小设计试读样章”的深入探讨,我们不仅学习了软件设计的经典原则,还掌握了...
王涛新书《你必须知道的.NET(2.0版)》样章试读,非常不错,推荐购买正版,现在此书还没用上架,样章试读包含:•第3章 OO之美 •1.2 什么是继承 •6.2 对象创建始末 •14.1 .NET十年 •14.3 动态变革:dynamic
本试读资料可能包含了Struts2的基础概念、核心组件以及实际应用的初步介绍。 在`ch01.pdf`中,可能会详细讲解Struts2的基础知识,包括它的历史背景、为什么选择Struts2,以及Struts2框架相较于其他MVC框架的优势。...
试读样章可能包含了书中的关键章节,如第一章、第五章和附录B,分别以02.pdf、06.pdf和附录B .pdf的形式提供。 在Windows驱动开发领域,开发者需要掌握以下几个重要的知识点: 1. **驱动程序概述**:Windows驱动...
留级跟班试读申请书参考.doc
根据提供的文件内容,本章节主要涵盖了Java编程规范中关于命名约定的详细规定,这是在进行Java开发时确保代码规范性和可维护性的重要部分。以下是对文件中提及知识点的详细解读: 1. 命名规范:在编写Java代码时,...
《实战Java高并发程序设计》是一本专注于Java并发编程实践的书籍,试读版提供了前两章的内容,为读者提供了一个初步了解并发编程基础的窗口。在Java领域,并发编程是构建高性能、高效率系统的关键技术,对于软件开发...
CAN总线嵌入式开发--从入门到实践试读,CAN总线,CAN通信,经典书籍
《寒江独钓--Windows内核安全编程》是一本深入探讨Windows操作系统内核安全的专著,其试读样章提供了宝贵的预览内容,让读者得以窥探这门技术的精髓。Windows内核是操作系统的核心部分,负责管理硬件资源、调度进程...
### USB应用开发实例详解——上位机程序开发 #### 知识点概览 - **章节概述**:《USB应用开发实例详解》一书中的第10章专注于上位机程序开发,涵盖在Visual C++、Visual C# 和 LabVIEW 环境下如何与USB设备进行交互...