zoukankan      html  css  js  c++  java
  • 软件工程革命三部曲 —— 系统开发的业务部分重构在思考。


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

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

    现状:

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

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

    问题一:三大系统使用通用的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。

  • 相关阅读:
    POJ 1066 Treasure Hunt (线段相交)
    玲珑杯 第4次 String cut(暴力字符串)
    POJ 2653 Pick-up sticks (线段相交)
    HDU 3535 AreYouBusy (混合背包)
    HDU 1712 ACboy needs your help(分组背包)
    HDU 1074 Doing Homework (状压dp)
    POJ 1635 Subway tree systems (树的最小表示法)
    HDU 汉诺塔系列
    HYSBZ 1500 维修数列(伸展树模板)
    photoshop 快速切图
  • 原文地址:https://www.cnblogs.com/zc22/p/1703520.html
Copyright © 2011-2022 走看看