学习和使用重构的时间不算长,也午还没有真正领悟到重构的精髓。
这一段时间手头有一份公司先前项目的代码,以后可以会交给我维护。要我搞懂这份代码,这份项目的设计人员也给我大致讲解了项目的原理和一些小的技术要点。心里满以为,应该不用多久就可以理解这份代码了。
打开项目后,随手阅读了几个类的代码后,才发现原来并不想我想象中的那么容易。面对这些完全没有注释的代码,我一下头大了起来。由于设计的性能要求,代码全是原始的脚本式的。到也看到了一个封装了数据库访问的类。结果里面却包含了三个类,多达二十多个属性,二十多个方法。看到这个庞大的类,我由如看到一团稀泥。完全不知道从何去理解他。
虽然封装了数据访问的类,但是页面脚本下也到处是直接访问数据库的代码。非常多的全局变量名称也是很随意,而且更重要的是他们都是使用Application来存储的。很多没有在使用的的方法也没有把他注解掉,而是仍然扔在那里。很多没有使用的页面也是一样,扔其放在那里。方法名称到处是hits,hits1这样的。没有注释,真的分不清他们到底有什么区别。
数据库中存储过程,也是都没有注释。名称也是非常简短,完全没办法知道他到底是什么功能,只能去阅读他的代码。可是由于对表名的不理解,阅读起来也是困难重重。。
一道灵光在心里化过,Matrin大师不是说,任你多乱的代码,都可以重构成一份结构清晰的源代码。于是决定重构他,方便以后如果要新增新功能,或者维护起来方便。为了怕自己忘却重构的一些方法,又仔细的阅读了Matrin大师的重构。
开工了,第一件事就是把那个宠大的类,分解成小类,并加上注释。花了一早上的功夫,终于完成了。测试运行下没有发现错误。很满意。然后将这些引用宠大类的地方修改成引用小类的。编译,通过了,开心。执行结果发现未明错误,三四处。
天阿,我被打败了。
不过古人说:失败是成功他妈。没有失败那有成功。也许是我重构的动作太大,应该如Matrin 大师一样,慢慢的来。
我想,坚持就是胜利。。。我想我能行的
分享到:
相关推荐
《郝斌数据结构源代码》是一份非常宝贵的教育资源,它为学习计算机科学和技术的学生和从业者提供了深入理解数据结构实现的实例。数据结构是计算机科学的基础,对于编程和算法设计至关重要。郝斌老师的教学资源因其...
7. 源代码分析:殷人昆老师的源代码通常会遵循良好的编程规范,包含清晰的注释和逻辑结构,便于学习者理解和复用。吴乃陵老师的修订可能涉及性能优化、错误修复或功能增强。 8. 编程实践:通过阅读和分析源代码,...
MD文档与操作手册:为了方便他人理解和使用我的作品,我编写了详细的操作手册和使用说明,同时提供了一份Markdown格式的文档,概述了项目的主要功能和特点。 学习笔记:在项目开发过程中,我记录了大量的学习笔记和...
此外,文档还提到了模块化设计的优点,即词法分析与语法分析的分离,使得代码结构清晰,便于维护和扩展。 总体而言,这份文档不仅提供了构建语法分析器的理论基础,还通过具体的实验案例和代码实例展示了其实现细节...
3. **易优化**:由于其结构清晰,中间代码便于执行诸如死代码消除、常量折叠、循环展开等优化操作。 **实验报告的内容** 本实验报告聚焦于编译原理中的中间代码生成,通过输出四元组来实现这一过程。四元组是一种...
这份“数据结构课后答案代码版”压缩包包含了一系列用于理解和实践数据结构的代码示例,这些代码是清晰的、可运行的,并且鼓励交流与学习。 1. **数组**:数据结构的基础,它是一系列相同类型元素的集合,可以通过...
数据结构是计算机科学中的核心课程之一,它研究如何在计算机中高效地组织和管理数据,以便进行快速查找、插入和删除等操作。...所以,严蔚敏老师的《数据结构》C语言版代码是一份不容错过的学习资源。
《中国象棋VC++源代码》是一份专为学习和分析象棋游戏设计与实现而准备的编程资源。这份源代码使用C++编程语言编写,是深入理解VC++编程技术,特别是游戏逻辑和算法实现的理想教材。下面我们将详细探讨这份源代码中...
- **代码重用**:体系结构应说明如何将已有的代码重构成符合其他架构目标的形式。 - **概念一致性**:整个架构在概念上应是一致的,各部分之间逻辑紧密。 3. **数据结构和接口**: - **数据结构描述**:所有主要...
这个游戏的源代码对于学习Android应用开发,尤其是对游戏开发感兴趣的开发者来说,是一份宝贵的学习资源。 在Lona项目中,主要涉及以下几个关键知识点: 1. HTML5游戏开发:Lona是用HTML5、CSS3和JavaScript构建的...
《C程序设计(第3版)》是一本深入讲解C语言编程的经典教材,其程序源代码是学习者理解和掌握C语言的重要参考资料。本资源包含了该书中的所有示例程序,以及配套的课件,旨在帮助读者更加直观地理解C语言的语法特性...
在这个“数据结构作业,课程设计”中,我们聚焦于南京航空航天大学的一份高质量的课程设计,这份设计获得了优秀的评价。设计中使用的开发环境是Visual Studio 2010,这是一个强大的集成开发环境,支持C++编程,对于...
数据结构是计算机科学中的核心概念,它主要关注如何有效地组织和管理数据,以便高效地执行各种操作。《数据结构--使用c++语言描述...因此,对于任何想要在IT领域发展的人来说,这是一份不可多得的学习资料,不容错过。
通过阅读和分析《C语言课程设计案例精编》中的源代码,你可以了解到如何将C语言的语法应用于实际问题解决。例如,可能会遇到计算阶乘的程序,这涉及到递归或循环;或者文件操作案例,展示了如何打开、读取、写入和...
- **布局方式**:采用了流行的DIV+CSS布局方式,这种方式不仅有利于网页的结构清晰,还能确保网页在各种设备上的良好显示效果。 - **多媒体元素应用**:除了基本的文字和图片外,还包含了视频、音乐等多媒体元素的...
无论是对于初学者还是经验丰富的开发者,都是一份宝贵的学习资源。通过深入研究,我们可以更好地掌握面向对象编程的思想,理解游戏规则在计算机程序中的表达,以及如何利用UML图进行高效沟通和协作。
《Python核心编程源代码》是Python编程领域的一份宝贵资源,包含了Python核心编程第三版书籍中的所有示例代码。这些经过验证的代码片段是学习和理解Python编程基础、进阶特性和实践应用的重要参考。本资源特别关注了...
在GIS(地理信息系统)开发领域,ArcEngine是一个强大的工具,由Esri公司提供,用于构建桌面、Web和移动应用程序,可以处理地图数据和空间分析。...在实际项目中,结合注释理解代码,有助于快速上手并解决具体问题。
C语言是一种广泛应用于系统编程、应用编程、嵌入式开发以及各种软件开发的高级编程语言。它的设计目标是提供一种简洁、高效且可移植性强的编程工具。...因此,这份包含代码的课件对于初学者来说无疑是一份宝贵的资源。
良好的命名习惯不仅使代码更易于阅读,还能帮助维护者更快速地理解代码意图。例如,标识符的命名应该由字母、数字和下划线组成,而且首个字符必须是字母,最后一个字符不能是下划线,且不能出现连续两个下划线。此外...