前言:

咱们都希望能做出一个可复用性强、灵活性好的B端系统出来。

那么,模块化设计就是其中一个很好的方法。

本文目录:

一、为什么要模块化设计?

二、适不适合模块化设计?

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

一、为什么要模块化设计?

希望减少重复性造轮子的可能,抽离出共通性、形成标准化,最终达到减少人力物力的大量浪费,提高业绩的同时还减少了成本开支,何乐而不为?

最近鼓吹得如日中天的中台概念、流行了许久的敏捷开发,无不都是为了此目的。

当前较为普遍的两种方法:接口式开发、模块化设计。

1、接口式开发:开发角度

写代码的同学都知道,代码要讲究可复用性、灵活性。

前端开发与后端开发,采用接口式方法来进行信息之间的交互。

案例:我要登录淘宝网站。

上下游系统之间,跨系统之间,也大多采用接口式方法进行信息传递。

此文,咱们简单聊聊B端系统模块化设计的好处。

2、模块化设计:产品设计角度

模块化设计,专业术语讲是为了我们做的产品,将来灵活性强、扩展性好。不需要开发修改代码,就可以实现部分新的业务逻辑。

通俗点讲,就是堆积木。我们可以将任意小方块,任意拼凑成我们想要的形状,从而达到目的。

不同的系统,不同的业务,要根据实际情况分析,这里我以电商系统为例,总结了些许模块化设计经验,分享一二。不到之处,还请大佬们批评指正。

二、适不适合模块化设计?

1、搞清楚事务本质。

首先,一定要搞清楚为什么要去模块化设计,千万不要为了模块化而模块化,这个是很大的忌讳。模块化设计,很多时候短期是看不到任何效果的,而且让系统变得更麻烦。

以添加商品为例:要新建一个商品,必不可少的有商品基本信息、商品类目、商品属性信息等等。

如果想简单点设计:1、点击添加商品按钮,进入添加商品页面。2、在固定表单中,填写商品所有信息。3、点击保存按钮。

添加商品,本就不是很复杂的事,此简单的方案不是不可行。只是不利于系统的可扩展性和灵活性。

为什么?在固定的表单中填写商品所有信息,你就能保证所有的商品都是一样的业务逻辑,一样的商品信息吗?根本保证不了,那么一旦做成固定模板,系统后期就要不断的根据新的业务逻辑和商品去不断的改代码来实现业务方的需求。

那么,有没有更好的方案?模块化设计。

回到问题本质:想成功添加一个商品到商品库。

方案:将商品信息打散,将其拆分为三大类信息组合:商品共性信息(所有的商品都有的属性)、商品类目、动态属性(区分商品唯一性的属性)。

2、理清父子关联关系。

既然要模块化,那么肯定就会出现一层又一层的父子关联关系。

说明:要想成功添加A商品,必须关联某个A商品类目。A商品类目必须关联某个A模板,A模板必须关联对应属性。

属性管理:管理了商品的所有类别的属性信息,一定要做好分类。比如:关键属性、规格属性、非关键属性等等。

模板管理:不同的商品,可能由不同的属性构成。那么我将属性形成一个又一个模板,就可以灵活的去满足各种类别的商品。

商品类目:商品的分类管理。所有的商品,肯定有自己的分类,也就是商品类目。同一类商品归为一类,便于商品的维护和管理。

商品管理:所有商品的管理。现在要添加一个商品,通过模板化设计,就变得非常灵活。要想添加商品:1、点击添加按钮。2、选择A商品类目。3、填写A类目关联的模板A中对应的属性信息。4、保存。

模板设计的好处就是,我可以随时更换关联关系,也可以随时在下一层关联关系中做任何CRUD操作却不影响当前层级新的数据。

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

记住我一句万变不离其宗的话:

所有的系统设计无非就是对数据库中各种表格的CRUD(增删改查)。

别把后台系统设计想的那么玄乎,没有那么复杂。咱之所以觉得复杂,是因为咱还不够熟悉业务,不清楚正向逆向各种流程,并不是系统设计难。

1、功能结构图:有哪些功能、页面、按钮

说明:

1、下图是我认真画的真实数据,认真观察后发现没有?哪个版块的管理离开的了CRUD?先将页面的根(CRUD)想好,什么批量克隆、启用、停用无非添砖加瓦而已。

2、功能结构图也就是功能列表,只是功能列表会描述的更细,而结构图只是列出大的框架,方便参阅,没你想象的那么复杂。

3、虽不复杂,但每一层的关联关系可别忘记加上,这可是咱这篇模块化设计的核心。

2、信息结构图:有哪些对象和字段

信息结构图:将你看到的页面信息,抽象处理到一个对象的维度,然后把同一个对象的信息放在一起。

咱们产品人画的信息结构图,不需要与开发同学设计的数据库表结构一模一样,按你的理解将其以单个对象维度抽离出来即可。

有没有觉得设计信息结构图很难,根本无从下手,不知所措?根本原因在哪?

在于咱们脑海中没有面向对象的概念和对数据库表结构的理解。

什么叫对象?万事万物,皆为对象。你,我,鼠标,键盘,电脑都是对象。

对象:指具体的某一个事物,即在现实生活中能够看得见摸得着的事物。在面向对象程序设计中,对象所指的是计算机系统中的某一个成分。在面向对象程序设计中,对象包含两个含义,其中一个是数据,另外一个是动作。对象则是数据和动作的结合体。对象不仅能够进行操作,同时还能够及时记录下操作结果。方法是指对象能够进行的操作,方法同时还有另外一个名称,叫做函数。方法是类中的定义函数,其具体的作用就是对对象进行描述操作。

对象解析:对象由属性和方法构成。private开头的全是对象应有的属性,也就是咱们看到的信息架构图中,员工对应的信息。至于方法,咱们产品经理不需要关注,知道有就好。

表结构:表名+字段。详情可以看我另一篇文章的文末,这里不再说了哈!

(后台系统架构设计-商务咨询系统)

表解析:员工信息表用来储存员工的基本信息。一般由表名+字段构成,我们产品人不需要去关注数据类型,是否主键这些信息。

3、原型图:系统长什么样,有哪些规则和交互效果。

PS:原型只是案例展示,并不是真实功能,有很多按钮和规则,都没有写入,仅供参考。

如果你真的涉及想用模块化设计,需要找人交流的时候,记得找我哟!

属性管理:

说明:

1、属性分类与属性分组是不同概念。属性分组是将一类属性进行分组,是站在业务维度划分。属性分类,是站在产品设计维度分析。

模板管理:

1、模板有点类似属性分组,将一组又一组属性构建成一个又一个模板。

2、模板一定要关联属性,否则毫无意义。

商品类目:

1、商品类目,一定要去关联设置好的不同业务的模板。

2、一个商品类目可以关联多个模板。

商品管理:

1、添加商品,也就变得简单方便。直接选择商品类目后,填写当前业务的商品模板中的属性信息即可。

2、如果业务有变动,商品属性的增删改查变得游刃有余,不会影响旧的在售商品。随时更换随时增加新的判断,都可以,想怎么玩就怎么玩儿。

总结:

所有的系统设计无非就是对数据库中各种表格的CRUD(增删改查)。

关注本公众号: kylxpm520,输入【模块】即可获得文中所有源文件。

最后,我建立了各大城市的产品交流群,想进群小伙伴加微信:yw5201a1  我拉你进群。

关注微信公众号:产品刘 可领取大礼包一份。

··················END··················

今日研报:亿欧智库发布《2021新职业教育行业发展研究报告》,公众号后台回复“ 新职业教育”,即可下载完整PDF文件。

RECOMMEND

推荐阅读

从留存的本质出发,制定留存策略

手把手教你做产品经理

从面试的这些细节就可判断公司的好坏

产品经理学SQL

点击“阅读原文”

查看更多干货

如何模块化设计B端系统?相关推荐

  1. 模拟物流快递系统程序设计java_路辉物流设备:大件快递自动分拣系统的模块化设计...

    物流企业运营所需的能源.劳动力.土地价格持续上涨,依赖"高投入.低产出"传统物流运作模式难以为继,面临着降低成本.提高效率.可持续发展的转型要求.快递行业对于新兴的大件快递消费需求 ...

  2. 基于ASP.NET Core的模块化设计: 虚拟文件系统

    土牛亲自录制的本文介绍视频 Abp中文网(https://cn.abp.io/)提供翻译字幕 基于ASP.NET Core的模块化设计: 虚拟文件系统 简介 创建模块化的应用程序很困难. 构建模块化的 ...

  3. 单片机sleep函数的头文件_单片机代码模块化设计思想浅谈

    前言:前段时间分享的文章[单片机裸机代码框架设计思路],很多读者给我留言,觉得很不错,对于初学者而言,这是一个进阶的技巧,对于我而言,这是对自己总结和表达能力的一个提升. 本文章我们再谈谈单片机代码的 ...

  4. dll模块化设计与编程_FPGA设计原则经验分享

    一.面积和速度如何折中  面积和速度是芯片设计中一对相互制约.影响成本和性能的指标,贯穿FPGA设计的始终.在FPGA设计中,面积是指一个设计消耗的FPGA内部逻辑资源的数量,可以用消耗的触发器和查 ...

  5. 单片机c语言模块化实例程序设计,单片机C语言模块化设计

    原标题:单片机C语言模块化设计 keil中实现 模块化编程.doc 在使用 KEIL 的时候,我们习惯上在一个.c 的文件中把自己要写的东西按照 自己思路的顺序进行顺序书写.这样是很普遍的写法,当程序 ...

  6. (15)FPGA模块化设计原则

    (15)FPGA模块化设计原则 1.1 目录 1)目录 2)FPGA简介 3)Verilog HDL简介 4)FPGA模块化设计原则 5)结语 1.2 FPGA简介 FPGA(Field Progra ...

  7. 基于layui的框架模版,采用模块化设计,接口分离,组件化思想

    代码地址如下: http://www.demodashi.com/demo/13362.html 1. 准备工作 编辑器vscode,需要安装liveServer插件在前端开启静态服务器 或者使用hb ...

  8. Python函数详解:函数定义、调用,lambda函数,高阶函数map,filter,reduce,函数式编程,模块化设计、代码复用、函数递归、enumerate()

    一.函数 函数是一段具有特定功能的.可重用的语句组,通过函数名来表示和调用. 函数是一段代码的抽象和封装 函数是一段具有特定功能的.可重用的语句组 函数是一种功能的抽象,表达特定功能 两个作用:降低编 ...

  9. 如何表达清楚一个程序:模块化设计

    如何表达清楚一个程序:模块化设计 主程序:模块与模块之间的关系 子程序:模块 使用函数或对象,通过封装程序划分为模块和模块之间的表达 对于要实现的算法 设定功能模块并且功能模块中建立之间的关系 模块术 ...

最新文章

  1. web前端开发怎么学,web教程资源
  2. 徐艳 中国科学院成都计算机,互动、碰撞!精彩纷呈!成都市中职计算机专业菜单培训在双流建校举行!...
  3. OnScrollListener回调分析
  4. helm安装postgres_添加到postgres数据库外的keycloak k8s helm chart环境参数
  5. Linux shell 下的复制和粘贴(Copy Paste Operation on Linux shell)
  6. 原型模式的原理与应用
  7. python 的输入和输出
  8. 刘永行:领导者的得与失
  9. 应对雾霾,哪款口罩适合你?
  10. 史上最强的10大管理定律
  11. 什么是主数据?什么是主数据管理系统?
  12. 计算机网络系统工程监理,GB-T 19668.4-2007 信息化工程监理规范 第4部分:计算机网络系统工程监理规范.pdf...
  13. Android ELF文件编译之符号隐藏
  14. 练习3-8 查询水果价格
  15. Selenium隐藏“Chrome is being controlled by automated test software”
  16. Turtle 画正方形螺旋线
  17. 0xff到底是多少(0x是16进制,f对应11111,因此是11111111,也就是2的8次方-1=255)
  18. 12312312312332
  19. C#最小二乘法进行曲线拟合及相关系数
  20. office中计算机剪贴画,Office 2010的剪贴画

热门文章

  1. 【OpenCV 例程200篇】54. OpenCV 实现图像二维卷积
  2. Python 小白从零开始 PyQt5 项目实战(1)安装与环境配置
  3. vue 数值 拼接字符串_【Vue原理】Compile - 白话版
  4. linux之trap命令
  5. python列表对应元素合并为列表及判断一个列表是几维
  6. ValueError: invalid literal for int() with base 10:Python报错及其解决办法
  7. Java-ArrayList使用技巧---从第一个List中去除所有第二个List中与之重复的元素
  8. kendo Grid json解析的问题
  9. [转]ClassPath是什么
  10. 提高软技能之如何高效解决问题