进入五月份开始的三层架构的学习。那个时候,三层只是理解了一些理论知识。还有在师父验收三层登陆实例的时候,只知道三层是如何建立起来的。而且在验收的过程中,发现很多逻辑性的错误。三层结束到机房重构,之间不知道停顿了多久。总之,真正开始重构的也就一个星期左右。
在三层结束之后,就要谋划机房重构的问题了。但是,对于已经学习了很多理论知识之后。发现,对于要开始重构机房一点思路都没有,不知道是先从哪里下手,文档?UML图?程序?这种感觉真是……
查看tgb的培养计划,从让导师指导建模开始。也就是先从画图开始吧。由于大脑不够用,也就边画图,边实现吧。最早完成的图,就是包图了。期间,也让师父指导过。也曾经指出过。我在重构机房之间,需要了解一下SqlHelper,在重构的过程中,肯定会使用的。也查过sqlHelper的用途,但是如何使用,还是需要去实践的。下面说说遇到的几个问题吧。
数据库连接问题:
在开始进入该阶段开始学习的之后,花费时间长的地方---数据库。停顿时间较长的一部分,就是数据库的链接上,以前都是通过sqlconnection sqlcommand 等 直接连接数据库的。而且在使用的过程中经常有SQL Injection的攻击。使得数据的安全性就没有了保障。所以开始使用Parameter进行参数查询。
但是只有发现,有很多使用sqlAdapater DataSet等也可以连接数据库,这里有很多历史遗留问题,需要再次开发。
SqlHelper问题:
在仅仅只有一个登陆实例的情况下,的确是没有必要使用sqlHelper的。但是在一个系统当中,需要频繁的连接数据库,增删改查等操作。对于漂亮的代码,无非就是减少重复。在D层中,把跟数据库连接,执行sql语句有关的大量代码封装起来,这个类就叫做sqlHelper。
这个问题,乍一看“没问题,挺简单的”。再一看“这玩意儿怎么写啊,好麻烦”。再看“这就没啦,没多少东西啊”
然后,这个问题,就这么愉快的解决了。学习也就是这么个过程吧。
三层之间的数据传递问题:
沉浸大约一个星期的时间,满打满算我也就实现了三个界面。开始之后,一直在研究三层之间数据的交换,期间传递过实体,用起来挺方便的。但是如果遇到非单一的数据之后,传递实体就出现问题了。之后开始传递dataTable,用起来要方便一些。
总的来说,开始做系统之后,代码的阅读量……不提了。相比于第一次机房收费系统来说,难度的确增加了不少。相比于面向过程的程序来说,面向对象的程序更加好看。代码量的大小,不能决定一个程序的好坏。要想减少代码的重复,去满足单一职责原则就可以实现。
对于还没有开始敲系统的时候,直接就设计出sqlHelper这种事情。会丧失很多。丧失学习的经历,出错的经验。就拿上次学习的《大话设计模式》,为什么有那么多的人喜欢。那是因为每个模式,都有一个背景故事。所以在学习的时候,人们都能知道这个模式,为什么这么构造。
不要想着走捷径,只有真正体会到敲代码的重复,你才能真正体会到设计者的用意。码农是必不可少的一个阶段。