[转载]ERP产品框架设计之路(一) – 贤达 – 博客园.
对于做java web开的多数程序员会选择SSH、Spring Mvc 、SSI之类的框架!这些框架的优点我想大家都很清楚,在这里我就不多说了!
当你遇到下面的需求的,而且要达到快速开发的时候,你会发现用这些框架组合好像不太现实!而且会成为一种累赘.
本人以前做是做C++、.net 的开发,2011年8月 转入java项目组,负责一个产品开发,主要任务是负责这个产品的程序框架!
目前这个框架基本上以成型,在这里我主要想和大家分享一下java开发、框架设计、以及产品设计之路的经验,不足之处希望大侠指点一下,
在用做这个框架之前,我对java主要了解还只有J2SE、jsp,servlet,JDBC!
2011年8月公司决定把以前引以为豪用delphi开发一个产品做成web形式,
(据说是老板在一次项目投标中被打击了,一个客户对他说了一句这样的话:“这个年代ERP还有用C/S的,还好意思来投标,太out了吧”)
于是公司开始筹划这个web形式的产品开发,开始打算用.net 开发,没过几天产品经理的在一次同学聚会中听他同学说.net 成本高,不能跨平台!
对于我这种做了多年.net开发人来说还是希望公司用.net的,不过mono跨平台成功的商业项目还不多,所以我没有足够的理由说服产品经理,
于是老板决定用java开发,开始找java项目负责人,应该薪水的原因,公司没有招聘到合适的项目负责人,于是我就成了这个产品开发的技术负责人,
应该是第一次做java项目组负责人时鸭梨山大,于是就开始研究java的各种框架,Strut,jsf,hibernate,iBATIS,Spring 了解流行框架所拥有的优缺点,以及所能做的功能,
两个星期之后需求和设计总结下来了,因为这个产品以前是c/s delphi开发的,现在改成java web方式
所以需求总结进行的比较快,产品的需求通过产品经理审核就开始动工了!
因为产品要求灵活,而且业务比较复杂的!这个产品涉及比较广。
数据库有一千多个表(实体),两千多个视图,两百多个表量函数和普通函数,以及一千多个存储过程
涉及:原材(进销存管理)、设备、生产调度,产品检测、人事(CRM)、财务,预算、等管理!
产品要求达到的基本功能
第一、产品要满足行业内大小公司、集团客户的的需求
第二、产品要为非程序员提供第二次开发接口,(用户在数据库添加几个表,可以自定义生产维护页面、和查询业务)
第三、每个用户都有个性化数据,每个用户看到的页面、字段不一样,可以主题风格!
第四、每个用户有不同的功能模块权限,以及不同的数据查询条件,可以用管理员定义查询过滤,
第五、页面布局自定义改动,(用户可以改变控件的位置,可以添加或者删除)
第六,下来框的数据,用户可以动态的改动、动态级联关系用户可以自定义设置
第七、用户对每个字段可以指定验证规则(比如有写用户可以录入重复的数据,二其他的用户不能录重复的数据,指定有些用户必填有些用户可以为空)
第八、数据添加、修改、删除、日志记录, 系统异常记录
权限设计
权限分角色、角色组,部门权限,个人权限,功能模块权限,菜单权限,查询条件权限,操作权限、字段(增删改查权限)
流程设计
生产流程、工作流程、审批流程
报表
要求、可以在线编辑打印报表,图形化报表、导出excel,pdf,在线打印速度必须快,一秒钟要可以打印一张!
框架要求统一规范,
代码统一规范、命名统一规范!格式统一规范,
类设计必须到底可以扩展,可以维护,要实现多数据库、业务逻辑层的代码可以替换方便以后维护和升级、跨平台,多国语言,
在设计上尽量可以达到兼容多种开发语言模式!(比如方便以后用 .net 重写)
公司要求,我两个月的时候把框架设计出来!公司再招聘七八个一年多工作经验的java程序员,然后一年之后上线!
这样的需求对于没有java开发的我欲哭无泪 ,于是找做java开发同学、朋友要他们开发的项目源码。我想最后的结果大家应该知道的!
下一篇讲框架的基本设计!
设计之路、如何应对灵活变动的需求,以及能够快速开发