• 软件工程革命三部曲 —— 系统开发的业务部分重构在思考。



    最近客户跟不上我开发的系统思路,只要对系统降级。从分布式下降到统一网站处理。

    过程中,我在思考,这种工作如何才能不重复?

    现状:

    门店系统,分布在不同的店铺;网站;后台服务器。

    三大系统,各自负责对应的功能,或许会有部分的逻辑重叠。现在的问题是,如何设计架构。

    问题一:三大系统使用通用的dll类库。

    首先这个方式可以否定。虽然大家各自有逻辑重复,但是具体的实现却有细微差别。

    例如网站创建商品,后台服务器创建商品,由什么去创建这个是有差别的。

    虽然目前似乎是直接输入参数,方法去创建;但是未来可能扩展到通过表单审批创建等等。这种业务层次的逻辑不可能统一。

    结论:各自系统维护格子系统的业务逻辑代码。

    问题二:在业务领域是否需要分层次。

    我以前经常把业务代码写在controller,但是到了后来发现,这种controller根本没有重用的价值,基本上一个页面只会对应一个controller。

    即使有重用,也是因为页面发生了重用,而不是多个页面公用相同的controller。

    结论:controller要针对业务,而不是针对重用。

    问题三:controller是否必要?还是说放在codebehind里面?

    在codebehind里面,会有很多和页面交互的事件,如果把controller也放在这里地方,维护的时候会比较臃肿。如果放在单独的文件夹,维护又会麻烦,毕竟一个page对应一个controller。

    解决方法:使用partial class. 在c#里面,通过嵌套,可以实现逻辑代码也页面代码捆绑。 

    http://topic.csdn.net/u/20091203/11/77aa403d-3e11-40c2-bda8-1ee199ce8850.html 

      <ItemGroup> 
        <Compile Include="uip.cs"> 
        </Compile> 
        <Compile Include="uip.m1.cs"> 
          <DependentUpon>uip.cs </DependentUpon> 
        </Compile> 

    在asp.net里面,必须放在单独的文件夹。 

    结论:和业务相关的代码使用partial。不另外开controller。

    根据以上问题,最后回到一个方法:

    代码设计过程是没有问题,从文档、思路、抽象、大纲,到具体的代码片段。

    问题是,有了代码之后,隔一段时间需要再维护,这个时候的学习成本非常高。

    很多时候,实际代码和开发过程的文档有很大出入。如果有个工具可以链接两者,可以从代码去修改原有的设计文档,这样就非常方便了。

    2010-04-03 再次更新思路

     各自系统维护格子系统的业务逻辑代码,系统之间不重用业务代码。
     controller要针对查询,不处理业务。controller的划分根据查询对象不同划分。

     和业务相关的代码使用partial。如果在asp.net,则在相同文件新开一个partial class。

  • 相关阅读:
    kubeadm部署k8s v1.18.6版本
    harbor
    kubectl常用命令
    日常运维知识点
    CentOS6.5搭建oracle11g RAC
    linux(mint)下刻录镜像到光盘
    aspectj
    NoSql系列目录
    在线考试系统源码(题库抽题&自动阅卷打分)
    java问卷调查系统源码(java+mysql)
  • 原文地址:https://www.cnblogs.com/zc22/p/1703520.html
Copyright © 2020-2023  润新知