自定义单一模块Model类
初涉电子商务系统开发随想--第一篇-自定义单一模块Model类
最近正在参与一个电子商务网站的开发工作,前台似常见的京东,凡客后台涉及到订单的处理,产品的属性设置,厂家的供货商及自己的erp信息的开发与整合,
由于之前做的项目业务没有这么广泛,之前大多做的是企业内部的Oa,供应链,知识管理,文件管理,协同办公,爬虫系统等等;所以想记录一些关于本次开发的想法与感悟,供园友们交流学习,一起在电商系统的架构与开发中共同学习与提高,最后目标开发一套电子商务系统代码生成器,以插件的方式开发电子商务系统;
1.首先说一下,从企业软件系统转到网站业务开发的一些感想:
企业软件 (如供应链)会涉及到很多企业现有的架构及数据,系统与数据之间的耦合是比较严重的,比如一个产品的生命周期会涉及到 产品属性设置,条码,库存的入库;库存时会有,维保,残次品,条码更改,库存盘点,货位,仓储变更;客户维保时会涉及到,货品替换,返厂修补,条码等;产品本身又涉及到财务,订单,审核,权限等;
可能一个产品的状态更改会涉及到10几个表中字段的变更;但是很多模块又有绝大部分的相似性,如:维保模块:申请单,审核,审核确认单,出库,状态变更,维保过程,返还,审核,入库,状态变更;而残次品模块;退货入库模块与其有90%左右的相似性,我们可以通过接口的约定显示他们的一致性。需要做得是对象属性的控制;
鉴于企业内部系统的并发数少的特点,在系统性能上,并未深究,更多的时间是系统模块的分割,对象状态更改的实施与监听。
网站系统 相对于企业内部系统的特点是业务逻辑耦合并不是很严重,考虑到用户体验及大数据的压力时,网站的数据持久化,异步,缓存性的模块的搭建则更加重要。
网站的另一个较大的特点是功能变化较频繁,比如新建一个用户收藏功能,新建一个产品推荐功能等,这些相对于企业内部系统的自下而上的系统搭建方式来说变化过于频繁了。可我们深究会发现新增或修改的功能模块与之前的系统主平台耦合并不是很严重,只是属于主平台上层的一个产物;
综上所述,我们在主平台的基础之上提供一个server层,应对变化频繁,却又影响主平台不大的情况下,我们可以依靠脚步语言“胶水”的特性建立相对应的自定义单一模块,处理相对应的单一功能:
如:购物车模块
一个购物车会涉及到Users,Product
我们可建立针对于购物车的自定义model:ShopCar
public ShopCar
{
public Users users{get;set;}
public List<Product> ProductList{get;set;}
}
public class ShopCarManager
{
//一些方法
}
这个Servicer层在,业务逻辑层之上,独立于主平台,维护更改方便,可以说实现了与主平台的解耦,可复用于其他项目之中;
分类: asp.net , 架构浅尝 , 设计模式
作者: Leo_wl
出处: http://www.cnblogs.com/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息