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


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

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

现状:

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

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

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

原文地址:https://www.cnblogs.com/zc22/p/1703520.html