做电子商务网站,一般都涉及到前后台,前台是给用户用的(营销+销售系统),后台给公司员工用的(业务支撑系统)。
在项目开发初期,技术负责人往往倾向于,将它们混在一起。我曾经也是这样,但问题在后期就慢慢凸显了。
我曾经写过电子商务网站和企业应用开发的区别(
1 2),和这个一起看,应该会比较好理解我的观点。
一、从系统部署的角度考虑
在项目开发阶段,因为基本上很少涉及部署(迁移到产品环境),所以部署问题目前没有凸显。
当网站上线后,在网站运营阶段(即系统维护阶段),特别是运营一个月后,部署的效率和稳定性,会越来越影响到网站的需求响应性(解决一个网站bug的速度)。
三年前,我开发公司网站时,也是将前后台合并到一个工程,最后还是不得不分离,只通过数据库作为前后台的桥梁。因为你不知道调整一个前台小功能,是否会影响后台(回归测试?);你也不知道前台部署好后,后台是否会受到影响。
网站上线后,前台需求的变更还是很频繁(改进用户体验),因为绝大多数时候是改变页面展现,并不需要后台做相应变更。把后台代码重新部署一遍只会带来隐患。
网站重新部署,一般是选择凌晨6点左右。而后台部署,只要不是在白天工作时间就行了。
网站前台对性能要求很高,系统很可能会因为这个重构。但后台系统,用户数量很少,几乎没有性能要求。
顺便说一下,系统会有大量的Job,如统计、价格更新,这类模块建议不要和Web一起,应该单独部署。
二、从软件过程角度
因为网站前台和后台业务系统,面向的是完全不同的两类用户(消费者和企业员工),它们的需求和需求获取过程完全不同。
对于前台,界面原型即需求,页面/用户行为驱动开发。对于后台,是数据和流程驱动开发:Table+Form+Flow。
也就是说,前台和后台,是两种需求分析和设计人员,甚至是两种设计师(后台的界面不要求美观,很死板,但前台对设计师要求很高),再或者是两种开发人员(如前台PHP,后台Flex+Java)。
公司业务人员很容易理清后台业务,但对前台用户的心理和行为的分析,一般都不能胜任。这也是为什么我要将网站需求分析和设计的工作全部包揽。
三年前,我也是让业务人员设计网站模块,一塌糊涂。最后还是我自己设计全部界面原型,只需要征求业务人员的意见,他们不写任何文档。
面向互联网用户的软件开发方法学,和面向企业用户的开发方法学,有着天壤之别。但目前项目组是用同一种模式(企业应用开发过程),这是很危险和低效的。目前在行业里还没有成熟的互联网软件开发方法学,只有做过两类开发,才能总结出经验和教训。
三、从软件开发角度
如果说选择将前后台合并,是因为代码重用。那么重用的也只是一些简单的Domain(pojo),如Book类。但对于后台,用到Book类,是比较纯粹的Book(如图书管理),但里面却夹杂着大量的无关的、前台用到的属性,如评分、用户留言、评价、相关图书、其它用户购买过的图书等等,导致后台维护起来非常困难。
像用户收藏夹,这一很复杂的核心功能,和后台业务系统几乎没有关系。
如果说前后台只是重用最简单的Domain,那这种技术层面的重用又有多大价值呢?像图书查询,前台和后台的业务逻辑、复杂度完全不是一个级别(前台更复杂),没有任何的重用性。
前台几乎都是数据展现(无状态操作),后台主要是数据操作。也就是说,你前台大量的代码都是查询,和后台的写入几乎没关系,不存在重用性。
像基础代码库,如用户性别、仓库城市等,主要是后台,前台只是用到其中非常小一个子集,完全可以复制方式。
另外,前台不建议用Hibernate,因为它的优势在数据持久化,也就是增删改查的“增删改”,对于查(List+Detail),还是原生sql便捷,不拖泥带水。
我上面只是抛砖引玉,
很想听听大家的意见,想必很多人在互联网公司做应用开发,你们或你们公司大牛是如何处理这个问题的?
(广告)如果你对大型电子商务系统的设计和开发,有浓厚的兴趣,不妨看看
这里。
分享到:
相关推荐
【标题】:“电子商务源码前后台” 这个标题表明我们讨论的是一个完整的电子商务系统,它包含了前端用户界面和后端管理平台的源代码。通常,这样的系统由Java编程语言开发,利用了Spring、Struts和Hibernate(SSH)...
总结起来,"电子商务网站系统(包括前台+后台)"利用JSP、Servlet和JavaBean实现了前后台的完整功能,提供了一个用户友好的界面和强大的后台管理系统。通过解压并分析"myshop"文件,我们可以深入学习这些技术在实际...
"基于Spring Boot的前后端分离的电子商务网站的设计与实现" 本文旨在设计和实现一个基于Spring Boot的前后端分离的电子商务网站,旨在提供一个易维护、易开发、简洁易用、用户体验良好的在线电子商务平台。下面是该...
ASP.NET电子商务网站后台模板是一个基于ASP.NET技术构建的框架,主要设计用于开发高效、安全且易于维护的在线商业平台。这个框架提供了一套基础结构,帮助开发者快速搭建和定制电子商务网站的后台管理系统,从而节省...
《电子商务系统:从前台到后台的深度解析》 在当今数字化时代,电子商务系统已经成为企业不可或缺的一部分,特别是像“李宁”这样的知名品牌。本系统旨在模拟李宁官网的电子商务流程,涵盖了购物车、会员管理和后台...
它是一个简单的电子商务后台,主要用于处理商品管理、订单处理、用户管理等基础功能,旨在让学生了解和掌握实际电子商务网站运作的基础架构和逻辑。 在【标签】中提到了"PHP,后台",这表明该项目的核心技术是PHP...
毕业设计,基于SpringBoot+Vue+MySql开发的前后端分离的图书电子商务网站,内含完整源代码,数据库脚本,论文答辩,视频教程 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着移动...
【PHP电子商务网站开发】 在当前数字化时代,电子商务已经成为企业与消费者之间的重要桥梁,尤其是在网络技术日益成熟的背景下。PHP作为一种开放源代码的服务器端脚本语言,因其灵活性、易用性和跨平台特性,常被...
基于springboot+vue前后端分离,图书电子商务网站(源码+Mysql数据库+PPT+视频+教程),高分项目,开箱即用(毕业设计)(课堂设计) 社会发展日新月异,用计算机应用实现数据管理功能已经算是很完善的了,但是随着...
《创意家居电子商务网站建设》这篇论文主要探讨了如何利用ASP语言、Access数据库以及IIS服务器构建一个基于B/S架构的电子商务网站。在这个过程中,作者详细阐述了网站从设计到实现的各项关键步骤,旨在为家居产品的...
综合以上信息,我们可以推断出这个项目是一个基于网狐技术栈(可能是某种特定的开发框架或工具集)的电商解决方案,具有成熟的前后台分离设计。前端部分提供了用户友好的商城体验,而后台管理系统则为管理员提供了...
结合Django和Vue.js进行电子商务网站的开发,主要考虑如何利用这两款工具实现前后端分离架构下的高效协作,以及在此基础上如何创新性地解决电子商务领域面临的关键问题。这些关键问题包括个性化推荐、智能搜索、社交...
前后台分离的设计模式提高了系统的可维护性和用户体验。 5. 实现了购物车功能,允许用户添加、修改和删除商品,计算总价,并能将购物车中的商品转化为订单。购物车模块是电子商务系统的关键部分,直接影响用户的...
一个优秀的电子商务网站不仅需要具备强大的后台支撑,还需要有一个友好且高效的前端交互界面。 1. **前后端分离**:将前端展示与后端逻辑相分离,前端负责页面渲染和用户交互,后端提供API接口支持。 2. **响应式...
考虑到“图书电子商务网站”的标题,该项目可能还包含了图书展示、搜索、推荐系统、用户评价、支付处理等电子商务网站特有的功能。 项目名称中包含的“springboot170”可能是一个版本号或是项目代号,而...
实现前后台分离,保证系统的可维护性和扩展性;运用现代化的技术框架,如MVC模式,确保系统的灵活性和可复用性。 在开发工具与相关技术方面,本文选择了JAVA语言作为主要编程语言,因其具有跨平台、安全性强的特点...
在电子商务领域,网站设计与规划是至关重要的环节,它直接影响着企业的在线业务表现和用户体验。本文将详述网上购物系统的设计与规划过程,探讨其重要性、目标、技术和主要架构。 首先,网上购物系统的发展背景及其...
计算机毕业设计中的“基于SpringBoot+Vue前后端分离的电子商务库存管理系统2024年版”项目,展示了如何利用现代Web开发技术,构建一个功能齐全、用户友好、高效率的电子商务后台管理解决方案。通过这个系统的实现,...
通过这个项目,你可以深入理解Structs框架在实际开发中的应用,同时学习到如何构建一个完整的电子商务网站,涵盖从用户交互到后台数据处理的各个层面。无论是对于初学者还是有经验的开发者,都是一次宝贵的学习和...
总结来说,"最新商城购物系统HTML模版源码"涵盖的知识点包括HTML5结构设计、CSS3样式美化、JavaScript交互实现、前后台分离开发、服务器端语言应用、数据库设计与管理、安全防护以及SEO优化等。开发者需要具备这些...