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

一、学习过程

这一阶段的学习,按照师傅给的建议是:由浅入深,逐步深入。所以,学习起来的困难没有太大。开始师傅是让好好领悟三层,跟我说把三层真正弄懂了,后面就比较顺利。所以,在三层的学习中,大概是花了半个月左右。学完三层,师傅就让先用三层敲通登录、添加 / 删除 / 查询 / 修改用户这五条线。可能也是之前的三层学的还算扎实,这五条线的完成都是比较顺利的,大概就是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. codeforces736D. Permutations(线性代数)

    题意 $m \leqslant 500000$,题目打错了 Sol 神仙题Orz 构造矩阵$B$,使得$B[b[i]][a[i]] = 1$ 那么他的行列式的奇偶性也就对应了生成排列数列数量的奇偶性( ...

  2. arcgis jsapi接口入门系列(1):地图

    地图相关 //地图相关demo mapFun: function () { //获取地图中心点 let center = this.mapView.center; //地图中心点坐标(同地图坐标系) ...

  3. github入门一

    一.首先安装gitbash(自行百度)我使用的版本是Git-2.12.2.2-64-bit.exe 二.配置gitbash本地客户端 1.初始设置 1.1.设置姓名和邮箱地址 git config - ...

  4. 在Mac里给Terminal终端自定义颜色

    Mac里终端显示默认是一种颜色,太单调了. 然而我们可以自定义这些颜色显示.进入-目录,编辑文件.bash_profile, 输入如下内容: 第三行那些fxfxax看起来是不是像天书?实际上是有规律的 ...

  5. php日期时间和时间戳转化

    echo date("Y-m-d H:i:s", 1409138643);echo strtotime('2014-08-28 23:00:00');

  6. sparkmlib-相关系数

    一.基本原理 在stat包中实现了皮尔逊(Pearson)与 斯皮尔曼(Spearman)两类相关系数的计算 (1)Pearson:   (x,y)协方差/[(x标准方差)*(y标准方差)] 详情可以 ...

  7. C++类构造函数、析构函数运行机理

    http://blog.sina.com.cn/s/blog_6fd68d5f0100n60h.html 前言--构造函数.析构函数的简单理解:1)构造函数---对象被创建时候调用的函数:2)析构函数 ...

  8. 图像处理框架 Core Image 介绍

    这篇文章会为初学者介绍一下 Core Image,一个 OS X 和 iOS 的图像处理框架. 如果你想跟着本文中的代码学习,你可以在 GitHub 上下载示例工程.示例工程是一个 iOS 应用程序, ...

  9. Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver class

    解决方案: @SpringBootApplication(exclude = DataSourceAutoConfiguration.class) 作用://取消数据库配置 但是 在用到数据库的时候记 ...

  10. Maven01

    1. Maven简单介绍 Apache Maven是个项目管理和自动构建工具,基于项目对象模型(POM)的概念.  作用:完成项目的相关操作,如:编译,构建,单元测试,安装,网站生成和基于Maven部 ...