导读:电商业务与我们的生活息息相关,大家可能对电商多少也有一些了解,事实上,即使是一个最小化的电商系统,也依然是非常复杂的。
所以,我们先花一点时间,一起以一个创业公司的CTO的视角,设计一个最小化的电商系统,并以此理清电商系统的架构。让大家对电商系统的业务逻辑、系统架构、核心业务流程有一个基本的认知。
作者:李玥
来源:大数据DT(ID:hzdashuju)
新公司很快就成立了,你成了新公司的CTO。关于改变世界,目前唯一能确定的是,首先要做一个电商系统。具体要做成什么样,目前还不清楚。你需要与老板讨论业务需求。
你:“咱们要做的业务模式是C2C、B2C还是B2B呢?”
老板:“什么B?什么C?我不懂你说的那些技术名词。”
你:“这么说吧,你要做一个某宝网,还是某东网,还是某848网呢?”
老板:“不都是一样的吗?它们之间有什么区别?你赶紧做一个出来我看看不就知道了?!”
故事发展到这里,作为程序员的你是不是有一种似曾相识的感觉?现实就是,需求永远不明确,永远在变化,唯一不变的只有变化。优秀的程序员适应变化,并且拥抱变化。在需求还不太明确的情况下,比较可行的方案就是,首先搭建不太会发生变化的核心系统,然后尽量简单地实现一个最小化的系统,后续再逐步迭代和完善。
01 设计电商系统的核心流程
接下来,我们一起设计这个电商的核心系统。
遵照软件工程的一般规律,我们先从需求阶段开始。那么,需求分析应该如何做呢?理想情况下,系统分析师或产品经理应该负责完成需求分析的任务。但是,现实中绝大多数情况下,你得到的所谓的“需求”,很有可能就是一两句话。需求分析的工作最终往往是由开发者完成的。
很多项目交付以后,仍需要不断地进行修改和变更,用户不满意,开发者也很痛苦,造成这个问题的根本原因其实就是缺失了需求分析的步骤。所以,为了后续工作能够顺利开展,每位开发者都应该掌握一些用于需求分析的方法。
那么,开发者进行需求分析时应该做些什么呢?这里先不介绍那些做需求分析的方法和理论,只告诉你最重要、最关键的一个点:不要一上来就设计功能,而是先明确下面这两个问题的答案。
这个系统(或者功能)是给哪些人用的?
这些人使用这个系统是为了解决什么问题?
这两个问题的答案,我们称之为业务需求。那么,对于我们将要设计的电商系统,其业务需求又是什么呢?如果大家很熟悉电商的业务,那么回答这两个问题应该很容易。
第一个问题,电商系统是给哪些人用的?首先是买东西的人,即“用户”;其次是卖东西的人,即“运营”;还有一个非常重要的角色就是出钱的人,即“管理者”(请记住,在设计任何一个系统的时候,管理者的意见都是非常重要的)。综上所述,电商系统是面向用户、运营和管理者开发的。
第二个问题,用户、运营和管理者使用电商系统分别想要解决什么问题?这个也很容易回答,用户为了买东西,运营为了卖东西,管理者需要通过系统了解自己所得的