zoukankan      html  css  js  c++  java
  • 个人机房重构总结

        个人版的机房重构花费了一个月的时间,也算是完毕了。如今整理一下三层机房收费系统里面的小问题。对于使用三层架构的机房收费系统来说,数据库的设计是一个重点。可是三层架构的小实例也是经典。
     
    为什么非常多人在開始项目之后,都无从下手?
        由于三层的那个实例没有看懂(并非没有实现)。三层架构的登陆实例,实现不是目的,我们就是要从这个实例中学习,三层的是怎样划分,而且是怎样调用的。
     
    机房重构的准备工作:
        在学习完三层架构理论之后,紧接着的项目就是个人版机房收费系统。
        对于三层结构的登陆实例,假设能够理解的话,那么个人版就已经能够開始了。
     
       建议:
       1、三层架构的实例,一定要理解。
       2、包图,一定要自己切身体会实现过之后 经自己思考画出来。不可网上直接抄。
       3、个人版机房,至少有一个抽象工厂吧,那你为什么不在三层实例中就用一下呢。
     
    数据库的设计:
       数据库的设计,主外键的约束,三范式。(一定要自己设计数据库)。对于之前第一遍机房使用的数据库,一定要抛弃,由于里面有太多冗余的地方了。
     
    机房代码:
       你假设问,我開始做机房收费系统了。我是先绘图,还是先实现代码。
       尽管是应该,先绘图,后写代码。可是你一个刚刚接触三层的人来说,让你绘图,你画的出来吗。即使你能画出来,你能保证顺利实现吗。
     
       1、刚刚接触三层的人,你总要去用代码来理一下自己的思路。至少你要每种操作敲一条线吧。之后再绘图。
       2、代码的调试,错误。这是一种经验,逐语句调试,能够总结一些 错误 的根源。
       3、数据库助手类SqlHelper,不要等做完系统之后再加,在你实现的时候,你就不认为D层里面有太多的反复吗。   当你敲反复代码的时候,你就要停下来思考一下了。
       4、在多张数据表的情况下,尝试使用视图。
       5、在实现功能,运行多个操作的时候,尝试使用存储过程、事务、触发器等。(ps:能够大量节省代码)
     
    UI的设计
       UI的设计,也是一个重要的工作,千万不要局限于第一次机房的窗口界面。
       对于常常泡网吧的童鞋,类似的UI见识肯定非常多吧,多多考虑下自己用的时候的感受,我相信,设计一个这玩意儿问题不大吧。
     
    文档的编写
       你是不是以为,UML图已经画完整了,机房代码仅仅须要依照图来实现不就的了嘛。那写文档有什么用啊。
       对于三层之间传递的參数,大部分都是传的实体。你知道U层传给B层的实体里面有哪些属性吗。码农实现起来也不轻松啊。
       所以,文档里面就要给出具体的过程吧。
     
    关于datatable的使用
       在基本快完毕个人重构的时候,突然开会说,禁止使用datatable。这一下子,可就爽歪歪了。回头看一下自己的代码,里面有不少使用的datatable,就连能够使用实体的地方,我都用了datatable。
       最初刚接触的时候,先用的实体、后用的datatable。之后我就纠结究竟用哪个的时候,我看到了曙光。我就不告诉你,我是看九期他们系统里面都是datatable,我才使用的。
       只是细致想想也对,datatable使用的范围非常大。范围大的弊端就是,程序猿在看到返回值datatable的时候,根本知道里面有哪些字段。这就不是面向对象的做法了。
     
       在重构机房的时候,交流学习的一大途径。非常多实现,网上都能找到比較好的方法。
       个人重构,就是要形成一幅自己的编程风格,交流也是增强自己的编程技巧。一些错误,经历过之后,也许就会更加深刻。少年,先做吧。错了再改,你的收获肯定不小。

  • 相关阅读:
    LeetCode题解之Flipping an Image
    LeetCode 之Find Minimum in Rotated Sorted Array
    LeetCode题解Transpose Matrix
    LeetCode 题解之Minimum Index Sum of Two Lists
    LeetCode题解之Intersection of Two Linked Lists
    LeetCode 题解之Add Two Numbers II
    LeetCode题解之Add two numbers
    href="#"与href="javascript:void(0)"的区别
    有关ie9 以下不支持placeholder属性以及获得焦点placeholder的移除
    ie7下属性书写不规范造成的easyui 弹窗布局紊乱
  • 原文地址:https://www.cnblogs.com/mfrbuaa/p/4005167.html
Copyright © 2011-2022 走看看