当前位置: 代码迷 >> 企业开发 >> 草稿思路之企业开发平台 - (1)
  详细解决方案

草稿思路之企业开发平台 - (1)

热度:5170   发布时间:2013-02-26 00:00:00.0
草稿思路之企业开发平台 - (一)
草稿思路之企业开发平台 - (一)

序:
前两天写了份三年工作总结,被入选到了CSDN首页,对我个人是莫大的鼓励,说实话我的csdn账号是2003年注册的,至今已有十年,
这十年我很少发表技术文章,深感惭愧。以后要多写,在多写的过程中更容易能让自己做细致的思考,能到一个更深的深度。
在我的总结文章里面提到了2013年要做企业开发平台的计划,有很多朋友也都给留言提了很好的意见,也有很多朋友在csdn上把我加了关注,
所以自己的计划既然公布了出来就不能不负责任的销声匿迹吧,所以只要有一点点新的想法就及时写出来跟大家分享和讨论,
在这里一律都先暂时起名"草稿思路"开头。
国内并不缺少有想法的程序员,缺的是把想法付诸于实践并最终实现的人,我目前只是把这个开发平台纳入2013年计划,年底是否能够全部顺利完成尚不能确定,
但是在2013年里面至少我去努力去做,一步一步向目标靠近,有努力有行动才能让自己真正有收获,而不是在这呐喊几句空头志向就没了下文。
2008年上半年在我读完struts2代码的时候就有写本书来揭秘其底层实现的想法,但是后来因为种种原因一直没行动,这件事情现在想想多少有点遗憾。

地点:济南大明湖畔


客户需求

1.要求运行在JDK4环境下,这点让我放弃了很多其他的设计思路;
2.所有的组件开发都要符合业务上需要

1,技术平台

技术平台基本就是写出个类SSH的思路,从前端到中间到数据库端完全自己封装原始的API来实现。

持久层框架:难度:低
            客户不希望用一些配置繁琐的持久层框架,比较青睐直接写原生态的sql来编码,所以我在这一块打算就是对jdbc做一个
            简单的封装即可了,至于数据库事务和存储过程是要必须支持的。核心方法就是需要客户传递2个参数,一个是原生态的sql,
            一个是参数的数组对象,底层就是用java执行jdbc的数据库操作。
            额外需要在数据库连接中判断数据库的类型,然后根据数据库的类型根据需要来自动添加能分页的SQL片段。
            
中间层框架:难度:低
            这一块不打算重新做轮子,就是直接使用spring框架即可,不过需要选个版本低的,保证能在jdk4下运行

前端层框架:难度:中
            说白了这块就是封装核心的处理类,一般都是经过某一个专门的servlet或filter,
            然后统一根据url映射到客户自定义的处理类并返回到定义的页面,
            依照现在客户的需求来看,写出类似struts1简单小巧的mvc框架就可以满足.
            
            稍微复杂点尤其是难调试的就是封装标签库上,因为我现在客户那边的业务翻来覆去基本就是那么几个界面要求,
            页面控件就是那么固定几个,页面控件都是用js来辅助达到要求的,所以需要在标签库里面封装的时候需要和JS代码进行结合。

            一种结合方式是采用struts1的方式:java代码里面直接套入html标签和调用js代码

            一种结合方式是java代码里面调用模板引擎生成html代码和调用或含有js的代码

           

            页面前端控件实现的核心还是js,需要用js来实现一些效果,
            比如:分页效果,页面局部刷新控制,对话框效果,信息提示,加载等待信息,数据验证,带分页的表格,选项卡,日期,手风琴,树形控件等还有封装ajax提交工具方法。
            打算这块直接采用开源的js库,目前考虑的是jquery和yui3,比较而言jquery更容易接受,
            而且还有很多的jquery插件提供了实现我说的页面控件效果,所以这块可以考虑在上面进行二次开发。
            在这里再声明下,我目前要求的控件效果完全是根据我的业务来定制开发的,并不是对所有万能业务都适合。           
            页面控件实现形式基本都是采用jquery插件形式,这样在使用的时候会更加方便。
            手工写js代码,也要求一律用面向对象的思维来编写,统一进行封装。
            在控件里面最复杂的算是表格控件了,先介绍下表格控件的实现要求:
            大家可以先看看jquery的一个插件FlexiGrid,官方网站:http://code.google.com/p/flexigrid/

            实现效果跟Extjs表格很相似,不过这个控件提供的功能还不足以满足业务的需要,还需做些二次开发。

技术平台扩展要求:

        a:客户如果需要改用其他的持久层框架,可以直接嵌入进来,把需要配置的地方放到中间层Spring里面
        b:持久层的事务,可以在Spring里面用AOP控制也可以在JDBC层来进行手工控制
        c:mvc框架要支持插件形式,技术架构上需要考虑支持。
        d:客户的环境允许安装高版本的JDK,那么可以考虑把平台中的某个插件或框架升级版本,、
        也可以考虑把某个其中的框架替换成另外支持高版本JDK的框架
        
业务平台:

4,权限组织机构: 难度:容易
            关于组织机构,这个要看具体的业务,一般来讲实现方式都会有这么几个概念:
            员工信息,公司或部门或机构,岗位,职务,业务组;
            关于权限无非包括控制资源和菜单的访问或显示,这点毫无争议。
            在权限上需要考虑权限的继承以及对某特定的人授予权限。
5,工作流:难度:中等
            这块资料就相对多些,老外在这方面的实现也完全满足不了符合中国国情的工作流需求,
            即使在某个行业内也没有完全的审批标准,
            可能中间的某些环节上遇到了一位个性的领导,你的流程引擎就可能会有改动。
            现在国内很多公司都有了自己的工作流产品,根据自己的业务情况也很容易总结出来实现方式。
            关于流程设计器,我倾向用javascript的方式来实现,这一块算是一个重点。
6,报表工具:  难度:高
            这块我主要是讲完全能解决复杂中国式报表的报表工具,所以对于老外提供的报表工具大多可以完全忽略。
            最常见的就是多级分组和交叉报表,还有:填报,图表,精确打印等。
            实现方式我个人比较认可以类Excel表格的形式来进行拖拽式设计报表。
            国内有专门的实现这种需求的报表工具软件公司,成立时间都不长,靠一个报表产品就足以支撑整个公司的生存,
            真可谓:一招鲜吃遍天。
            国内能做出来这个工具的公司很少,济南的浪潮楼上平台已经开发多年,唯独缺少报表工具。
            由于这块难度比较大,所以我计划把这块放到最后,打算长线研究,
            业余任何时间有好的想法就突击突击,虽然我没有足够的把握能够完全搞定,
            研究到一定程度上没有更多进展的时候就及时调整主攻其他的组件。
            别人用一个团队做了多年的产品,不是随便一个人一夜间就能搞出来的,
            更何况我是单兵作战,还不是狙击手,时间上也不能保证是全职。           
            
外围工具:
            主要是指我打算用swing来实现的一些外围工具,优先级和难度都不大,故先不整理思路。
           
重新整理主攻的方向顺序:   
        持久层框架>MVC框架(含标签库)>权限组织机构>工作流>报表              
            
            
            
            
            
           
  相关解决方案