如何模块化设计B端系统?

<p><img src="https://upload-images.jianshu.io/upload_images/6034320-e5856ea7b57228f0" /></p><p><span><strong>前言:</strong></span></p><p><span>咱们都希望能做出一个<span>可复用性强、灵活性好的B端</span>系统出来。</span></p><p><span>
</span></p><p><span>那么,模块化设计就是其中一个很好的方法。</span>
</p><p><span>
</span></p><p><span><strong>本文目录:</strong></span></p><p><span>一、为什么要模块化设计?</span></p><p><span>二、适不适合模块化设计?</span>
</p><p><span>三、如何模块化设计B端系统?</span>
</p><p>
</p><p><span>
</span></p><p><span><strong><span>一、为什么要模块化设计?</span></strong></span></p><p><span>希望减少重复性造轮子的可能,抽离出共通性、形成标准化,最终达到减少人力物力的大量浪费,提高业绩的同时还减少了成本开支,何乐而不为?</span></p><p><span>
</span></p><p><span>最近鼓吹得如日中天的中台概念、流行了许久的敏捷开发,无不都是为了此目的。</span></p><p><span>
</span></p><p><span>当前</span><span><span>较为普遍的<span>两种</span></span>方法:接口式开发、模块化设计。</span></p><p><span>
</span></p><p><span><span>1、接口式开发</span>:开发角度</span></p><p><span>写代码的同学都知道,代码要讲究可复用性、灵活性。</span></p><p><span>
</span></p><p><span>前端开发与后端开发,采用接口式方法来进行信息之间的交互。</span></p><p><span>案例:我要登录淘宝网站。</span></p><p><img class="rich_pages" data-backh="235" data-backw="574" data-before-oversubscription-url="https://mmbiz.qlogo.cn/sz_mmbiz_png/eB6NEyewMq9bBmsovfVurcybyIKXEQ5cOjg5jRdPMxJsCGibVTia2qZY36ODRH2nq9s3qMiaRojsco30tkoJibEjicw/0?wx_fmt=png" data-ratio="0.40866035182679294" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-982632dab1f24685.png" data-type="png" data-w="739"></p><p>
</p><p><span>上下游系统之间,跨系统之间,也大多采用接口式方法进行信息传递。</span></p><p>
</p><p><img class="rich_pages" data-ratio="0.38821954484605087" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-e71acec23cbe9a09.png" data-type="png" data-w="747"></p><p><span>此文,咱们简单聊聊B端系统模块化设计的好处。</span></p><p>
</p><p><span>2、模块化设计:</span><span>产品设计角度</span>
</p><p><span>模块化设计,专业术语讲是为了我们做的产品,将来灵活性强、扩展性好。不需要开发修改代码,就可以实现部分新的业务逻辑。</span>
</p><p>
</p><p><span>通俗点讲,就是堆积木。</span><span>我们可以将任意小方块,任意拼凑成我们想要的形状,从而达到目的。</span></p><p>
</p><p><span>不同的系统,不同的业务,要根据实际情况分析,这里我<span>以电商系统为例,总结了些许模块化设计经验,分享一二。不到之处,还请大佬们批评指正。</span></span></p><p>
</p><p><span><strong><span><strong><span>二、</span></strong><span>适不适合模块化设计?</span></span></strong></span>
</p><p><span><strong><span>
</span></strong></span></p><p><span>1、搞清楚事务本质。
</span></p><p><span>首先,一定要搞清楚为什么要去模块化设计,千万不要为了模块化而模块化,这个是很大的忌讳。模块化设计,很多时候短期是看不到任何效果的,而且让系统变得更麻烦。
</span></p><p><span>
</span></p><p><span>以添加商品为例:</span><span>要新建一个商品,必不可少的有商品基本信息、商品类目、商品属性信息等等。</span></p><p>
</p><p><span>如果想简单点设计:1、点击添加商品按钮,进入添加商品页面。2、在固定表单中,填写商品所有信息。3、点击保存按钮。</span>
</p><p>
</p><p><span>
</span></p><p><span>添加商品,本就不是很复杂的事,此简单的方案不是不可行。只是不利于系统的可扩展性和灵活性。</span></p><p><span>
</span></p><p><span>为什么?在固定的表单中填写商品所有信息,你就能保证所有的商品都是一样的业务逻辑,一样的商品信息吗?根本保证不了,那么一旦做成固定模板,系统后期就要不断的根据新的业务逻辑和商品去不断的改代码来实现业务方的需求。</span></p><p><span>
</span></p><p><span>那么,有没有更好的方案?模块化设计。</span></p><p><span>回到问题本质:想成功添加一个商品到商品库。</span></p><p><span>方案:将商品信息打散,将其拆分为三大类信息组合:商品共性信息(所有的商品都有的属性)、商品类目、动态属性(区分商品唯一性的属性)。
</span></p><p><span>
</span></p><p><span>2、<span>理清父子关联关系。</span></span></p><p><span>既然要模块化,那么肯定就会出现一层又一层的父子关联关系。</span>
</p><p><span><img class="rich_pages" data-ratio="0.10488505747126436" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-b9cb79cef8009408.png" data-type="png" data-w="696"></span></p><p><span>说明:要想成功添加A商品,必须关联某个A商品类目。A商品类目必须关联某个A模板,A模板必须关联对应属性。</span></p><p><span>
</span></p><p><span>属性管理:管理了商品的所有类别的属性信息,一定要做好分类。比如:关键属性、规格属性、非关键属性等等。
</span></p><p><span>
</span></p><p><span>模板管理:不同的商品,可能由不同的属性构成。那么我将属性形成一个又一个模板,就可以灵活的去满足各种类别的商品。
</span></p><p><span>
</span></p><p><span>商品类目:商品的分类管理。所有的商品,肯定有自己的分类,也就是商品类目。同一类商品归为一类,便于商品的维护和管理。
</span></p><p><span>
</span></p><p><span>商品管理:所有商品的管理。现在要添加一个商品,通过模板化设计,就变得非常灵活。要想添加商品:1、点击添加按钮。2、选择A商品类目。3、填写A类目关联的模板A中对应的属性信息。4、保存。
</span></p><p><span>
</span></p><p><span>模板设计的好处就是,我可以随时更换关联关系,也可以随时在下一层关联关系中做任何CRUD操作却不影响当前层级新的数据。</span>
</p><p><span>
</span></p><p><span><strong><span>三、如何模块化设计B端系统?</span></strong></span>
</p><p><span>
</span></p><p><span>记住我一句万变不离其宗的话:</span>
</p><p><span><strong><span>所有的系统设计无非就是对数据库中各种表格的CRUD(增删改查)。</span></strong></span></p><p><span><strong><span>
</span></strong></span></p><p><span>别把后台系统设计想的那么玄乎,没有那么复杂。咱之所以觉得复杂,是因为咱还不够熟悉业务,不清楚正向逆向各种流程,并不是系统设计难。</span></p><p>
</p><p><span>1、功能结构图:有哪些功能、页面、按钮</span>
</p><p><span>说明:</span>
</p><p><span>1、下图是我认真画的真实数据,认真观察后发现没有?哪个版块的管理离开的了CRUD?先讲页面的根(CRUD)想好,什么批量克隆、启用、停用无非添砖加瓦而已。</span></p><p>
</p><p><span>2、功能结构图也就是功能列表,只是功能列表会描述的更细,而结构图只是列出大的框架,方便参阅,没你想象的那么复杂。</span></p><p>
</p><p><span>3、虽不复杂,但每一层的关联关系可别忘记加上,这可是咱这篇模块化设计的核心。</span></p><p><img class="rich_pages js_insertlocalimg" data-backh="844" data-backw="574" data-before-oversubscription-url="https://mmbiz.qlogo.cn/sz_mmbiz_png/eB6NEyewMqibw6WdlACQ0PySoUWAia7VXCUvYwVRkbiaLW9vibVrhdc4QtvlzMmmzrjcX6ulTZHJbCLx7CEztE8PCQ/0?wx_fmt=png" data-ratio="1.4703030303030302" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-bf3e943236257fff.png" data-type="png" data-w="825"></p><p><span>2、信息结构图:有哪些对象和字段</span></p><p><span>信息结构图:将你看到的页面信息,抽象处理到一个对象的维度,然后把同一个对象的信息放在一起。</span></p><p><span>
</span></p><p><span>咱们产品人画的信息结构图,不需要与开发同学设计的数据库表结构一模一样,按你的理解将其以单个对象维度抽离出来即可。</span></p><p><span><img class="rich_pages js_insertlocalimg" data-backh="1006" data-backw="574" data-before-oversubscription-url="https://mmbiz.qpic.cn/sz_mmbiz_png/eB6NEyewMqibw6WdlACQ0PySoUWAia7VXCmXqjLj5gTWGzHwqIDwfPhYsZR2OiaLEWGfSrlVdZcQpJp5ah3c3Yb1w/640?wx_fmt=png" data-ratio="1.7526881720430108" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-9b2f3c9e7668696c.png" data-type="png" data-w="744"></span></p><p><span>
</span></p><p><span>有没有觉得设计信息结构图很难,根本无从下手,不知所措?根本原因在哪?</span>
</p><p>
</p><p><span>
</span></p><p><span>在于咱们脑海中没有面向对象的概念和对数据库表结构的理解。</span>
</p><p><span>
</span></p><p><span>什么叫对象?万事万物,皆为对象。你,我,鼠标,键盘,电脑都是对象。</span></p><p>
</p><p><span>对象:指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。方法是指对象能够进行的操作,方法同时还有另外一个名称,叫做函数。方法是类中的定义函数,其具体的作用就是对对象进行描述操作</span>。
</p><p>
</p><p>对象解析:对象由属性和方法构成。private开头的全是对象应有的属性,也就是咱们看到的信息架构图中,员工对应的信息。至于方法,咱们产品经理不需要关注,知道有就好。</p><p><img class="rich_pages" data-backh="288" data-backw="517" data-before-oversubscription-url="https://mmbiz.qlogo.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2P3NbCGA2wxZqVHh8BpqWMShA70dyPTeYlmMibFVJRg9WxfPFibyKGhpQ/0?wx_fmt=png" data-oversubscription-url="http://mmbiz.qpic.cn/sz_mmbiz_jpg/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2nf7dIphyFPblNh74b4iaruUmb7195mt3geJzQpOyyfJ61P8HS4GFEYw/0?wx_fmt=jpeg" data-ratio="0.5570599613152805" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-97d39cbc6d5b54d4.png" data-type="jpeg" data-w="517"></p><p>
</p><p>
</p><p>表结构:表名+字段。详情可以看我另一篇文章的文末,这里不再说了哈!</p><p>(</p><p>后台系统架构设计-商务咨询系统</p>)
<p></p><p>
</p><p><span>表解析:员工信息表用来储存员工的基本信息。一般由表明+字段构成,我们产品人不需要去关注数据类型,是否主键这些信息。</span></p><p><span><img class="rich_pages" data-backh="377" data-backw="574" data-before-oversubscription-url="https://mmbiz.qpic.cn/sz_mmbiz_jpg/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG22knjA3tbBUusEDNicNY9toVqOzx52zungzgsSSdINhPtnJf5WdJJ0zQ/640?wx_fmt=jpeg" data-oversubscription-url="http://mmbiz.qpic.cn/sz_mmbiz_jpg/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG22knjA3tbBUusEDNicNY9toVqOzx52zungzgsSSdINhPtnJf5WdJJ0zQ/0?wx_fmt=jpeg" data-ratio="0.6575682382133995" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-426496498fdfa462.png" data-type="jpeg" data-w="403"></span></p><p><img class="rich_pages" data-backh="215" data-backw="574" data-before-oversubscription-url="https://mmbiz.qpic.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2jMjVBwPWsIlziaN7TkFibmnhJKGicVDRweibkD8hYUtFePTTYpY6yBicZ9Q/640?wx_fmt=png" data-oversubscription-url="http://mmbiz.qpic.cn/sz_mmbiz_jpg/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG21e997Notp48Q21Cw5JY0aktuK1IYU3suyteJd5jbskiamibgtboLwBNg/0?wx_fmt=jpeg" data-ratio="0.3748378728923476" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-268d97c09a77bb2c.png" data-type="jpeg" data-w="771"></p><p>
</p><p><span>3、原型图:系统长什么样,有哪些规则和交互效果。</span>
</p><p>
</p><p>PS:原型只是案例展示,并不是真实功能,有很多按钮和规则,都没有写入,仅供参考。</p><p>
</p><p>如果你真的涉及想用模块化设计,需要找人交流的时候,记得找我哟!
</p><p>
</p><p><span>属性管理:</span>
</p><p><img class="rich_pages" data-ratio="0.32322175732217573" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-7373b5e64f5e2094.png" data-type="png" data-w="956" data-backw="574" data-backh="186" data-before-oversubscription-url="https://mmbiz.qpic.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2TWj4ia3mJ1u5yyPiaRribJ6NlyxpHl4eA5KibaL6eW9SfT5kSXwcXWYfEA/640?wx_fmt=png"></p><p>说明:</p><p>1、属性分类与属性分组是不同概念。属性分组是将一类属性进行分组,是站在业务维度划分。属性分类,是站在产品设计维度分析。</p><p>
</p><p>模板管理:</p><p><img class="rich_pages" data-ratio="0.3933333333333333" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-02fab9dad266dc9b.png" data-type="png" data-w="750" data-backw="574" data-backh="226" data-before-oversubscription-url="https://mmbiz.qpic.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG24zV0WhAhCte5I4Ciawd3kAXTuD1NdMKOGLMibicypaZInh0Hksc7YpzHg/640?wx_fmt=png"></p><p>1、模板有点类似属性分组,将一组又一组属性构建成一个又一个模板。
</p><p>2、模板一定要关联属性,否则毫无意义。</p><p>
</p><p>商品类目:</p><p><img class="rich_pages" data-backh="163" data-backw="574" data-before-oversubscription-url="https://mmbiz.qlogo.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2RGmQHBT7rDfXuBqAibgXGiaj2DqVJYGVeicRicf7v54EBLfFZsBdy8nTXg/0?wx_fmt=png" data-ratio="0.28361138370951916" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-a94aba587ecbc4c3.png" data-type="png" data-w="1019"></p><p>1、商品类目,一定要去关联设置好的不同业务的模板。
</p><p>2、一个商品类目可以关联多个模板。
</p><p>
</p><p>商品管理:
</p><p><img class="rich_pages" data-backh="107" data-backw="574" data-before-oversubscription-url="https://mmbiz.qlogo.cn/sz_mmbiz_png/eB6NEyewMqic6d1t4ib0bagYpnYDIFNGG2WfsZicich0ibzibUYNH6PmOAemPcoicDfsnOdpEZRRibUurPiafGall9tM5UA/0?wx_fmt=png" data-ratio="0.18656302054414214" data-s="300,640" src="https://upload-images.jianshu.io/upload_images/6034320-13240a664533369c.png" data-type="png" data-w="1801"></p><p>1、添加商品,也就变得简单方便。直接选择商品类目后,填写当前业务的商品模板中的属性信息即可。</p><p>2、如果业务有变动,商品属性的增删改查变得游刃有余,不会影响旧的在售商品。随时更换随时增加新的判断,都可以,想怎么玩就怎么玩儿。</p><p>
</p><section class=""><section><span><strong>总结:</strong></span></section><p><span><strong><span>所有的系统设计无非就是对数据库中各种表格的CRUD(增删改查)。</span></strong></span></p><p>
</p><section><span>
</span></section><section><span>
</span></section><section><span style="letter-spacing: 0px;">关注本公众号:</span><span style="letter-spacing: 0px;"> kylxpm520</span><span style="letter-spacing: 0px;">,</span><span style="letter-spacing: 0px;">输入【模块】即可获得文中所有源文件</span><span style="letter-spacing: 0px;">。</span>
</section></section><p>
</p><p>
</p>

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容