导读:机房收费系统个人重构版,在寒假前,已经结束了。嗯,这一路的过程,也挺心酸的。结合师傅验收时的指导、建议,对这一段时间的学习,进行一个总结。

一、学习过程

这一阶段的学习,按照师傅给的建议是:由浅入深,逐步深入。所以,学习起来的困难没有太大。开始师傅是让好好领悟三层,跟我说把三层真正弄懂了,后面就比较顺利。所以,在三层的学习中,大概是花了半个月左右。学完三层,师傅就让先用三层敲通登录、添加 / 删除 / 查询 / 修改用户这五条线。可能也是之前的三层学的还算扎实,这五条线的完成都是比较顺利的,大概就是3天的样子。学习完了这个,就开始了7层的机房重构,机房重构是从12月23号正式拉开序幕的。在敲代码之前,画了包图、类图、部分时序图。让师傅给指导的时候,有很大的不足,那时候也实在是修改不出什么了。就开始敲代码了。正式验收结束是在2月12号,一共是经历了52天。中途由于准备期末考试耽搁了半个月左右,所以总结说来,机房的实际用时是在40天之内。

二、学习安排

机房重构的学习安排是秉承师傅建议的:由浅入深、循序渐进。就是先做简单的,再逐个攻破。先做完了一遍,实现功能之后。马上入手完善之前画的图,敲完代码后,发现之前画的图有很多不足的地方,尤其是时序图,问题很大。在图画完了之后,再去对系统进行了一下完善性的修改。期间也有被困难压住退缩的时候,感谢师傅的指导和帮助。

三、学习中的问题

1,设计模式用的不多,也反应出来再设计模式的学习中,不够扎实。

机房重构用到了:单例、模板、外观、抽象工厂4个设计模式。当时在计算消费的时候,想过用职责链计算有效消费,以及通过策略模式分类型计算消费。但在尝试的过程中,都以失败告终。

2,逻辑不清,导致系统报错后,无从调错。

最深印象的就是有一个错,和师傅们一起都调了好两天。自己也调了两天,但是逻辑不清,导致一些问题都无法解决。也算是因祸得福吧,把那个错调完之后,对于系统的逻辑,运行步骤,以及调错方法,一般系统报错都掌握了很多,所以后来的学习中,问题基本上没有。每次报错,都能很快控制出错范围和出错原因。

3,不太清楚应该将图放在文档中的什么位置。后来是参考了其他同学,包括师傅给的范例给加上去了。相对于第一次画图,这次画的美观、合理太多。

四、验收中的问题

1,分层中的逻辑问题

这也是对于每一层的职责混乱所导致的。大的问题是没有,只是应该在B层进行的逻辑判断,给放到了U层,造成U层很冗杂。还有就是,本应该在外观对方法进行封装的,也没有,造成了外观的作用体现不大。

2,注释的规范化

这个问题主要体现在接口,在接口层通过单引号加的注释,没有规范化,所以导致在B层通过工厂调用的时候,没有对方法进行提示说明。

  

3,图示说明

在文本文档的完善时,实体的类图,没有添加文本注释,在实际的应用中,实体和数据库的表可能会是不一样的,不能通过数据库设计对实体类图进行说明。在应用的过程中,应该做到:有图就有说明。

  

4,消费金额的计算逻辑

是以坐出租车的原型进行迁移的,但在最小金额和最小消费时间这两个的理解有点矛盾,机房的收费和出租车的收费还是有差距的。消费金额,必定是根据单位时间消费和消费时间确定的。

五、学习收获

1,技术上

首先,是了解了三层的使用。对比第一次的机房,用外行人的话说就是:代码看着都要舒服、规范很多。然后,自己的感受是,比起第一次机房,在逻辑上,职责分工上,要清楚很多,在修改的时候,比较容易。也就是所谓的:耦合低。

其次,是在实践的过程中,再一次的学习了设计模式。虽然有些还是没能倒腾清楚,但是,有了这些铺垫,我相信以后的学习,会减负很多。

最后,是调错能力。师傅说,自己掌握一些调错的方法,也算是找到了一个耐心的师傅。有错就给你报,还永远不会歇菜和不耐烦。

2,思想上

首先,遇到问题,自己要思考,这是肯定的,但不能走进了死胡同。要深刻理解:不赞成遇到问题交流和不反对遇到问题交流。

其次,不能急于求成。做事儿,都一步一步的来,急于求成,先不说能不能成,就算成了之后,也会有一些后遗症。现在的学习,都是为了以后的学习做铺垫,反正,出来混的,都是要还的。

然后,做系统做软件,应该重视用户的需求。在需求不明朗的时候,花时间去弄清楚需求,也不要花时间去猜去尝试需求。在做系统的过程中,因为对机房的具体使用需求不清楚,导致了大返工,经验教训,引以为戒。

最后,数据备份。要对自己的数据进行备份保存。因为有时候调错,会对系统进行一些修改。还有就是有时候在逻辑上出了问题,需要修改。在做这些的时候,都应该先对原始数据进行备份,以免无法恢复或者恢复困难。在数据备份的过程中,还应该合理命名,从名称知道数据的内容。(要是全部都是:机房重构N,在使用的时候会有一定的难度)

.NET重构(九):机房重构验收总结的更多相关文章

  1. 机房重构包图(从三层+实体到三层+实体+外观+工厂+接口+SQLHelper)

    刚刚开始接触三层的时候,我只做了两个登录小窗体的例子.画了简单的包图,可以说,为后面机房重构留下了大量的工作(因为三层理解没有深度,也没有理解出自己的东西).不过,欠下的总要还的.在做机房重构的时候, ...

  2. 机房重构——泛型和“DataTable”

    前言 我们都知道在机房重构的时候,大多数都在用七层进行重构,每一层都依赖实体.所以不管怎么调用,返回的应该是实体参数,这样才符合大多数的逻辑,这样我们试想一下,如果我们要求在U层返回多个实体值,怎么办 ...

  3. 【机房重构】—上机&订餐

    前几天通过UML图中的时序图.让我对于机房重构中的每一条线理解的更加清晰.曾经认为上机特别的乱,在一次偶遇中,得知了原来它能够转化成我们平时订餐.以下就听我说一说上机&订餐的故事吧! 又是发生 ...

  4. 【C#】万事开头难(二)<机房重构>

    前言 机房将要进行完了,之所以仍然使用这个题目,是由于我想告诉自己.无论面对多么未知的事物.不要害怕,去做就好.在这么多天的机房重构中,发现了好多问题,也攻克了好多问题,今天,就把我解决的问题分享给大 ...

  5. 机房重构所遇问题"未能载入文件或程序集“DAL”或它的某一个依赖项。系统找不到指定的文件"的解决的方法集锦

    敲七层登录的时候.忽然间认为敲三层搞清的思路瞬间又凌乱了.花了一天的时间边敲边梳理,最终整完了,执行的时候弹出了这种错误:未能载入文件或程序集"DAL"或它的某一个依赖项. 系统找 ...

  6. 【Java重构系列】重构31式之封装集合

    2009年,Sean Chambers在其博客中发表了31 Days of Refactoring: Useful refactoring techniques you have to know系列文 ...

  7. 重构前VS重构后效果对比

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/42554641 学习重构已经一个多月了,虽然不能让代码特别的 ...

  8. 【机房重构】SQL之视图

    近期在重构机房收费系统,越往后就会越感觉到这里很多其它的是对之前学过知识(数据库,设计模式)的一种应用和回想.比方在登录功能中用到了抽象加反射,在学生下机中,我们能够用触发器来同一时候更新两个表.这里 ...

  9. 机房重构——UML图最终版本

    刚开始画图时确实很纠结,那时候是在师父的逼迫下不得不画,不过这样也是有好处的,在师父的强烈要求下,我学会了如何使用EA,也对一个学习一个新的软件有了一个更好的方法,可以去找一些视频,或者文字资料来帮助 ...

随机推荐

  1. Java中IO流文件读取、写入和复制

    //构造文件File类 File f=new File(fileName); //判断是否为目录 f.isDirectory(); //获取目录下的文件名 String[] fileName=f.li ...

  2. Emacs Org-mode中英文字体设置

    Emacs Org-mode中英文字体设置 Table of Contents 1. 缺省字体存在的问题 2. 解决方法 2.1. 环境说明 2.2. 思路和方法 2.3. emacs设置代码 2.4 ...

  3. [Rational Rose 2007]解决启动报”解决无法启动此程序因为丢失suite objects.dll“的问题

    问题根源1:不是丢失suite objects.dll文件,而是环境变量配置错误或无配置 假如安装目录如:C:\Program Files\Rational 需要配置环境变量的路径为:C:\Progr ...

  4. Windows64+Python27下配置matplotlib

    注:转载请注明原作者并附上原文链接! 网上看了很多方法,均遇到这样或者那样的问题导致安装失败,最后自己摸索一条方法,最终安装成功了. 1,首先安装numpy,这个可以选择install安装包,很简单, ...

  5. Microsoft Sql server2005的安装步骤和常见问题解决方案

    一:安装sql server 2005过程中出现 如下问题:“选择的功能中没有任何功能可以安装或升级”: 解决方案:Microsoft SQL Server 2005→配置工具→SQL配置管理器→SQ ...

  6. WPF中做出一个QQ登陆界面

    Xaml: <Window x:Class="ChatSoftware.MainWindow" xmlns="http://schemas.microsoft.co ...

  7. "Uncaught SyntaxError: Unexpected token <"错误完美解决

    今天写代码的时候发现了"Uncaught SyntaxError: Unexpected token <" <html>的js错误,而且还是html的第一行,我就 ...

  8. SayLove微信小程序

    目录 SayLove 表白墙微信小程序 程序结构 说明 程序效果图 配置过程 结语 云开发 quickstart 参考文档 SayLove 表白墙微信小程序 项目地址:https://github.c ...

  9. const、let、var的区别

    const不能从字面上来理解,他不能修改的是栈内存在的值和地址. 使用const声明的是常量,在后面出现的代码中不能再修改该常量的值. 怎么理解栈内存在的值和地址呢?就要从javascript的类型说 ...

  10. LeetCode || 大杂烩w

    454. 4Sum II 题意:给四个数组,每个数组内取一个数使得四个数和为0,问有多少种取法 思路:枚举为On4,考虑两个数组,On2枚举所有可能的和,将和的出现次数存入map中,On2枚举另两个数 ...