热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

机房收费系统.Net个人版总结

机房收费系统.Net版到前两天为止才算是彻底完工了。从寒假开始的初步文档图设计,以及之后的代码实现,到三月中旬开始的文档规范、图规范、代码规范。这个生命周期真是一个长

          机房收费系统.Net版到前两天为止才算是彻底完工了。从寒假开始的初步文档+图设计,以及之后的代码实现,到三月中旬开始的文档规范、图规范、代码规范。这个生命周期真是一个长啊。给自己总结了一下:本次机房收费系统的难点——初期的设计(代码前的UML图+文档);本次机房收费系统的麻烦点——后期的规范(代码后的UML图+文档+代码的修改(逐步向规范靠拢))

 

         刚开始设计架构,画图时一点头绪都没有。那时候刚刚学习完三层架构,敲了几个三层架构的例子,似懂非懂的根本无法下手,更困难的是图中要明显体现出三层架构(刚开始做只是按三层架构,之后加的设计模式)

 

     在师父青峰的点播下,我对三层架构逐步有了深的感觉,系统做起来更加顺手起来。

 

        现在对师父保强的那句话还是蛮有体会的:难者不会,会者不难。

        回想刚开始此系统时的毫无头绪、心急交迫,现在终于释放了,原来每个坎都不是坎,总觉得是座山,翻过后发现原来仅一块绊脚石而已,我拾到金子了。

 

1,深刻体会:学习是个过程;不,学习是个重复的过程;也不,学习是个重复+重新认识的过程:

 

(注:1,去年暑假学习数据库时:主外键、存储过程、事务、视图。当时觉得理解了,但是没有实际应用,还是认为很神秘;2,前几个月学习了那么多设计模式;3,三范式早就了解过,没用过;4,做这一遍机房收费系统时,刚认识,很快就用到了(Why?原因很简单:一个实际操作>>>>>>>上万条理论))

 

2,每做一个项目(一件事情)都要有所提高,如果只是重复以前会的东西,没有提高=白学=没意义的学习

曾经怀揣着如此愉悦的心情找保强师哥验收。

他提出了一系列的问题,让我几乎崩溃

——(1)代码、数据库的命名有没有按命名规范?

(2)代码注释全吗?每个类的注释、每个方法的注释、每个变量的注释、每个语句块的注释、每个语句块的每一行注释(例如:If...Else...End If     if 后的语句代表什么,语句块代表什么;Else后的语句代表什么?语句块又代表什么?)

<1>

&#xff08;注&#xff1a;几乎每条语句都要有明确的注释&#xff1a;如果返回值是Boolean类型&#xff0c;True代表什么&#xff0c;False代表什么&#xff1b;如果返回值是Integer类型&#xff0c;不同范围的值分别代表什么…..&#xff09;

 

<2>

类和方法的注释使用XML注释&#xff08;我叫它“三撇注释”&#xff09;

例如&#xff1a;

&#xff08;注&#xff1a;一个方法1&#xff0c;要注明它的功能&#xff1b;2&#xff0c;要注明参数的含义及用到的属性&#xff0c;目的是合作开发时&#xff0c;上层调用下层方法时知道如何传参&#xff1b;3&#xff0c;要注明此函数的返回值含义&#xff0c;返回的值代表什么含义。例如&#xff1a;返回一个DataTable类型的值&#xff0c;DataTable中包含的是什么信息。如果不注明此函数改返回什么值的话&#xff0c;程序员是无法实现此功能的&#xff0c;因为此函数的编写是毫无目的的。只给程序员一个函数名&#xff0c;就让其写出代码&#xff0c;是不可能的&#xff0c;因为程序员不了解架构师的想法&#xff09;

 

<3>自己创建文件注释

写在文件开头。每个类库文件开头都创建文件注释。

&#xff08;注&#xff1a;我目前对此类型注释的理解&#xff1a;1&#xff0c;合作开发时&#xff0c;每几个人负责一层&#xff0c;每个人负责不同的模块。将自己负责的每个部分都创建此文件注释的话&#xff0c;如果将来哪一部分出了问题可以很方便的找到它的负责人。2&#xff0c;解释此文件的大致内容&#xff08;例如&#xff1a;我没创建一个类&#xff0c;在类文件开头创建文件注释&#xff0c;标注它的说明&#xff09;

 

&#xff08;3&#xff09;UML图中的解释

<1>以BLL包CardBLL&#xff08;卡信息类&#xff09;的IsCardIDExist&#xff08;判断卡号是否存在为例&#xff09;

 

&#xff08;注&#xff1a;如果在EA中将方法的注释&#xff08;功能、参数、返回值&#xff09;标注的很清楚的话&#xff0c;EA将其类图导成代码时就会自动加上XML注释&#xff09;

 

&#xff08;4&#xff09;文档规范

<1>内容是不是丰富&#xff1f;&#xff1f;&#xff08;假如你是架构师&#xff0c;你的文档给别人&#xff0c;他们能不能找文档敲出代码。&#xff08;当然&#xff0c;我的文档丰富度还是拿捏不准&#xff0c;但是我师父说了以后做一次架构师就知道了&#xff0c;我信了&#xff09;&#xff09;——注意&#xff1a;丰富不是累赘&#xff01;&#xff01;&#xff01;

<2>

不同的文档所需要的UML图。

例如&#xff1a;需求分析说明书&#xff08;给客户看&#xff0c;要简单易懂&#xff09;——用例图

概要设计&#xff08;给经理看&#xff0c;全局把控&#xff09;——包图、类图

详细设计&#xff08;程序员看、详细到看图写码的程度&#xff09;——顺序图、有复杂逻辑的活动图

 

<3>每个图的解释是否详细

每张图后面都要有相应的解释&#xff0c;至于什么图解释什么解释到什么程度&#xff0c;我现在还拿捏不准&#xff0c;所以不敢瞎说&#xff0c;大家都在学习进步中吧。

用例图&#xff1a;每个用例的解释&#xff0c;解释清这个用例的作用&#xff0c;是完成的什么功能

&#xff08;例如&#xff1a;

说明&#xff1a;Recharge&#xff1a;学生充值&#xff1b;操作员输入卡号、金额&#xff0c;给学生卡内充值&#xff09;

 

包图&#xff1a;

说明&#xff1a;此系统采用三层架构&#43;抽象工厂&#43;反射&#43;配置文件为总体架构。

UI层&#xff1a;用户界面层&#xff1b;与用户打交道&#xff0c;负责数据的输入、输出。

BLL层&#xff1a;逻辑层&#xff1b;为UI层提供一个统一的方法。

DAL层&#xff1a;数据操作层&#xff1b;操作数据库&#xff08;增、删、改、差&#xff09;

抽象工厂&#43;反射&#xff1a;使B层与D层成功解耦

 

三层架构的优点&#xff1a;1&#xff0c;大大降低了层与层之间的依赖&#xff0c;即降低了层之间的耦合&#xff1b;2&#xff0c;利于各层逻辑的复用&#xff0c;即增强了复用性&#xff1b;3&#xff0c;开发人员可以只关注整个系统的某一层&#xff0c;即有利于合作开发

抽象工厂&#43;反射&#43;配置文件的优点&#xff1a;

 

顺序图&#xff1a;

每个顺序图下都要对此解释说明&#xff0c;但是对此&#xff0c;我也拿捏不好度

 

总结&#xff1a;

总的来说此次收获还蛮大的&#xff0c;不论是技术上的提高&#xff0c;更是有思想上的升华。让我给自己准确定位。我那时候还抱怨保强师哥让我改的东西太多&#xff0c;别人都没改。但是&#xff0c;在最后一次验收时&#xff08;碰见佳翰的师父给佳翰第一次验收&#xff09;&#xff0c;保强师哥让我给佳翰的代码、文档、UML图提建议&#xff0c;我找出很多问题&#xff08;比如&#xff1a;命名不规范、代码注释太少、没有XML注释、图的注释太少、文档格式有问题、图和文档对应的不正确、文档内容不丰富...&#xff09;&#xff0c;当然很多问题都是我曾经犯过的。如果当时保强师哥不让我去规范我的代码、文档、图的话&#xff0c;也许我根本给佳翰找不出问题&#xff0c;没准看到佳翰的东西&#xff0c;还会跟他达成错误的共鸣&#xff0c;这样的话对我们都不是好事&#xff0c;不但没有提高&#xff0c;并且很有可能跑偏。

          保强师哥说的很对&#xff1a;我们将来不是要做码农的&#xff0c;现在就要以领导层的标准要求自己。

 



推荐阅读
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • eclipse学习(第三章:ssh中的Hibernate)——11.Hibernate的缓存(2级缓存,get和load)
    本文介绍了eclipse学习中的第三章内容,主要讲解了ssh中的Hibernate的缓存,包括2级缓存和get方法、load方法的区别。文章还涉及了项目实践和相关知识点的讲解。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • C语言注释工具及快捷键,删除C语言注释工具的实现思路
    本文介绍了C语言中注释的两种方式以及注释的作用,提供了删除C语言注释的工具实现思路,并分享了C语言中注释的快捷键操作方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 基于事件驱动的并发编程及其消息通信机制的同步与异步、阻塞与非阻塞、IO模型的分类
    本文介绍了基于事件驱动的并发编程中的消息通信机制,包括同步和异步的概念及其区别,阻塞和非阻塞的状态,以及IO模型的分类。同步阻塞IO、同步非阻塞IO、异步阻塞IO和异步非阻塞IO等不同的IO模型被详细解释。这些概念和模型对于理解并发编程中的消息通信和IO操作具有重要意义。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
author-avatar
书友54330525
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有