赤龙ERP系统设计篇--第8篇
用日志记录“开源软件【赤龙 ERP】”的诞生
如何学习系统设计
笔者是软件专业出身,学了好多的理论知识,但我总结就是理论过于枯燥,而且在实战中基本用不上。所以今天就来说说我是如何学习系统设计的。还记得我刚刚毕业,第一次面对要独立做一个系统或网站时的困惑与迷茫。不知该做什么?不知该从何做起?来看看我的成长历程:
一、借鉴已有系统或网站
(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)劣势:限制少了,业务的严谨程度降低了;逻辑简化了,中大型企业的业务匹配度降低了
领取专属 10元无门槛券
私享最新 技术干货