Codehelper简介
--基于模型的编程辅助工具
Codehelper的目标是为开发者提供一个工具,辅助其以更快的速度来得到代码。Codehelper以模型为中心来实现这个目标。下面发布几张解图来了解一下其概貌。如要下载演示代码请访问:http://code.google.com/p/fastcoder/downloads/list。
<!---->1、 <!---->构建模型
<!----><!----><!---->
在本工具中,模型是实现快速开发的基础。一切工作都是从模型的构建开始的,以模型构建为中心。除了具备建模工具的基本要素之外,我觉得本工具的建模功能中比较重要的一个特点就是对修饰词的管理。修饰词,帮助使用者在模型上做各种标记,这些标记在以后的代码生成和ui自动生成上具有重要的作用。
<!---->2、 <!---->引进模型
<!----><!----><!---->
除了自己从头创建模型,本工具支持从数据库中引入模型。但是需要指出的是,通常情况下,从数据库引入的信息只是一些基本的信息,对于准确的生成代码是不充分的。因为数据库系统的元数据并不考虑模型在代码生成中的用途。所以引入之后通常需要使用者补充必要的信息。
此外,为了能够从更多的来源引入模型,本工具在引入功能上设置了一个扩展点,通过这个扩展点,使用者可以把自己的引入逻辑挂接在本工具上,从而将其它形式的模型信息引入本工具中。
<!---->3、 <!---->模型基因
<!----><!----><!---->
可以参照Java接口的概念来理解模型基因。作为一种范型,模型基因描述了某一个模型应该具备的特征。与接口的不同之处在于,模型基因除了规范的作用,同时还是代码生成的逻辑,或者代码生成的模板。例如数据基因中定义了5个接口,当添加到模型之后,就会为该模型添加这5个方法的具体实现,下面看一段生成的代码示例:
/**
*查询函数,以json格式返回
*@param qxml String:查询字符串
*@param start int:开始索引
*@param limit int:结束索引
*@return String
*/
public static String queryByPage(String
qxml, int start, int limit) {
/*startqueryByPage*/
String s = "";
String total = "5";
Connection conn =
DBConnection.getConnection();
String wsql = XMLUtil.where_str(qxml);
try {
String csql = "select count(*)
as num from yuangong";
if (!wsql.equals("")) {
csql = csql + " where
" + wsql;
}
PreparedStatement cstmt =
conn.prepareStatement(csql);
ResultSet crs = cstmt.executeQuery();
if (crs.next()) {
total =
crs.getInt("num") + "";
}
crs.close();
cstmt.close();
s = s + "{'totalCount':'"
+ total + "','datas':[";
String sql = "select
yuangong.uuid,yuangong.label,yuangong.nianling,yuangong.zhiwei,yuangong.bumen,(select
label from bumen where bumen.uuid=yuangong.bumen) as bumenlabel from yuangong
";
if (!wsql.equals("")) {
sql = sql + " where "
+ wsql;
}
Statement stmt =
conn.createStatement();
ResultSet rs =
stmt.executeQuery(sql);
int i = 0;
int from = start;
int to = start + limit - 1;
while (rs.next()) {
if (i > to) {
break;
}
if (i >= from) {
if (i > from) {
s = s + ",";
}
s = s +
"{'uuid':'" + rs.getString("uuid") + "'";
s = s +
",'label':'" + rs.getString("label") + "'";
s = s +
",'nianling':'" + rs.getString("nianling") + "'";
s = s +
",'zhiwei':'" + rs.getString("zhiwei") + "'";
s = s +
",'bumen':'" + rs.getString("bumen") + "'";
s = s +
",'bumenlabel':'" + rs.getString("bumenlabel") +
"'";
s = s + "}";
}
i++;
}
s = s + "]}";
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
conn.close();
} catch (Exception e) {
}
}
return s;
/*endqueryByPage*/
}
<!---->4、 <!---->建模和代码编辑的双向同步
工具中实现了简单的代码和建模之间的双向同步功能。使用“同步”按钮,可以为选定的模型生成代码。使用“源码”按钮,切换到Java代码编辑器查看生成的代码,并可以修改(注意,这种修改是有限制的),然后可以将修改的结果反向同步的模型中。刚才我说修改是受限制的,指的是,使用者无法修改函数名和参数,也无法修改函数体前面的注视,只能修改函数体里面的代码。这也是出于以后的代码自动化的需要,以后的代码自动生成过程中,对这些接口的调用是根据模型基因中的规范来的,如果允许使用者修改函数名和参数的话,则调用这些接口的地方会产生冲突。
<!---->5、 <!---->基于模型的生成算法的扩展点
本工具中,模型作为生成代码的基础,在别的模块中使用。同时,本工具在此处设置了扩展点,使用者可以在此挂接自己需要的生成逻辑。例如基于模型生成Hibernate需要的配置文件和对象的功能。
<!---->6、 <!---->基于ExtJs的WebUI设计器
先看一下概貌:
<!----><!----><!---->
这是一个所见即所得的ui开发工具。帮助使用者开发ext前端应用。
<!---->7、 <!---->基于模型的UI开发助手
这是一个很能体现模型的作用的地方。通过模型提供的信息,可以快速的构建UI界面。
<!----><!----><!---->
大家看一下这个窗口,里面列举了很多可以添加到ui界面中的ui元素,向form,grid,tree等等。这些元素都是使用特定的算法,根据模型中的信息,准备的很完整的ui元素,拖放到UI界面上就可以使用的,包括所需要的js脚本,后台的java服务及对服务的调用,都会随着使用者的拖动鼠标的动作添加到ui模型中。希望大家赶紧下载示例代码体验一下。
最后再强调一点:提供这些元素的算法也是可以扩展的。这使得本工具在满足不同的使用者的生成不同风格、场景的代码方面,也具备足够的灵活性。只要你愿意,本工具绝对可以帮助你减轻写代码中的重复劳动。
<!---->8、 <!---->UI设计器和代码之间的双向同步
使用者可以随时将UI Designer中的编辑同步到源码中,使用Ctrl+D快捷方式,可以进行双向的同步。使用者可以在代码试图中修改UI界面上的控件的属性,也可以根据自己的需要添加js代码,这些会同步到ui模型中。
<!---->9、 <!---->单表和主从表向导
生成单表维护和主从表维护界面,来看一张截图:
<!----><!----><!---->
<!---->10、
<!---->脚本助手
本工具提供智能编程助手。在设计UI的时候就有一个这样的助手,可以帮助使用者快速添加js代码。先看一下外观:
<!----><!----><!---->
在编程助手窗口中,列出了助手为您准备的代码片断,双击一个选项,可以将该代码片断放入剪切板中,下面这段js就是编程助手自动准备的:
var
grd7=Ext.getCmp("mygrid");
var
d7=grd7.getStore().getCurrentRecord().get("id");
window.showModalDialog('','../bumen/bumen.editView.jsp');
这是一段实现双击grid中的一行弹出编辑界面的脚本。有了这样的编程助手,您可以省却编写js的工作量。虽然目前的编程助手只能为您准备这些实现控件之间的数据流动的代码,但是拥有了这个基础,使用者可以进一步丰富其功能,也可以通过网络获得我们的服务功能,是编程助手拥有更丰富的功能。
<!---->11、
<!---->图形化的Java代码开发
本工具提供的另外一个功能,可视化的java代码开发。看一下截图:
<!----><!----><!---->
这个功能我就不详细介绍了。只说一点,对于使用者来说,这个功能也是可以扩展的。通过提供自己的代码翻译器,使用者可以实现自己需要的图形表示,得到自己想要的代码。工具中提供了基本的实现:如方法调用、循环、判断、开关及常量、变量、参数、返回值的实现,目前支持生成java和js代码。欢迎有兴趣的同学下载示例体验一下。
- 大小: 122.2 KB
- 大小: 207 KB
- 大小: 35.6 KB
- 大小: 179.4 KB
- 大小: 153.8 KB
- 大小: 31.8 KB
- 大小: 141 KB
- 大小: 147.9 KB
分享到:
相关推荐
- 介绍了PLC的开发工具CODESYS,它是基于IEC61131-3标准的PLC综合开发工具。 - 讲述了IEC61131-3标准的来历和它所包含的编程语言。 - 简介了PLCopen组织,这是一个专注于推动基于IEC 61131-3标准的开放式、可互...
在文件列表中提到的"tvpvar_ox"可能是一个基于Python编程语言的Ox软件包实现的TVP-VAR模型。Ox是一种高度优化的C++编程语言,常用于经济学和金融学的计算任务,其Python接口使得研究人员可以方便地利用Ox的强大计算...
首先通过BERT模型预处理生成基于上下文信息的词向量, 其次将训练出来的词向量输入BiLSTM-CRF模型做进一步训练处理. 实验结果表明, 该模型在MSRA语料和人民日报语料库上都达到相当不错的结果, F1值分别为94.65%和95....
01.mapreduce编程模型--及hadoop中的具体实现框架--复习.mp4
嵌入式系统概述,ARM处理器的核心概述,ARM处理器的编程模型,嵌入式软件系统概述,嵌入式操作系统,嵌入式开发工具,嵌入式交叉开发环境,嵌入式开发调制,任务管理,任务调制机制,优先级反转,信号量概述,邮箱和...
项目概述:本项目是一个基于Keras框架实现的Faster R-CNN安全帽检测模型,主要用于识别图像中的安全帽穿戴情况。项目代码开源,托管于GitHub(https://github.com/DataXujing/Faster-R-CNN-Keras)。 技术细节: - ...
2. **框架结构** - 可能基于知名的PHP框架,如Laravel、CodeIgniter或Yii,提供了MVC(模型-视图-控制器)架构。 3. **核心类库** - 包含系统核心功能,如路由、会话管理、权限控制等。 4. **数据库模型** - 定义了...
R语言实现基于修正的ECM-DCC-GARCH模型的动态保值比计算
COST231-WI模型信道仿真,源码仿真matlab编程源码程序,分LOS和NLOS两种情况进行仿真分析。 Model=1; Hm=1.5; Hb=17; w=20; b=40; Phi=90; Hroof=15; f1=900; f2=1800; y1=wireless_Walfish_Ikegami_NLOS_attenuation...
多模态大模型微调_基于Lora对Qwen_VL多模态大模型进行微调_附项目源码+流程教程_优质项目实战
为了填补这一鸿沟,DeepSeek-Coder应运而生,它是一系列基于87种编程语言、2万亿个标记训练而成的开源代码模型,能够全面理解多种编程语言。 #### DeepSeek-Coder的关键特性与优势 ##### 多样化模型规模 DeepSeek-...
重叠I/O模型是Windows平台下进行高效网络编程的一种重要技术,它允许应用程序在等待I/O操作完成时继续处理其他任务,从而提高了系统的并发性和效率。在Visual C++(简称VC)环境中,开发者可以利用Windows API提供的...
该模型基于C++编程语言实现,C++是一种强大的、面向对象的编程语言,适合处理复杂计算和大型项目。"C++实现ITU-R P.1546传模"文件名表明了这是一个用C++编写的程序,它实现了ITU-R 1546标准中的算法和计算流程。 在...
总的来说,COST231-WI模型源码仿真MATLAB编程源码程序是一个实用的工具,它可以帮助研究人员和工程师更好地理解无线通信信道的行为,并在设计通信系统时做出基于真实环境的预测。通过深入学习和使用这些源码,我们...
(英)Mark Summerfield ,《qt高级编程》以工程实践为主旨,是对qt现有的700多个类和上百万字参考文档中部分关键技术深入、全面的讲解和探讨,如丰富的网络/桌面应用程序、多线程、富文本处理、图形/视图架构、模型/...
1、资源内容:基于opencv制作的工业图像检测处理工具-项目名称:基于机器视觉柔性加工辅助系统+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释...
书中详细讲解了BS(Black-Scholes)公式隐含波动率的计算、KMYV模型方程组的求解、移动平均Hurst指数的计算以及基于优化方法的指数追踪技术等高级主题,这些都是金融数量分析中的数值分析技术和MATLAB编程技巧的体现...
斯坦福机器学习编程作业machine-learning-ex3,Multi-class Classication and Neural Networks神经网络模型,非线性模型题目,满分,2015最新作业答案 Multi-class Classication and Neural Networks MATLAB
5. **编程与教学**:对于机器人操作员来说,三维模型也是学习和理解机器人工作原理的有力工具。他们可以在模拟环境中练习编程,熟悉机器人的运动控制,提高工作效率和安全性。 总的来说,“FANUC-M-20iA-三维模型”...