机房重构总结--完整篇

前言

    摸爬滚打几个月,终于结束了机房收费系统的重构,从一开始不知道先干吗四处求救,到最后逐渐有了本身的学习的套路,坚信过程的辛酸和痛苦,终究会换来一片晴天!sql


过程

    一开始,师傅推荐了几本书,什么软件工程、UML、信息系统开发与管理,说实话,看完后,真的仍是一脸懵,更加不知道如何下手。最后按照这几本书总结出来就是老老实实按照培养计划的步骤去作。个人过程大致仍是按照文档、建模、数据库、UI设计、代码实现、测试这样的步骤进行的,这也是我进行的比较慢的缘由之一吧!不过虽然慢,若是再给我一次机会作机房重构,我想我仍是会按照这样的步骤去作。由于若是没有前期这些东西的“折磨”,怎么会知道真正的软件开发是什么样的,又怎么知道敏捷开发到底有多好!数据库

    因此,仍是从文档编写、建模(E-R图、用例图、包图、类图)、数据库设计、UI设计(模块设计)和代码实现进行吧!这些都要考虑到功能、性能以及用户体验方面,尤为是前期,打好基础,后期的修改就会不多!设计模式


数据库设计

    本次数据库设计我才用的是E-R图转数据库的方法,不过还有不少设计数据库的方法,例如sql语句创建,直接命令创建。设计数据库须要注意的东西有不少:好比说表中字段有没有冗余、需不须要设置主键、字段的精度最好设置多少应该为何类型,符不符合三范式。。。数据库设计


UI设计

    这个其实也蛮重要的,其实并非简简单单的画一个特别好看的界面,还应该更注重用户体验。例如:按钮放在哪一个位置用户更方便去点,空间之间的距离和大小、颜色的协调性,不一样界面风格的一致性,窗体大小的适中,是否能够最大小化,MDI窗体的设置。。。性能


技术

设计模式

1.单例模式:只能生成一个实例,也就是一个窗体只能有一个。
学习

2.外观模式:负责整合B层的方法,为一些有共性的方法提供统一的接口,减小B层和UI层的耦合。测试

3.抽象工厂模式:减小B层和D的耦合,数据库替换方便。spa

4.模板方法模式:像查询功能,功能很类似,很是适用模板方法。设计

5.职责链模式:处理完这个再处理那个,适用不少功能,例如上机、下机。对象

6.策略模式:不一样问题不一样处理方法。例如固定用户和临时用户的算钱。


数据库技术

存储过程:适用同时增删改查多个数据表。

视图:同时操做两个不一样的数据表,合二为一的虚拟表。

触发器:就像老鼠夹同样,一踩就夹。


其余:公共变量的使用、报表生成。

其余就是整个过程当中面向对象的体现,抛弃面向过程。代码封装、抽象、继承、多态、复用、可修改性可维护性的体现。工厂到底能不能更换数据库等问题。


思想

1.一开始必定要对这个事物有一个宏观把控,是什么,为何,怎么作,上套路,而后就按照培养计划(真正的巨人)的要求开始作。这个时候千万不要问太多人,由于每一个人的方法不同,问的越多越乱本身就越不想作。

2.一开始不要考虑这个方法对不对,这个世界上没有必定正确的道路,找到一个方法,先去作,若是发现这条路走不通,那就再探索,再去实践别的方法。固然最重要的是本质和大方向必定不要变。千万不要陷入一直考虑犹豫哪一个是最好的。

3.项目千万不要拖,越拖越不想作,一气呵成。当本身遇到瓶颈点时,想办法放松一下本身,而后就算再不想作,逼本身一把。还有就是不断总结,不断给本身找动力。

4.思考问题的方式,在接触一件事情前千万不要着急去作,先去思考,也就是宏观把控,看看能不能找规律找套路。以后多问本身几个问题,发挥门卫思想,多维度多角度去想问题。

5.期间多和别人交流,多向身边的人学习。

6.想作一名精英,就不要对本身放低要求,千万不要作让本身后悔的事情。