前言
摸爬滚打几个月,终于结束了机房收费系统的重构,从一开始不知道先干嘛四处求救,到最后逐渐有了自己的学习的套路,坚信过程的辛酸和痛苦,终究会换来一片晴天!
过程
一开始,师傅推荐了几本书,什么软件工程、UML、信息系统开发与管理,说实话,看完后,真的还是一脸懵,更加不知道如何下手。最后按照这几本书总结出来就是老老实实按照培养计划的步骤去做。我的过程大体还是按照文档、建模、数据库、UI设计、代码实现、测试这样的步骤进行的,这也是我进行的比较慢的原因之一吧!不过虽然慢,如果再给我一次机会做机房重构,我想我还是会按照这样的步骤去做。因为如果没有前期这些东西的“折磨”,怎么会知道真正的软件开发是什么样的,又怎么知道敏捷开发到底有多好!
所以,还是从文档编写、建模(E-R图、用例图、包图、类图)、数据库设计、UI设计(模块设计)和代码实现进行吧!这些都要考虑到功能、性能以及用户体验方面,尤其是前期,打好基础,后期的修改就会很少!
数据库设计
本次数据库设计我才用的是E-R图转数据库的方法,不过还有很多设计数据库的方法,例如sql语句建立,直接命令建立。设计数据库需要注意的东西有很多:比如说表中字段有没有冗余、需不需要设置主键、字段的精度最好设置多少应该为什么类型,符不符合三范式。。。
UI设计
这个其实也蛮重要的,其实并不是简简单单的画一个特别好看的界面,还应该更注重用户体验。例如:按钮放在哪个位置用户更方便去点,空间之间的距离和大小、颜色的协调性,不同界面风格的一致性,窗体大小的适中,是否可以最大小化,MDI窗体的设置。。。
技术
设计模式
1.单例模式:只能生成一个实例,也就是一个窗体只能有一个。
2.外观模式:负责整合B层的方法,为一些有共性的方法提供统一的接口,减少B层和UI层的耦合。
3.抽象工厂模式:减少B层和D的耦合,数据库替换方便。
4.模板方法模式:像查询功能,功能很相似,非常适用模板方法。
5.职责链模式:处理完这个再处理那个,适用很多功能,例如上机、下机。
6.策略模式:不同问题不同处理方法。例如固定用户和临时用户的算钱。
数据库技术
存储过程:适用同时增删改查多个数据表。
视图:同时操作两个不同的数据表,合二为一的虚拟表。
触发器:就像老鼠夹一样,一踩就夹。
其他:公共变量的使用、报表生成。
其他就是整个过程中面向对象的体现,抛弃面向过程。代码封装、抽象、继承、多态、复用、可修改性可维护性的体现。工厂到底能不能更换数据库等问题。
思想
1.一开始一定要对这个事物有一个宏观把控,是什么,为什么,怎么做,上套路,然后就按照培养计划(真正的巨人)的要求开始做。这个时候千万不要问太多人,因为每个人的方法不一样,问的越多越乱自己就越不想做。
2.一开始不要考虑这个方法对不对,这个世界上没有一定正确的道路,找到一个方法,先去做,如果发现这条路走不通,那就再探索,再去实践别的方法。当然最重要的是本质和大方向一定不要变。千万不要陷入一直考虑犹豫哪个是最好的。
3.项目千万不要拖,越拖越不想做,一鼓作气。当自己遇到瓶颈点时,想办法放松一下自己,然后就算再不想做,逼自己一把。还有就是不断总结,不断给自己找动力。
4.思考问题的方式,在接触一件事情前千万不要着急去做,先去思考,也就是宏观把控,看看能不能找规律找套路。之后多问自己几个问题,发挥门卫思想,多维度多角度去想问题。
5.期间多和别人交流,多向身边的人学习。
6.想做一名精英,就不要对自己放低要求,千万不要做让自己后悔的事情。