zoukankan      html  css  js  c++  java
  • 中小型MIS开发之我见(二)具体实施(下)

    承接上文:中小型MIS开发之我见(二)---具体实施(上)
     

    1、 构建系统架构---搭建具体系统架构

    由于工作中基本上采用的都是MVC三层的开发架构,所以比较了解,当然根据不同的情况可以采取不同的架构.我简单介绍一下MVC三层架构(仅代表个人意见)

    M,数据存储层: 这个不用说了吧,PowerDesigner直接把设计生成就可以了

    V,用户界面层: 由于本人做的基本都是B/S模式的程序,所以用户界面曾实际上就是以网页形式表现的,在用户界面层主要是表现数据和给用户使用,因此表现形式一定要友好,而且尽量减少用户的操作,是系统使用更加简单.另外在网页中可以使用JavaScript脚本,利用JavaScript的强大功能可以实现一些输入数据的简单验证和一些特效等.

    C,业务逻辑处理层: 这层可以说是整个系统的关键所在,我提供几种组合供大家参考: A 直接用SQL语句实现

         优点:简单,入门容易

         缺点:SQL语句比较烦琐,出错以后修改比较复杂,查找SQL语句比较麻烦

         个人意见:可以把所有的SQL语句都放到一个类文件或者xml配置文件里,便于查找,配合DAAB使用或者自己写公用的数据库访问类,效果比较好.

       B 用存储过程实现

         优点:简单,执行速度快,另外有生成存储过程的工具,使用比较方便

         缺点:当数据库表比较多的时候,存储过程数量会很多,另外数据的移植性不好,如果改变数据库从SQL Server2000 Oracle 存储过程就都废掉了.

         个人意见:使用生成工具来减轻工作量, 配合DAAB使用或者自己写公用的数据库访问类,效果比较好

       C 用一些开源的ORM实现

         优点:做好配置文件和类文件以后,使用很方便,不需要写大量的SQL语句和存储过程,数据库移植性比较好.

         缺点:培植比较复杂,入门比较难,另外现在的ORM软件中自身也存在一定的bug,形成一定的错误隐患,而且执行速度比较低.

         个人意见:利用ORM开源软件配置文件和类的生成工具,可以提高工作效率

    关于ORM我使用过SPL(SmartPersistenceLayer)NHibernate,个人认为SPL的面向对象的思想不是很成熟,但正是由于这个原因,使得它使用起来比较简单; NHibernate在面向对象方面做的不错,但配置起来比较麻烦,而且它的查询功能也不是很强大,也可能我研究还不是很深的原因吧.

        D 混合实现:ORM+DAAB+存储过程+视图

          之所以我会提出这种实现方式,我想利用ORM在保存,修改,删除方面的简便性,至于查询采用存储过程查询试图来解决,而存储过程使用DAAB来调用,这样可以减少很大一部分代码的编写,提高工作效率,总之是为了提高效率,缩短开发周期

    2、 开发系统---编写具体功能代码

    这就不用多说了吧,要有良好的编程习惯,好的代码应该是别人很容易看懂的代码.

    3、 测试代码---单元测试和整体功能测试

    测试是很重要的一个环节,在整个开发过程中都应该存在测试,在开发结束以后,更应该有一个系统的全面的对功能和代码的测试.

    4、 错误处理---错误跟踪和Bug修改

    ⑴错误捕获:A可以采用Log4 B 当然也可以自己写错误捕获类

    ⑵错误跟踪:可以使用BugTracker来跟踪测试中产生的Bug

    Bug修改:详细分析错误,了解错误出现的原因,分析错误产生的影响,估计修改所需要的时间,最后在修改.要先分析再修改,盲目的修改会是系统产生更多的错误.

    在整个系统开发过程中的每个环节都可能存在错误,我们要在每个环节都做好错误处理,对出现的错误进行详细的分析,找出原因,找出最好的修改方案.

    5、 系统运行安装---给客户安装程序,修改变更

    在试运行阶段还会存在很多的问题,有些是系统的Bug需要修改,有些则是需求的变更,那么就要分析客户的变更要求,要坚持尽量少改动来满足客户合理的变更的原则.

    6、 结项---文档整理和其他相关工作

          这一阶段其实也是很重要的,整理好开发过程中的文档对以后对系统的维护有着致关重要的作用,也许过了一段时间由于某些原因可能开发者离开的原来的岗位,那么新来的人要想了解原系统,维护原系统就只能依靠这些文档.另外在文档整理过程中也可以总结一下项目经验,在以后开发过程中发挥好的经验,屏弃错误的做法.

  • 相关阅读:
    docker in docker
    docker社区的geodata/gdal镜像dockerfile分析
    howto:在构建基于debian的docker基础镜像时,更换国内包源
    使用Visual Studio 2017构建.Net Core的Docker镜像
    步骤:asp.net core中使用identifyserver4颁发令牌
    部署:阿里云ECS部署Docker CE
    问题:调用 ASP.Net Core WebAPI的HTTP POST方法时,从 [FromBody] 中读取的 MongoDB GeoJsonObjectModel成员总是null
    《.NET 微服务:适用于容器化 .NET 应用的体系结构》关键结论
    SQL数据库注入防范 ASP.NET Globle警告
    数据库中的恶意字符批处理
  • 原文地址:https://www.cnblogs.com/xh831213/p/361428.html
Copyright © 2011-2022 走看看