消息关闭
    暂无新消息!
                目前已经更新了三个版本,功能也越来越丰富,使用合理性上也进步不少,现对最新版本V1.1.0-Alpha给大家做一个全面详解和使用指南:

                            *      从技术角度:mcg-helper采用b/s架构,基于java实现,主要运用spring mvc,hibernate,apache dbutils,mybatis,ehcache,freemaker,线程、反射等常用服务端技术,以及jquery、jsplumb、bootstrap、集成如编辑器,树、消息通知、表格插件等前端主流技术。

                            *      从产品角度:mcg-helper一款研发助手工具,以研发人员为中心,实现减少、减化工作量和提供便捷、灵活的功能服务,目前正在研发第一个核心版块“代码生成器”,相信在后续的不断建设中会变得越来越有趣。

               mcg-helper使用:

                首先,我们下载(https://pan.baidu.com/s/1bOe1mY#list/path=%2Fmcg-helper)解压后,执行service.bat文件,大概20秒后就可以打开浏览器,输入http://localhost:8888/mcg/进行系统欢迎界面,建议使用ie10及以上版本、chorme、firefox,解压后如图所示:

                其实软件本身大小才1M左右,但运行的环境和依赖包就有300M多了,大家理解一下,下次升级将不再是“Alpha版本”了,而且正式对外的“beta版本”,且将环境和软件进行分离,这样下载一次环境就OK了,以后版本升级只需要更新核心,大小应该在1M左右。


                并切换到工作台,这里给大家截图详细说明其构成,如图所示:

               

                   我们先聊聊mcg-helper的玩法:

                           拖拽左侧组件区的组件到流程区中,每个组件中的小黄点可以拉出连接线,实现组件间连接工作,很快我们可以绘制出流程图。
当然也有一些规则,开始和结束组件在流程中有且只有一个,标志流程着的生命周期,开始组件无父级,结束组件无子级,开始和结束组件中间可以任意设计不限制,可以多父级,多子级,任意交叉,但整个流程中不能出现循环。编辑完各组件后,在“功能区”点击保存按钮才能达到真正保存流程实例。当流程执行时,会依次根据流程图的顺序进行执行,每个组件都会产生“运行值”,并作为参数传递给子级组件,流程中组件间值传递均为“json数据”。

                   目前组件按功能分四大类:

                        第一类、数据提供者类,如model组件、data组件、json组件,主要作为数据源,为后续组件提供数据支持。

                        第二类、功能性类,如gmybatis组件(提供生成mybatis相关文件生成功能),数据源组件(提供绑定数据库,供其它组件直接引用),开始组件(标志流程开始,该组件还赋有全局变量的功能)、结束组件(标志流程结束)

                        第三类、数据处理类,如java组件,js组件,可以编写java和javascript代码,这两个的灵活、强大我就不多说了,可以进行数据处理或想要的任何方式。

                        第四类、文件生成类、如文本组件,将所有父级的运行值作为参数,编写freemaker模板语言,处理为自己想要的文本文件。

              

                基于以上认识,我们再逐个详细的来了解九大组件

                                 1、开始组件:


                               2、 model组件:

                                该组件运行值如下
{
"组件key":{
"record":[
{
"autoincrement":"是否自增,boolean类型",
"classField":"程序变量名,String类型", 
"comment":"字段说明,String类型",
"dataType":"程序类型,Integer类型",
"include":"导入类型,String类型,比如(java.lang.Integer)",
"length":"数据库长度,Integer类型",
"mandatory":"是否非空, boolean类型",
"precision":"字段的小数位精度,Integer类型",
"primary":"是否为主键,boolean类型",
"show":"是否显示,boolean类型",
"tableField":"表字段名称, String类型",
"tableFieldType":"表字段类型, String类型"
},
......
],
"property":{
"className":"类名,String类型",
"key":"组件key,String类型",
"modelDesc":"组件描述,String类型",
"modelName":"组件名称,String类型",
"packageName":"包名,String类型",
"tableName":"表名,String类型"
}
}
}


                                3、json组件:

                                运行值如下

{
"reqUrlJson":{
"url":"http://pv.sohu.com/cityjson"
}
}


                                4、gmybatis组件:

                                运行值如下所示:

{	
      "组件key":{
"类名":{
"record":[
{
"autoincrement":"是否自增,boolean类型",
"classField":"程序变量名,String类型", 
"comment":"字段说明,String类型",
"dataType":"程序类型,Integer类型",
"include":"导入类型,String类型,比如(java.lang.Integer)",
"length":"数据库长度,Integer类型",
"mandatory":"是否非空, boolean类型",
"precision":"字段的小数位精度,Integer类型",
"primary":"是否为主键,boolean类型",
"show":"是否显示,boolean类型",
"tableField":"表字段名称, String类型",
"tableFieldType":"表字段类型, String类型"
},
......
]
}
}
}


                               5、 data组件:

                                运行值如下所示


{
"组件key":{
"record":[
{
"autoincrement":"是否自增,boolean类型",
"classField":"程序变量名,String类型", 
"comment":"字段说明,String类型",
"dataType":"程序类型,Integer类型",
"include":"导入类型,String类型,比如(java.lang.Integer)",
"length":"数据库长度,Integer类型",
"mandatory":"是否非空, boolean类型",
"precision":"字段的小数位精度,Integer类型",
"primary":"是否为主键,boolean类型",
"show":"是否显示,boolean类型",
"tableField":"表字段名称, String类型",
"tableFieldType":"表字段类型, String类型"
},
......
],
"property":{
"className":"类名,String类型",
"key":"组件key,String类型",
"dataDesc":"组件描述,String类型",
"name":"组件名称,String类型",
"packageName":"包名,String类型",
"tableName":"表名,String类型"
}
}
}


                                6、js组件:

                                7、java组件:

                                8、文本组件:

                                9、结束组件:

                内置教程示例,主要是为了演示如何运用现在有组件,进行组合衔接,来实现想要的结果,让大家能够通过示例熟悉和上手使用,目前都是一些基本教程,如下所示:

                         1、《mybatis所需文件生成》

                         2、《http有参和无参请求》

                         3、《抓取网页源代码》

                         4、《静态数据生成model类》

                         5、《读取表信息生成model类》

         最后,我们再看看控制台,当流程执行时,不断的输出各组件的日志,我们可以很直观的观察到流程的详细执行过来,以及各组件的运行情况,其中较为重要的就是组件的运行值,因为运行值是下一个组件或多个子级组件的参数,而且也能够在java组件,js组件中自定义输出任何变量的值用于跟踪调试。除了观察运行情况,当流程执行异常时,也会将异常信息输出到控制台中,方便我们定位问题所在。为方便查看日志,每个组件的日志会进行分组,以组件为单位将该组件的日志输出到一个日志框中,并且还可以删除某一组日志。下面 是部分日志的截图:












 

         到此,mcg-helper的原理和基本用法就介绍完毕了,实则是较简单,这一篇文本都够描述清楚的,只要明白组件间的值传递为json数据,真正要用的核心技术仍我们所相熟知的java和javascript,如果大家花几十分钟,看看教程示例,运行起来使用使用生成功能,结合控制台的日志,很快就能玩转了,最后,感觉大家的阅读,有兴趣的朋友不妨一试,其实mcg-helper可以做很多事件,不仅仅只是生成代码。



6个回答

︿ 1
   原文链接:http://blog.csdn.net/loginandpwd/article/details/76944900

   更多动态咨询请访问:http://blog.csdn.net/LoginandPwd/article
︿ 0
看见您的批评和建议我很高兴,因为您是第一位作出评价的人,,理论上计算机语言也很多,用自己熟悉的语言和技术都能达到结果,我只是想针对代码生成这块需求提供更适合便捷的方式,在编写时能够有一些现成的服务和支持,目前提供功能相对而言比较粗,但基于现在的设计,能够很好的扩展,等再优化几版,会逐步做得更细,效果会更好。