做电子商务网站,一般都涉及到前后台,前台是给用户用的(营销+销售系统),后台给公司员工用的(业务支撑系统)。
在项目开发初期,技术负责人往往倾向于,将它们混在一起。我曾经也是这样,但问题在后期就慢慢凸显了。
我曾经写过电子商务网站和企业应用开发的区别(
1 2),和这个一起看,应该会比较好理解我的观点。
一、从系统部署的角度考虑
在项目开发阶段,因为基本上很少涉及部署(迁移到产品环境),所以部署问题目前没有凸显。
当网站上线后,在网站运营阶段(即系统维护阶段),特别是运营一个月后,部署的效率和稳定性,会越来越影响到网站的需求响应性(解决一个网站bug的速度)。
三年前,我开发公司网站时,也是将前后台合并到一个工程,最后还是不得不分离,只通过数据库作为前后台的桥梁。因为你不知道调整一个前台小功能,是否会影响后台(回归测试?);你也不知道前台部署好后,后台是否会受到影响。
网站上线后,前台需求的变更还是很频繁(改进用户体验),因为绝大多数时候是改变页面展现,并不需要后台做相应变更。把后台代码重新部署一遍只会带来隐患。
网站重新部署,一般是选择凌晨6点左右。而后台部署,只要不是在白天工作时间就行了。
网站前台对性能要求很高,系统很可能会因为这个重构。但后台系统,用户数量很少,几乎没有性能要求。
顺便说一下,系统会有大量的Job,如统计、价格更新,这类模块建议不要和Web一起,应该单独部署。
二、从软件过程角度
因为网站前台和后台业务系统,面向的是完全不同的两类用户(消费者和企业员工),它们的需求和需求获取过程完全不同。
对于前台,界面原型即需求,页面/用户行为驱动开发。对于后台,是数据和流程驱动开发:Table+Form+Flow。
也就是说,前台和后台,是两种需求分析和设计人员,甚至是两种设计师(后台的界面不要求美观,很死板,但前台对设计师要求很高),再或者是两种开发人员(如前台PHP,后台Flex+Java)。
公司业务人员很容易理清后台业务,但对前台用户的心理和行为的分析,一般都不能胜任。这也是为什么我要将网站需求分析和设计的工作全部包揽。
三年前,我也是让业务人员设计网站模块,一塌糊涂。最后还是我自己设计全部界面原型,只需要征求业务人员的意见,他们不写任何文档。
面向互联网用户的软件开发方法学,和面向企业用户的开发方法学,有着天壤之别。但目前项目组是用同一种模式(企业应用开发过程),这是很危险和低效的。目前在行业里还没有成熟的互联网软件开发方法学,只有做过两类开发,才能总结出经验和教训。
三、从软件开发角度
如果说选择将前后台合并,是因为代码重用。那么重用的也只是一些简单的Domain(pojo),如Book类。但对于后台,用到Book类,是比较纯粹的Book(如图书管理),但里面却夹杂着大量的无关的、前台用到的属性,如评分、用户留言、评价、相关图书、其它用户购买过的图书等等,导致后台维护起来非常困难。
像用户收藏夹,这一很复杂的核心功能,和后台业务系统几乎没有关系。
如果说前后台只是重用最简单的Domain,那这种技术层面的重用又有多大价值呢?像图书查询,前台和后台的业务逻辑、复杂度完全不是一个级别(前台更复杂),没有任何的重用性。
前台几乎都是数据展现(无状态操作),后台主要是数据操作。也就是说,你前台大量的代码都是查询,和后台的写入几乎没关系,不存在重用性。
像基础代码库,如用户性别、仓库城市等,主要是后台,前台只是用到其中非常小一个子集,完全可以复制方式。
另外,前台不建议用Hibernate,因为它的优势在数据持久化,也就是增删改查的“增删改”,对于查(List+Detail),还是原生sql便捷,不拖泥带水。
我上面只是抛砖引玉,
很想听听大家的意见,想必很多人在互联网公司做应用开发,你们或你们公司大牛是如何处理这个问题的?
(广告)如果你对大型电子商务系统的设计和开发,有浓厚的兴趣,不妨看看
这里。
分享到:
相关推荐
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的图书电子商务网站,内含完整源代码,数据库脚本,论文答辩,视频教程 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的旅游电子商务预订系统,内含完整源代码,数据库脚本 厦门旅游电子商务预订系统 软件简介 基于Vue+SpringBoot+MySQL的厦门旅游电子商务预订系统包含景点类型...
网络与通信:数据传输、信号处理、网络协议、网络与通信硬件、网络安全网络与通信是一个非常广泛的领域,它涉及到计算机科学、电子工程、数学等多个学科的知识。 云计算与大数据:数据集、包括云计算平台、大数据...
该系统功能全面,涵盖了用户注册与登录、商品浏览、购物车管理、订单处理、支付接口整合、后台管理等电子商务网站的基本模块。代码结构清晰,注释详细,便于初学者快速把握电子商务网站的开发流程和关键技术点。同时...
带有国际范儿的前后台界面样式,让您一见舒心。严谨的功能结合、贴心的提示提醒、全面的学习教程,让您一用放心。 DBShop功能简介: 1、在线更新:在线系统更新和在线模板安装与更新,简单、方便、快捷,省却了手动...
DSSHOP电商商城前后端分离架构,VUE2.0+Laravel7,免费开源可商用。说明如果因网络原因无法下载,可通过下载因版本更新迭代比较快,文档可能存在没有涉及的面,请自行阅读源码已验证版本(经测试后可以正常安装的版本...
DBShop电子商务系统,在网上建立自己的店铺、自己的销售网站的不二之选。强大的后台管理及简单的操作流程,让您一见倾心。带有国际范儿的前后台界面样式,让您一见舒心。严谨的功能结合、贴心的提示提醒、全面的学习...
同时系统也实现了前后台完全分离,静态文件和动态程序完全分离,并且针对常见安全漏洞采取了防范措施。数据库方面我们采用了最优化的程序算法、高速的缓存机制,支持千万级数据量和分布式部署等系列实用与高效的功能...
同时系统也实现了前后台完全分离,静态文件和动态程序完全分离,并且针对常见安全漏洞采取了防范措施。数据库方面我们采用了最优化的程序算法、高速的缓存机制,支持千万级数据量和分布式部署等系列实用与高效的功能...
系统前后台都参考和采用了W3C标准设计,实现了对 IE、Firefox、谷歌等多个主流浏览器的兼容;此外,BizIdea网店系统页面和数据库均采用UTF-8编码,可同时支持所有语种,为多语言环境的应用提供了便利。
适用于各类进行直销/分销电子商务运营的传统生产企业和销售/贸易型公司进行专业电子商务网站构建。 同时,千博企业建站系统(律师/学校/医院网站系统)灵活的、可伸缩的产品架构、强健的系统内核、严谨的安全策略、...
适用于各类进行直销/分销电子商务运营的传统生产企业和销售/贸易型公司进行专业电子商务网站构建。 同时,千博企业建站系统灵活的、可伸缩的产品架构、强健的系统内核、严谨的安全策略、灵活的内置模型、高效信息...
本资源提供了一套基于Python语言开发的51商城项目的完整源代码与...该商城系统具备前后台分离架构,涵盖商品展示、购物车管理、订单处理、用户账户管理等核心功能模块,适用于教学、研究或作为项目原型进行定制化开发。
Web应用程序:作为众多网站和Web服务(如电子商务、社交媒体、内容管理系统等)的后台数据库。 数据分析与报表:与数据仓库技术结合,支持OLAP(在线分析处理)和数据可视化。 移动应用与物联网(IoT):作为数据...
CRMEB Java版商城系统是一款基于Java + Uni-app 开发的新零售社交电商系统,能够真正帮助企业基于微信公众号、小程序、移动端等,,实现会员管理、数据分析,精准营销的电子商务管理系统。> 11:Vue表单生成控件,拖拽...
以淘宝、卓越、 当当为代表的一系列电子商务网站迅速的成长起来。电子商务作为一种独立的经济形态 ,已经初具规模。在这种情况下在线订餐网作为一个电子商务的一个分支却并没有发展 起来。究其原因就是没有一个大型...
后台管理系统(前后端分离) 1.1 前端(leyou-manage-web文件): 主要涉及es6,vuejs vuetify webpack 实现热部署;主要功能实现分类管理、品牌管理、商品列表、规格参数; 1.2 后端:spring cloud 微服务架构(基础...
项目致力于打造一个完整的电商系统,采用现阶段流行技术来实现,采用前后端分离继续编写。 项目API接口文档 文档地址: 项目介绍 gulimall(谷粒商城) 项目是一套电商项目,包括前台商城系统以及后台管理系统,基于...
B2B2C是一种电子商务类型的商业模式,B是BUSINESS的简称,C是CUSTOMER的简称,第一个B指的是商品或服务的供应商,第二个B指的是从事电子商务的企业,C则是表示消费者。 2 架构介绍 目前企业中开发的项目,大...