赤龙ERP系统设计篇--第8篇

用日志记录“开源软件”的诞生

赤龙 ERP 开源地址:

点亮星标,感谢支持,与开发者交流 kzca2000

码云:https://gitee.com/redragon/redragon-erp

GitHub:https://github.com/redragon1985/redragon-erp

赤龙ERP官网:https://www.redragon-erp.com

如何学习系统设计

笔者是软件专业出身,学了好多的理论知识,但我总结就是理论过于枯燥,而且在实战中基本用不上。所以今天就来说说我是如何学习系统设计的。还记得我刚刚毕业,第一次面对要独立做一个系统或网站时的困惑与迷茫。不知该做什么?不知该从何做起?来看看我的成长历程:

一、借鉴已有系统或网站

(1)没有人可以闭门造车:系统设计的初学者,要做的第一步应该是复刻别人的系统,记住是复刻不是复制。即用你自己的方式做一个尽量功能一致的系统。

(2)复刻并不简单:作为一个初学者复刻一个系统并不简单,这要有强大的系统分析能力。要有在不依赖文档的情况下,分析系统流程、功能及逻辑的能力。如果你无法直接做到,没关系,我们来一步一步实现。

(3)知晓需求:在分析系统前,首先要明确你分析的系统做的是什么内容,解决的什么问题,以及相关的业务流程是怎样的。不管是文档也好,还是网上搜索也好,有很多手段可以获取需求。

(4)抽丝剥茧的拆分:不管任何系统都有一个主流程,就像是大树的主干一样。主流程可以拆分出一个一个的节点,以及节点间的逻辑串联。紧接着再分析每个节点,即一个个的模块。模块再拆分成功能点。只要你拆分的够细,你会发现最后一定是增删改查。到此所有的功能已经展露在你的面前了。

(5)重新组装:经过上面的拆分,我们下面可以把所有拆分得到的功能,重新组装成一个完整流程了。当然在组装过程中一定会涉及到很多连接问题、逻辑问题,如果其中的实现方式并不明确,可以先采用你最了解的方式保证尽量的还原。

(6)过程中学习:复刻系统不是目的,目的是在复刻的过程中,学习别人的系统或网站在面对何种需求是如何设计的,并思考为什么人家会如此设计,如果对于相同需求有不同实现方案那就仔细比较下它们的区别和优劣势。

二、优化已有问题

首先要明确,你认为的问题不一定是真正的问题,那可能仅仅是你认为的问题而已。但为什么还要去做这一步呢?这是一个转化的过程,即把别人的东西转化成自己的东西,即使这是一个曲折的过程。只有发现、思考、解决,才可能在这一过程中打磨自己的系统设计方法和思路,并逐渐形成自己的体系。

三、创造新的亮点

当你逐渐形成了自己的系统设计理念,你就可以尝试创新了。创新并不容易,甚至可能会使你的系统走一些弯路或得到批评,但这才是你成长的基石,如果你可以做到不断坚持,最终的结果一定是你的设计亮点。

【赤龙ERP】的系统设计初探

之前的文章中介绍过,ERP系统的最大特点是流程明确、功能复杂、个性化强。下面我们就以上特点,来谈谈ERP系统设计需要注意的问题。

1、表结构设计

(1)单表字段多:单表字段多在ERP表结构里不可避免,所以没必要为了减少字段而合并。要明确每个字段的业务含义,有助于字段的设立。

(2)多表关系杂:由于ERP功能的复杂性,主表出现多个关联表,甚至关联表再套关联表是常见的现象。明确何时建立1对1、1对多、多对多关系,有助于降低表关联的复杂性。这里特殊说明一下头行结构,即头表和行表是1对多关系。(在业务中也经常见到,比如订单、发票)

(3)处理冗余:我的原则是避免冗余,但又可在场景需要的情况下增加冗余。

2、主流程设计

(1)一根主线:从业务到财务,围绕着对于企业资源的管理,只设计一个核心流程。并保证最少的流程节点,以及明确的流转过程。让用户在使用你系统的时候,永远不能脱离你的主线。

(2)分支清晰:首先设计分支一定是在主线中不能完成的业务,但要保证分支流程尽量的短,实现在一两个节点之内完成分支流转,并最终合并到主线。分支与主线不要出现重复步骤。

3、模块设计

(1)增删改查:对于功能设计来说一定是增删改查的重复使用,但要从整体模块来看,不能割裂的设计成一个个的增删改查,要让系统有业务感,让用户在场景下操作各种功能。

(2)功能解耦:这涉及到功能和功能间,模块和模块间的关联关系的设计。原则上除了主流程外,不设置强制耦合,即在没有一些数据的情况下,用户也可以处理某些业务。

4、交互设计

(1)单页面操作简化:尽量减少单页面的可操作功能,这样用户很容易明确自己在当前页面可以实现哪些功能,步骤是什么。

(2)可培养的用户习惯:设计一些创新的亮点,适当的培养用户的使用习惯,当习惯落成,必定会大大简化用户的操作。(比如:精确与模糊搜索匹配、快速可复制的数据录入)

(3)适配终端:让用户在不同的终端具备一致的操作体验。

【赤龙ERP】设计优与劣

上述设计的目的只有一个:让复杂的事情简单化。当然这其中肯定也各有优劣。

(1)优势:让ERP的使用不再繁重而复杂

(2)优势:让用户使用得更加灵活和个性

(3)劣势:限制少了,业务的严谨程度降低了;逻辑简化了,中大型企业的业务匹配度降低了

希望您读完本文可以帮助笔者进入【码云】或【GitHub】(可搜索“赤龙ERP”)点击星标。等待着您的支持!

说说ERP软件的系统设计--开源软件诞生8的更多相关文章

  1. 为什么要做一款ERP软件——开源软件诞生7

    技术之外的探讨--第7篇 用日志记录“开源软件”的诞生 赤龙ERP开源地址: 点亮星标,感谢支持,与开发者交流 kzca2000 码云:https://gitee.com/redragon/redra ...

  2. ERP与EHR系统的恩怨纠葛--开源软件诞生13

    ERP中需要EHR的存在吗--第13篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon ...

  3. ERP订单管理的操作与设计--开源软件诞生19

    赤龙ERP订单模块讲解--第19篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/r ...

  4. ERP仓库管理的操作与设计--开源软件诞生20

    赤龙ERP库房管理讲解--第20篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/r ...

  5. ERP应收应付的操作与设计--开源软件诞生21

    赤龙ERP应收应付讲解--第21篇 用日志记录"开源软件"的诞生 [点亮星标]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redragon/r ...

  6. ERP收付款的操作与设计--开源软件诞生22

    赤龙ERP收款付款讲解--第22篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...

  7. ERP的财务凭证的操作与设计--开源软件诞生23

    赤龙ERP财务凭证讲解--第23篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redra ...

  8. ERP的权限管理的操作与设计--开源软件诞生24

    赤龙ERP用户与权限管理讲解--第24篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/re ...

  9. ERP的主数据的操作与设计--开源软件诞生25

    赤龙ERP主数据管理讲解--第25篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redr ...

随机推荐

  1. 2020-04-05:谈一下spring事务传播

  2. asp.netcore mvc 防CSRF攻击,原理介绍+代码演示+详细讲解

    一.CSRF介绍 1.CSRF是什么? CSRF(Cross-site request forgery),中文名称:跨站请求伪造,也被称为:one click attack/session ridin ...

  3. 深入解析Laravel的中间件

    Laravel 中间件是什么? 简而言之,中间件在 laravel 中的作用就是过滤 HTTP 请求,根据不同的请求来执行不同的逻辑操作. 我们可以通过中间件实现以下功能: 指定某些路由 设置 HTT ...

  4. 【NOI2005】瑰丽华尔兹 - DP

    题目描述 你跳过华尔兹吗?当音乐响起,当你随着旋律滑动舞步,是不是有一种漫步仙境的惬意? 众所周知,跳华尔兹时,最重要的是有好的音乐.但是很少有几个人知道,世界上最伟大的钢琴家一生都漂泊在大海上,他的 ...

  5. 【NOI2004】郁闷的出纳员 - Splay

    题目描述 OIER公司是一家大型专业化软件公司,有着数以万计的员工.作为一名出纳员,我的任务之一便是统计每位员工的工资.这本来是一份不错的工作,但是令人郁闷的是,我们的老板反复无常,经常调整员工的工资 ...

  6. 企业项目实战 .Net Core + Vue/Angular 分库分表日志系统 | 简单的分库分表设计

    前言 项目涉及到了一些设计模式,如果你看的不是很明白,没有关系坚持下来,写完之后去思考去品,你就会有一种突拨开云雾的感觉,所以请不要在半途感觉自己看不懂选择放弃,如果我哪里写的详细,或者需要修正请联系 ...

  7. topic相关问题

    1.下面是一个topic数据出现堵塞的情况示图. 如图所示,delta列表示当前分区未处理的数据条数,kafka current表示推送到topic的数据量,spout current表示已经处理的数 ...

  8. JavaScript学习系列博客_10_JavaScript中的while语句

    循环语句 - while循环 - 语法: while(条件表达式){ 语句... } - 执行流程: while语句在执行时,会先对条件表达式进行求值判断, 如果判断结果为false,则终止循环 如果 ...

  9. es6中的Set和Map

    Set: (1)set的key是number类型,从0开始 (2)向 Set 加入值的时候,不会发生类型转换,5和"5"是两个不同的值 (3)当向Set add相同的值时,会去掉重 ...

  10. get customer attribute option

    Mage::getResourceSingleton('customer/customer')->getAttribute('gender')->getSource()->getAl ...