这几年做项目一直都在纠结一个问题,到底是基于公司的产品来做开发还是做一个新的框架来开发。我先说说基于公司产品开发的一些特点,
1、产品是都产品研发部门开发,项目实施和二次开发是拿不到产品的源码,且产品研发部门对分公司的支持不够,如果项目中要对底层做改造,会很麻烦,特别是项目时间比较紧的情况下,产品部门的响应时间不够及时
2、由于不同的项目会用到不同的产品,各个产品的技术架构也都不一样,有些产品已发展了10多年,使用的技术也比较落后。导致程序员在技术上不够聚焦,效率也很难提高
3、很多项目中基于产品的二次开发基本只用到了产品的系统管理、用户角色组织权限管理、配置管理、定时任务、操作日志等功能
虽然也有少部分项目是基于自己搭建的开发框架来开发的,但是一直不能集中精力来做,所以也做的不太成熟。但是一直以来非常希望能搭建一个这样的开发框架,
1、基于JQuery及插件+Spring MVC+Spring+MyBatis(Hibernate),刚开始觉得ExtJS挺好,发现这个组件的licence不够开放,所以不考虑这个
2、有基础的系统功能和封装,用户角色组织权限+流程管理+数据字典+定时任务+邮件发送+Excel导入导出+操作日志+统计分析封装+缓存封装等
3、代码生成,能生成简单的增删改查的代码,从前段到后端,生成后可直接运行
4、有常用的表现层组件封装,如日期控件、菜单树、下拉树状选择、弹出框选择、验证组件、编辑器等等
5、支持主流浏览器
6、支持常用关系数据库
7、支持对MongoDB的封装整合及日志记录
8、支持对BootStrap的整合
9、基于RESTFUL设计偶然间在网上发现了这样一个开发框架,那就是JEECG。初次发现她,有种相见恨晚的感觉,因为她基本包含了我想要的框架,而且有些还超出了我的期望。马上在DEMO上试用了一把,觉得还不错,
然后立马下载工程、编译,运行,自动建立数据库,在登录页面初始化数据,基本没看文档就这样很快出来效果了,跟DEMO环境中的一样,大喜,
感觉这个就是我一直都在寻找的东西。之后把功能使用一便,再把代码和配置一一查阅了一遍,也发现这个框架的一些可以改进的地方,
1、按钮的权限控制,目前只是控制按钮是否显示,底层的服务并没有控制,这是一个很大的漏洞,企业级的应用是绝对不允许的
2、个人感觉目前的在线开发并无多大的意义,这种在线开发只适合很小规模的应用,对于规模较大应用这种在线开发的模式极易带来性能问题,且业务逻辑也比较复杂,所以一般不敢采用这种模式
3、介绍说已经有了工作流这块,但是在demo工程中并没有看到,对一个开发框架来说工作流是必不可少的
4、系统中的表大部分采用UUID的方式生成主键,个人很不喜欢这种方式的主键
5、系统中的缓存应用还不够,菜单、权限等信息也都应该要缓存,减少数据库的访问,增加应用的并发访问量
6、Excel导入导出缺少基于模板的导入导出当然这个框架也有一些是超出我的期望的,
1、对常用查询的封装,从表现层组件到后台的封装,都做得很不错
2、对表现层组件采用标签库的方式封装,进一步缩减表现层的代码
3、支持复杂查询逻辑直接写sql,类似于Spring Jdbc的开发,充分发挥Hibernate的优势,摒弃Hibernate的不足,但这块似乎还有待改进,目前只能一个方法一个sql
4、一些细节的考虑,比如创建人,创建时间等字段可以默认写入,且不生成到页面
5、...

解决方案 »

  1.   

    1、基于JQuery及插件+Spring MVC+Spring+MyBatis(Hibernate),刚开始觉得ExtJS挺好,发现这个组件的licence不够开放,所以不考虑这个。。我觉得这个理由太过牵强了吧不过感谢楼主分享!
      

  2.   

    谢谢楼主的分享,之前做过几个月的extJs,作出的界面看着确实很舒服,有个缺点就是前端压力太大,所有的界面都是js文件,需要一次性加载到浏览器。
      

  3.   

    JEECG用户的json,推荐使用jackson的。