重构之路 狼烟四起

虽然已经做过一遍机房收费系统,但是要用面向对象技术和分层技术对其进行重构,的确是一件不容易的事,从最开始的需求分析,到使用UML对机房收费系统进行建模,再到后期的代码实现以及文档编写,无一例外的让人觉得纠结甚至是虐心。为什么会有这样的赶脚?我们来一探究竟。

首先是需求分析,虽然大家都已经做过一遍了,但是我不敢保证你们都能很好的理解这个系统的需求,因此这是一个纠结点。其次就是画图,必要的图有用例图,系统的包图,以及各个包里的类图和时序图,这些图对后期的代码编写十分重要,因此必须要画的。

在使用面向对象技术对系统进行重构的时候,就需要你去抽象了,尤其是在使用三层架构和加入设计模式之后,其中的复杂性可想而知,我现在很纳闷当初我们使用VB6.0开发的时候,没有任何的需求分析,也没有任何的设计图和源码,单单是根据系统蓝本,我们就把系统做出来了,而如今在做了大量的准备工作之后却步履维艰,这是为什么?

也许是中国人的模仿能力很强,但是相比之下创新能力几乎就没有了,这个在我们学习和实践的过程中就能够感受出来,这也许能说明为什么现在没有面向对象语言写得系统蓝本,我们很难顺利的将系统做出来。扯远了,还是回到我的重构之路上来吧。

我的起步比较慢,相对来说这是一个不算优势的优势,那就是可以站在前人的肩膀上,吸取前人的经验教训,更快更好的将系统做出来,可事实上并非如此。

我是先进行系统数据库的设计和制作,然后开始画系统UML图,在画图的过程中非常的狼狈,主要问题出在细节上,主要的思路有,大家都知道整体的架构,也知道各层之间的引用和调用关系,似乎也知道每层中类的结构,但是在设计类的属性和方法时,瞬间不知所措,传什么样的参数,返回值是什么等等都不知道,于是乎,开始写代码。

万万没想到,写代码也让人抓狂,只是写了一个系统的登录功能,没想到至今还没运行出来。如果把每一个报错比作一簇狼烟,在整个调试过程中,真可谓是狼烟四起啊。随着代码的跳转,错误一个接着一个,灭了一个又出现一个,好不容易能完整走下来,却发现不是预想的结果,明明数据库里有数据,却查不到,于是乎重新来过。

重构之路,狼烟四起,形势危急,心不能急。

重构之路 狼烟四起,布布扣,bubuko.com

时间: 2024-12-31 10:58:54

重构之路 狼烟四起的相关文章

Hybird框架UI重构之路:四、分而治之

上文回顾:Hybird框架UI重构之路:三.工欲善其事,必先利其器 上一篇文章有说到less.grunt这两个工具,是为了css.js分模块使用的.UI框架提供给使用者的时候,是一个大的xxx.js.xxx.css,但在开发时候,必须划分模块. CSS模块划分 1.variables.less 这里面是一些样式的变量.函数 例: 字体: @baseFontSize: 20px; 圆角: .rounded-corners (@radius: 5px) { border-radius: @radiu

重构之路 组合查询之传参+存储过程

上篇博文给大家一起讨论了实现组合查询的一种方法,即在U层将select语句的where子句部分组装好,赋给一个字符串变量,传到D层然后与select子句组成完整的sql语句,之后执行,返回查询结果,就是这么简单,但是博文的结尾也留下了一个疑问,这种方法的安全性有点欠佳,有没有相对好一点的办法呢? 答案是肯定的,这次我们一起来看看我实现的另一种方法.首先给大家简单介绍一下这种方法的思路,其实也比较简单,最初我是想在程序代码里写sql查询语句的,然后将组合查询的各个条件的值当做实体参数(现在实体层定

重构之路 组合查询之传递SQL字符串

既然是使用VB.NET语言对机房收费系统进行重构,那么无可避免的要去解决组合查询的问题,在VB版的实现中这是一个难点,不过大家还是依靠自己或者共同的智慧解决了这个看似复杂的问题. 如今编程的语言不同是一方面,更重要的是系统的结构不一样了,采用了三层架构去实现系统,这样一来就要考虑组合查询的在三层结构中的实现方法.当然,组合查询的核心办法是不变的,都是通过将查询的各个条件组装成SQL查询语句的where子句来实现的,问题就是这个where子句的组装在哪里完成? 如果放在U层完成,那么我们向下传递的

重构之路 峰回路转

其实敲代码的时间并不是太长,往往调试的时间很长,登录早就敲完了,可是迟迟运行不出想要的结果,甚至不能完整的从U层运行到D层,实在是让人揪心,先后请了三位高手帮我调试,愣是没有发现错误在哪里. 在今天的上午,问题有了转机,终于是将登录完整的运行下来了,也得到了预期的反馈,因此在下午的时候就再次尝试加入配置文件,没想到一个意想不到的警告信息让我相信之前的判断是正确的,于是顺藤摸瓜终于找到了问题的根源,万万没想到,一系列问题的答案竟是如此简单,让人哭笑不得. 先来分析分析报错信息,以便找到解决问题的线

Hybird框架UI重构之路:五、前端那点事儿(HTML、CSS)

上文回顾 :Hybird框架UI重构之路:四.分而治之 这里讲述在开发的过程中,一些HTML.CSS的关键点. 单页模式的页面结构 在单页模式中,弱化HTML的概念,把HTML当成一个容器,BODY中显示的主体内容才是页面,一个HTML容器中可以存放1个或者多个页面,每个页面放置于section中.而一个页面(section)中必有主体内容(content),也有可能包含头部内容.底部内容,甚至一些侧滑菜单等. 所以,以我们通常看到的一个移动应用的界面中包含了顶部Title和主体内容的页面代码如

Hybird框架UI重构之路:六、前端那点事儿(Javascript)

上文回顾 :Hybird框架UI重构之路:五.前端那点事儿(HTML.CSS) 这里讲述在开发的过程中,一些JS的关键点. 换肤 对于终端的换肤,我之前一篇文章有说了我的想法. 请查看:http://www.cnblogs.com/lovesong/p/4122262.html iscroll的问题 1.使用iscroll的页面里面有表单元素,当键盘弹出再缩回后,页面拖不到最顶地方. 这个在android上总出现,使用的iscroll版本是4.2.5. 这原来是个很棘手的问题,导致了有input

Hybird框架UI重构之路:三、工欲善其事,必先利其器

上篇回顾:Hybird框架UI重构之路:二.事出有因 工欲善其事,必先利其器,事是重构的目标,器是开发环境. 这篇文章将讲述重构时的UI框架的目录结构,且需要使用的开发工具. 目录结构 demo : 开发框架的模板(单页模式) demo-muti : 开发框架的模板(多页模式) demo-scene : 示例模板.一个完整的示例,目的是给使用者稍作修改就可以使用在项目上. demo-template : 给使用者使用的开发模板. demo-whole : 可在PC上演示的示例模板 dist :

Hybird框架UI重构之路:二、事出有因

上篇回顾:Hybird框架UI重构之路:一.师其长技以自强 一切的重构都是有原因的,或许为了更快速度.更好体验.更快捷开发等,于是就有了自己的开发目标,简单看看未重构前UI("中国移动式"风格). 上一篇文章说明调查了这么多类似框架,对比了他们的特点,而比对自身UI,也是存在可优化的地方,于是有了下面几点目标(仅仅UI框架方面,不涉及原生部分). (1)规范开发 1.SVN版本控制.之前的UI框架部分是没有进行svn版本控制的,于是会导致个问题——有些文件在多次修改后,连当初的开发者都

Android 项目重构之路:实现篇

前两篇文章<Android项目重构之路:架构篇>和<Android项目重构之路:界面篇>已经讲了我的项目开始搭建时的架构设计和界面设计,这篇就讲讲具体怎么实现的,以实现最小化可用产品(MVP)的目标,用最简单的方式来搭建架构和实现代码. IDE采用Android Studio,Demo实现的功能为用户注册.登录和展示一个券列表,数据采用我们现有项目的测试数据,接口也是我们项目中的测试接口. 项目搭建 根据架构篇所讲的,将项目分为了四个层级:模型层.接口层.核心层.界面层.四个层级之