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
分享到:
相关推荐
基于java的开发源码-UDP服务器模型源代码.zip 基于java的开发源码-UDP服务器模型源代码.zip 基于java的开发源码-UDP服务器模型源代码.zip 基于java的开发源码-UDP服务器模型源代码.zip 基于java的开发源码-UDP服务器...
基于5G通信系统的Salen-Valenzula信道模型进仿真研究,matlab源码+word版本论文 研究了毫米波通信技术的基本特征,对基于毫米波的Salen-Valenzula信道模型进行介绍,并研究了一种基于簇生点过程Salen-Valenzula信道...
01.mapreduce编程模型--及hadoop中的具体实现框架--复习.mp4
嵌入式系统概述,ARM处理器的核心概述,ARM处理器的编程模型,嵌入式软件系统概述,嵌入式操作系统,嵌入式开发工具,嵌入式交叉开发环境,嵌入式开发调制,任务管理,任务调制机制,优先级反转,信号量概述,邮箱和...
项目概述:本项目是一个基于Keras框架实现的Faster R-CNN安全帽检测模型,主要用于识别图像中的安全帽穿戴情况。项目代码开源,托管于GitHub(https://github.com/DataXujing/Faster-R-CNN-Keras)。 技术细节: - ...
四种模型实现基于HMM-LSTM的股票市场趋势分析python源码+项目说明.zip 四种模型实现基于HMM-LSTM的股票市场趋势分析python源码+项目说明.zip 四种模型实现基于HMM-LSTM的股票市场趋势分析python源码+项目说明.zip 四...
2. **框架结构** - 可能基于知名的PHP框架,如Laravel、CodeIgniter或Yii,提供了MVC(模型-视图-控制器)架构。 3. **核心类库** - 包含系统核心功能,如路由、会话管理、权限控制等。 4. **数据库模型** - 定义了...
在文件列表中提到的"tvpvar_ox"可能是一个基于Python编程语言的Ox软件包实现的TVP-VAR模型。Ox是一种高度优化的C++编程语言,常用于经济学和金融学的计算任务,其Python接口使得研究人员可以方便地利用Ox的强大计算...
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多模态大模型进行微调_附项目源码+流程教程_优质项目实战
《基于MATLAB编程实现的DDP-PowerSystem详解》 MATLAB,全称为“矩阵实验室”,是一种高级的数值计算和可视化软件,广泛应用于工程、科学计算以及数据分析等领域。本项目"DDP-PowerSystem-master"是利用MATLAB编程...
7. **教程和文档**:好的辅助工具还会包含对Shader编程的指导和参考,帮助初学者快速上手。 8. **代码组织和版本控制**:对于大型项目,辅助工具可能会支持代码的分类管理,并与Git等版本控制系统集成。 在实际...
标题中的"GARCH-MIDAS、DDC-MIDAS模型MATLAB代码"指的是在金融计量领域中,使用MATLAB编程实现的两种重要的模型:GARCH-MIDAS(Generalized Autoregressive Conditional Heteroskedasticity with Mixed Data ...
斯坦福机器学习编程作业machine-learning-ex3,Multi-class Classication and Neural Networks神经网络模型,非线性模型题目,满分,2015最新作业答案 Multi-class Classication and Neural Networks MATLAB
要基于BERT模型实现中文文本情感分类项目,你可以按照以下步骤进行: 1. **数据准备**: - 准备标注好情感类别的中文文本数据集,可以使用情感分类数据集如THUCNews、ChnSentiCorp等。 - 将数据集分为训练集、...
【X-AnyLabeling的yolov7-onnx自动标注模型】是一款基于开源项目X-AnyLabeling的图像标注工具,结合了 yolov7 模型和 ONNX 格式,旨在提供高效的图像识别和自动标注功能。X-AnyLabeling 是一个强大的、灵活的图像...
1、资源内容:基于MATLAB实现的LeNet-5网络,基于cifar-10数据库+源代码+文档说明 2、代码特点:内含运行结果,不会运行可私信,参数化编程、参数可方便更改、代码编程思路清晰、注释明细,都经过测试运行成功,功能...
总之,LBM Shan-Chen模型是解决两相流问题的强大工具,结合C++编程,可以实现高效的数值模拟。通过深入学习和实践,我们可以进一步探索流体流动的复杂行为,例如气液界面的动态、流动稳定性以及湍流现象等,这对于...