在看了<大话重构>的前几章后,我觉得我应该记下一些读书笔记并反思下自己在日常工作中的经验,两者相结合,以后重新看回这些文章,可以更清楚的认识自己,清晰自己对于技术之路一路的演变过程,一个美好而又充满困惑的过程。
重构的两顶帽子,在现实情况中就确实只有这两种,改与不改
1. 不改,设计出一个独立分支,即扩展原有的系统,不修改其原来,不用担心现有系统被改出问题.
2. 改,修改原有的系统,建立出扩展点便于支持新功能的加入,重构原有的设计以适应新的需求
在日常的项目中,经常会遇到这种情况
1. 一个表格新增一列只做显示,只需直接增量修改
2.一个表格新增一列,合并两列,合并后的两列添加了输入框,一些交互控件。这样的需求一拿来,你有两种选择,一是隐藏现有的两列,新加一个合并列,另一个是,合并现有的两列,添加交互控件。
3. 现有三张表格,需要在现有的三张表格上添加三个列。
这时候问题来了,我三张表格逐个添加, 或是建一个父类表格,三张表继承, 或是把三个列圈成一个块,三张表格引入。 这时候的三种决定不是靠抛硬币决定的,要看新增的三个列对于现有的表格有何意义,说白了,就是你对新增需求的理解,看这三个列是属于基础类别还是属于增量类别。
2,3种情况都是需要考虑要不要重构, 如果要重构,项目主管通常都会问你修改后会有什么影响,特别是对现有功能的影响,如果修改需要多少时间,这是否会影响到当前的进度。然后如果改动大,就需要做评估,评审。像<大话重构>的作者,每次重构都是10分钟到1小时,都是很短时间的重构。 如果每次都告诉项目主管都是这么短时间且没有影响,我想他们都会很乐意接受吧。 实际上,对于半路接手的系统,想做一个局部重构,就必须读懂现有的系统,了解他的前世今生,才能保证不踩坑,通常做到这样,都需要比较多的时间,特别是去读懂旧系统相关的需求,还要判断新需求在原设计是否有适应。
是得真的等重构成为习惯的时候,才能如此的洒脱,一见到不合理,立即小步快跑重构一番,如此迭代。
相关推荐
<p>《大话西游之大圣娶亲》(又名《大话西游之仙履奇缘》)是周星驰彩星电影公司1994年制作和出品的一部经典的无厘头搞笑爱情片,改编依据是吴承恩所撰写的神怪小说《西游记》……</p> </div> </body> </html> ...
主要功能:<br><br>1、博创企业信息门户平台—EIP,用户可以灵活的配置菜单,进行第二次开发,自己添加、删除模块,搭建企业的信息化平台。<br><br>2、用户可以直接使用金蝶、用友、新中大、浪潮等ERP系统的数据库...
2009-06-06 10:12 <DIR> 大话西游2 2009-06-06 10:12 <DIR> 大话西游3 2009-06-06 10:13 <DIR> 天青色等烟雨 2009-05-26 10:32 <DIR> 孤独情花 2009-02-13 15:03 <DIR> 富贵吉祥 2009-05-25 19:42 <DIR> 小桥人家 ...
<title>大话XML</title> <author>作者名</author> <publisher>出版社</publisher> </book> ``` 在这个例子中,`<book>`是根元素,包含了三个子元素:`<title>`、`<author>`和`<publisher>`,它们分别代表书名、...
【大话XML1.2】是一篇介绍XML基础和重要性的文章,主要面向程序员和对IT技术感兴趣的读者。XML(可扩展标记语言)是W3C组织定义的标准,已经成为当前软件行业的主流技术,尤其在微软的Office XP、.NET框架和SQL ...
《大话西游》读后感.doc
读完这本书《大话移动通信-丁奇》这本电子书,写一个读后感,题目是《浅谈移动通信的认识》。这本书详细讲解了移动通信的演进历史......
color u-p-l-44"><button class="u-reset-button" open-type="share"><image class="share-icon" src="../../static/share.png"></image></button></view></top-nav><view class="u-flex-col"><add-tips vue-id="8dd...
叹咖啡 <br>第一杯咖啡 <br>EcliPse <br>品味第一杯咖啡 <br>Java语言基础 <br>编写猜数字游戏 <br>大话面向对象 <br>个压缩归档实用软件 <br>情人节的Applet <br>Java插件技术 <br>Tic-Tac-Toe <br>终结者
重构的技巧在于小步快跑,即每次只进行小的修改,然后频繁地进行测试,确保每次修改后软件仍然正常运行。这种做法有助于快速定位到由于重构引入的问题,并且由于每次修改的范围较小,回滚也变得更加容易。 本文档还...
《大话5G》是一本针对通信从业人员编写的书籍,旨在通过浅显易懂的语言阐述5G通信的复杂原理。作者通过结合自己的通信网技术积累和科普写作经验,成功地将深奥的技术知识普及化。书中不仅介绍了5G的业务场景和技术...
在这个项目中,学生可能使用了HTML元素来创建网页的标题、段落、图片、链接等,通过`<head>`、`<body>`、`<header>`、`<nav>`、`<section>`、`<article>`、`<footer>`等标签构建了网页的骨架。此外,他们可能还使用...
自己用易语言的个大话外挂程序<br>
其中,读后感的写作教学占有举足轻重的地位。读后感不仅要求学生展现对原文的深入理解,而且需要学生能够将自己的感受、体会和思考转化成流畅的文字。以下,我将结合上述提供的关键要点,详细阐述如何撰写一份优秀的...
移动通信是信息技术领域的一个重要分支,它涉及到无线通信技术、网络架构、信号处理以及服务质量等多个方面。...此课件对于通信工程专业学生、技术人员以及对移动通信感兴趣的公众都是宝贵的参考资料。
在Vue项目中,我们通常会使用`<template>`定义视图,`<script>`处理逻辑,而`<style>`则用于编写样式。 1. **创建Vue组件**:在Vue项目中,可以创建一个名为`RulerComponent`的组件来封装刻度尺的功能。组件结构...
- `<c:choose>`, `<c:when>`, `<c:otherwise>`:提供了类似`switch`语句的多条件判断功能。 - `<c:forEach>`:遍历数组、集合或范围,用于循环输出。 - `<c:forTokens>`:根据分隔符拆分字符串并进行遍历。 2. *...
### 大话Windows Script Host编程 #### Windows Script Host (WSH) 概述与功能 Windows Script Host(简称WSH)是一种支持ActiveX(COM)技术的轻量级脚本环境,可以被视为一种用于现代操作系统的命令行工具的增强...
《大话存储》读书笔记知识点总结 《大话存储》读书笔记中,FC 协议是存储网络中的一个关键技术,本笔记涵盖了 FC 协议的各个方面,包括物理层、链路层、网络层、传输层等。 物理层:FC0 是 FC 协议中的物理层,...
《大话3WDF解包器:深入解析与应用》 在计算机游戏中,资源的管理与存储是一项重要的技术,尤其对于大型多人在线游戏(MMORPG)如“大话西游”系列来说,如何高效地组织和加载游戏资源是至关重要的。本文将详细探讨...