赤龙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. 高级搜索树-AVL树

    目录 平衡因子 AVL树节点和AVL树的定义 失衡调整 插入和删除操作 完整源码 AVL树是平衡二叉搜索树中的一种,在渐进意义下,AVL树可以将高度始终控制在O(log n) 以内,以保证每次查找.插 ...

  2. 2020-05-16:如何保证redis和mysql数据一致?

    福哥答案2020-05-16:

  3. LeetCode 64最小路径和

    题目 给定一个包含非负整数的 m x n 网格,请找出一条从左上角到右下角的路径,使得路径上的数字总和为最小. 说明:每次只能向下或者向右移动一步. 示例: 输入: [   [1,3,1], [1,5 ...

  4. 题解 洛谷 P1553

    字符串入门题,读入一行字符,先将第一个数读入翻转,读入下一个字符(如果没有则退出),再将下一个数读入翻转 #include<iostream> #include<cstdio> ...

  5. webpack打包原理

    什么是 webpack ? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依 ...

  6. MST(最小生成树)

    1.prim算法分析 prim算法是用来构建MST(最小生成树)的一种基于贪心策略的算法.prim算法通过维护lowcost数组和closest数组记录每次查询的最小权值边结点. 首先,看一个示例来理 ...

  7. 在laravel中遇到并发的解决方案

    1,在mysql中创建唯一索引,在代码中try catch mysql的1062错误 2.将存在并发的代码丢给队列异步处理.这种解决方案的问题是,接下来的代码不能依赖队列的处理结果 3.使用mysql ...

  8. go thrift demo

    接口:https://gowalker.org/github.com/apache/thrift/lib/go/thrift 参考文件:https://cong.im/2018/05/14/other ...

  9. SpringCloud Alibaba之Nacos

    一.运行Nacos Nacos GitHub开源地址:https://github.com/alibaba/nacos Nacos 官方文档:https://nacos.io/zh-cn/docs/q ...

  10. influxDB初步学习

    influxdb的安装等操作在我的文章. 首先得装influxdb,其次操作如下. application.properties spring.datasource.test1.jdbc-url=jd ...