轻量级的代码生成方案选择-Java基础-Java-编程开发

Java轻量级框架选择 目前,打算做一个手机应用的程序,包括android和ios,并都打算使用原生开发。与前端应用交互的后台打算使用Java来开发(本来想用Groovy,但还是对其不熟悉,只好作罢)。用Java就涉及框架选择问题,想选择一个轻量级的,毕竟自己一个人做,所以想用一个开发效率高、很轻、又不失扩展能力的,所以如果没有太好选择的话,就还是使用SSH。后来发现了Spring boot、JFinal和Nutz,最后 阅读详情
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>

上次说到MyAppfuse要有一个代码生成工具, codegeneration.net上汇集了各种平台各种语言的工具。

其中一些用到UML做元数据的,就变成了上年最流行的MDA tool。MDA其实是超级炒冷饭了,偶N年前的毕业论文做的就是这个题目,现在再看进步也不大。

不过想下也正常。因为MDA是由模型、实现和转换程序三者构成的,如果模型定义飞速发展了,与底层实现之间必定会形成巨大落差,需要转换程序做大量工作来消弥。当落差足够大时,就会很少人愿意做这个转换工作。而为了减少落差,一是等底层实现的发展,但这是整个IT界的事情,不是MDA开发者的个人问题。另外就唯有减低模型定义的高度,比如AndroMDA,很多现成的模板都只依赖于UML静态Class图,同时使用大量的Tagged Value,看上去和一个xml格式的自定义模型没什么区别。

所以,一来受底层实现的制约,二来OMG的结构也不像个很高产的组织,MDA忽然爆发,大家洗脚上田不用再Coding的机会不大。但随着AOP,Meta-Data,O/R Mapping,IOC Container这些底层的发展,还有微软DSL对UML的冲击,MDA还是会继续慢慢发展,毕竟这是我们的梦。

当下还是挑些轻量级的代码生成方案比较实际。我挑的是XML格式的自定义模型 jsp/Freemarker模板。当然也可以像Appfuse那样用XDoclet,但我觉得XDoclet的扩展性,管理性和适用范围都是最低的。也可以不用模板,用C#/Java程序完全控制代码的生成,这种方式现在又多了Python,Ruby这些动态语言可供选择。

但我还是习惯模板多一些。比如jsp,可以用Httpclient访问jsp,获得返回内容来生成文件。而xml格式的元数据, 可以通过Filter放入到Request或者Session中。

不过,现在流行Velocity和Freemarker。两者之间可以用三局两胜制决出。

一,Freemarker网站上有一篇文章,列出了Freemarker语法上比Velocity优胜的地方。

二,但现在的PM不能够这么狭隘的从纯技术角度看问题的了,Velocity有着比Freemarker多得多的用户群体,比如AndroMDA, IntelliJ IDEA。

三,又但是,对于这种用XML格式定义的元数据,Freemarker有一个很少被提到,但无匹的优势--内置了XML DOM的访问语法。比如以下的元数据:

<table>
<column name="id"/>
<column name="name"/>
</table>

Freemarker可以这样列出table下所有column的name:

<#list table.* as column>

${column.@name}

</#LIST>

对比Velocity要使用JDom的API,简单了不知多少倍。就这点,让Freemarker胜出,因为Code Generate的过程中,实在要访问太多的xml元数据。也是这点,让我在jsp和freemarker间模棱两可。本来,因为生成的是代码,不是页面,freemarker markup-language化的优势并不存在。而jsp的好处是人人都懂,而且有最好的IDE,扩展性还超强,可以做任意的事情。

不过,说到底, 用什么做模板,其实不是件很重要的事情,这里只是写一下group memoring,记录低决定的过程。

Trae与Cursor对比研究报告:AI编程工具的技术博弈与开发者选择 对于一个涉及多个模块和复杂业务逻辑的项目,doubao-2.0 能够更全面地分析项目的上下文信息,准确把握各个模块之间的关系,从而生成更加优化的代码,提高项目的整体质量和性能。同时,Trae 还会自动运行相应的命令,完成项目的初始化和依赖安装。在处理一个大型的企业级 Java 项目时,当需要对多个模块的代码进行重构以优化性能时,Cursor 凭借其强大的代码理解能力和多文件协同编辑功能,能够准确识别各个模块之间的依赖关系,自动生成重构建议,并同步修改相关文件中的代码,确保整个项目的一致性和稳定性。 阅读详情

相关推荐

OpenAI Codex CLI开源:轻量级编程Agent如何提升开发效率?

什么是Codex CLI?OpenAI Codex CLI是一个命令行工具,开发者可以通过命令行与Codex进行交互,执行代码生成、查询、修改等任务。Codex CLI不仅支持自动化代码生成,还能理解开发者的自然语言需求,并根据要求输出相应的代码片段,涵盖了多种编程语言,包括Python、JavaScript、Ruby、Java等。Codex CLI的核心优势在于它能够将自然语言处理(NLP)与编程语言之间的桥梁搭建起来,开发者可以用更加直观、简便的方式实现复杂的编程任务。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1223

【Docker】搭建一个轻量级项目代码管理平台 - Gitea

Gitea是一个开源的 Git 服务软件,旨在提供一个轻量级、易于安装和使用的自托管Git服务。它是用 Go 语言编写的,这意味着 Gitea 能够在多种平台上运行,包括 Windows、macOS、Linux 和 ARM 设备等。Gitea 的设计哲学是保持简单和高效,同时提供必要的特性来支持团队协作和代码管理。主要特点:开源和自由:Gitea 是完全开源的,遵循 MIT 许可证,允许用户自由使用、修改和分发。轻量级和高性能。

小小笔记大大用处 4544

Java Web轻量级开发全体验12-13.代码

Java Web轻量级开发全体验12-13.

Java代码生成的设计方案与实践(转)

diboot devtools 2.0 已经发布上线,实现了精简内核+后端开发助理。在此把我们目前代码生成部分的设计思路梳理一下,以便需要的朋友少走一些弯路。 1. 编程技术的发展趋势 最近观看《美国工厂》的感触:在传统制造业,当生产线的工人成本高昂效率低下的时候,企业管理者便会开始探寻降本增效之道,自动化便是首选的解决方案。 软件工程类似于建筑工程有着其自身的复杂度,但即便是像更复杂的汽车制...

wanghao112956的博客 897

基于eclipse的Java代码规范自动生成技术

java代码checkstyle的规范检查点特别多。再加上同时还有部门自己的一套编码规范,在eclipse开发环境中,研发人员很难驾驭如此多的条条框框。本文提供的技术能轻松的解决研发人员关于编码规范的苦恼,因为这部分工作由本人提供的脚本已完全能够自动生成。当然这里的编码规范不包括java语言本身的使用机制,也就是说java代码的使用与否只能由研发人员控制,不可能由自动化脚本完成。 使用本文技术的好处: 1. 能把checkstyle检查单中检查出的80%的错误自动排除,如关于tab键的使用问题。如果不使用本人的脚本,每个研发人员要在eclipse中配置一遍或干脆不使用tab键,加上eclipse使用上并不直观并且该软件经常出错,所以对研发人员来说这是很痛苦的一件事情。当然编码规范远远不止tab的禁止使用问题,如空格,换行等很多细节问题,所以每次都要这样配置,将极大的影响工作效率; 2. 把checkstyle中的大部分错误排除后,即使checkstyle检查单中还有少量错误,也往往是与具体的编码有关,这对研发人员集中精力于java技术本身就非常有意义了; 3. 由于本人提供的自动化脚本既包括注释的规范化,同时也包括对代码格式的规范化,这对提升java代码整体质量意义重大; 4. 把研发人员从纠缠于编码规范细节的锁细工作中解脱出来,极大地提升了工作效率,否则光是看到checkstyle检查单上的一堆错误,不仅伤及信心,同时要逐个去纠正,工作量将极其巨大; 建议:由于本文提供的技术十分实用,建议在部门尽快推广使用之,这对提升过程质量及研发人员的工作效率非常有帮助。

探针卡技术演进:从金线微针到MEMS探针的Wafer Sort革命

本文探讨了探针卡技术从传统金线微针到MEMS探针的演进,及其对晶圆测试(Wafer Sort)的革命性影响。随着芯片焊垫间距进入45微米以下,MEMS技术凭借其超高精度、超长寿命和卓越的信号完整性,成为应对高密度、高速及3D IC测试挑战的关键,显著提升了测试效率与稳定性。

lstm7chronicler的博客 365

四种动态生成Java代码的方法

四种动态生成Java代码的方法(一)  -------------------------------------------------------------------------------- 摘要: 本文介绍了如何在普通Java程序中应用代码动态生成技术,并测试、比较了各种实现方法的性能。 提纲: 一、概述 二、表达式计算器三、解释法 四、解析法五、编译法 六、生成法 七、性能和...

一条鱼 + 一条鱼 2522

Python3.8下MvCameraControl.dll加载失败?3种方法彻底解决FileNotFoundError

本文针对Python3.8及以上版本在Windows平台调用MvCameraControl.dll时出现的FileNotFoundError问题,深入剖析了其根源在于Python 3.8引入的DLL加载安全机制变更。文章提供了三种核心解决方案:显式指定DLL完整路径、使用os.add_dll_directory()添加可信目录,以及利用ctypes的winmode参数进行精细控制,并给出了工程化封装建议,帮助开发者彻底解决此兼容性问题。

weixin_29093017的博客 193

轻量级的代码生成方案选择

第3版--2005.6.22更新        上次说到MyAppfuse要有一个代码生成工具, codegeneration.net上汇集了各种平台各种语言的工具。    其实代码生成是和代码重复的bad smell一样古老的东西了,不过在这个时代里,大家充分发掘了继承,委托,反射,甚至AOP的之后,coding 依然boring,依然重复,这时候就需要从一个更抽象的层次去描述系统,然后再生成我

花钱的年华 8726

【信息学奥赛一本通】1215:迷宫(bfs版)

同时当Extense处在某个格点时,他只能移动到东南西北(或者说上下左右)四个方向之一的相邻格点上,Extense想要从点A走到点B,问在不走出迷宫的情况下能不能办到。每组测试数据的第1行是一个正整数n(1≤n≤100),表示迷宫的规模是n×n的。接下来是一个n×n的矩阵,矩阵中的元素为‘再接下来一行是4个整数ha,la,hb,lb,描述A处在第ha行, 第la列,B处在第hb行, 第lb列。一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n×n的格点组成,每个格点只有2种状态,.

chu_xiaojie的博客 946

爬取百度图片

最开始,我们想要爬取图片,首先需要打开百度图库,然后在搜索栏中输入自己想要的图片(比如说壁纸)。接着右键检查,点击网络:起初可能没有名称信息,刷新界面就可以了。打开信息,查看标头内容可以看到请求URL为:复制这串URL,然后在浏览器中打开这个就是我们搜索的壁纸图片的网页内容。怎么找到图片的URL呢?在上述内容中,找到data,可以发现里面每隔一个aiEditData,下面代码的形式是一样的,就相当于一张图片。

weixin_54143563的博客 1943

Java-WebSocket框架对比:为何选择纯Java实现的轻量级方案

你是否在寻找一个无需依赖大量外部库、可轻松嵌入现有Java应用的WebSocket解决方案?是否在为不同框架间的兼容性问题、学习曲线陡峭或部署复杂度高而困扰?本文将深入对比主流Java WebSocket框架,剖析纯Java实现的轻量级方案——Java-WebSocket的核心优势,并通过实战案例展示其在资源受限环境下的卓越表现。 读完本文,你将能够: - 清晰分辨各主流Java WebSock...

gitblog_01048的博客 674

从HPPC测试到Simulink仿真:锂电池二阶RC模型参数辨识完整流程

本文详细介绍了从HPPC测试到Simulink仿真的锂电池二阶RC模型参数辨识完整流程。通过HPPC测试获取实验数据,利用Simulink的Parameter Estimation工具进行参数辨识和模型验证,为BMS算法开发提供精确的电池模型。文章涵盖测试设计、数据预处理、模型搭建及工程应用等关键步骤,助力新能源电池研发。

whisky的博客 685

无需GPU也能玩:Yi-Coder-1.5B轻量级代码生成方案

本文介绍了如何在星图GPU平台上一键自动化部署【ollama】Yi-Coder-1.5B镜像,实现轻量级代码生成。该方案支持52种编程语言,无需GPU即可快速生成代码片段,适用于日常编程辅助、学习参考和快速原型开发,显著提升开发效率。

weixin_42577243的博客 302

Huber损失函数中的阈值δ是如何确定的?

Huber损失函数通过阈值δ将误差划分为两部分:当误差小于等于δ时,采用平方损失(MSE),以保持对小误差的敏感性;当误差大于δ时,采用线性损失(MAE),以降低异常值对模型的影响。

百态·数智思维 | 聚焦大数据、量化与未来AI 1931

从理论到实践:AI设备维护系统的架构实现

第一部分:理论基石——从设备维护的演进讲起,理解AI如何重塑维护模式;第二部分:架构设计——详解六层高可用系统架构,明确各层职责与技术选型;第三部分:核心技术——拆解数据处理、特征工程、模型训练、部署等关键环节的实现细节;第四部分:实践落地——8步流程带你从需求到上线,附代码示例与工具链;第五部分:案例研究——风电齿轮箱预测性维护系统的真实案例,从问题到方案再到效果;第六部分:挑战与展望——探讨当前技术瓶颈与未来趋势(数字孪生、联邦学习等)。准备好了吗?

大数据洞察的博客 1252

如何选择Docker基础镜像

如何选择Docker基础镜像 镜像官网 操作系统基础镜像 busybox Alpine CentOS Ubuntu Debian 编程语言基础镜像 Java基础镜像 Python基础镜像 NodeJs基础镜像 应用基础镜像 Nginx基础镜像 Tomcat基础镜像 Jetty基础镜像 其它基础镜像例子 Maven基础镜像 Jenkins基础镜像 GitLab基础镜像 ...

锐意工作室 3万+

偏最小二乘回归分析原理详解和案例分析实例

偏最小二乘回归分析原理详解背景偏最小二乘回归分析 Partial least squares regression analysis基本思想建模步骤步骤一:分别提取两变量组的第一对成分,并使之相关性达最大步骤二:建立 y1,⋯ ,yp\boldsymbol{y}_{1}, \cdots, \boldsymbol{y}_{p}y1​,⋯,yp​ 对 u1\boldsymbol{u}_{1}u1​ 的回归及 x1,⋯ ,xm\boldsymbol{x}_{1}, \cdots, \boldsymbol{x}_{

从事脑科学核磁共振方法学研究,在Nature communications等权威期刊发表研究论文,熟练掌握磁共振处理方法和统计学方法,欢迎大家和我交流。 9977

Qwen2-0.5B代码生成能力详解:从基础编程到复杂算法实现

**Qwen2-0.5B**作为阿里通义千问系列的最新轻量级大语言模型,在代码生成领域展现出了令人印象深刻的性能。这款仅有0.5B参数的模型在多项编程基准测试中超越了同规模竞品,为开发者提供了一个高效、轻量的AI编程助手解决方案。 ## 🔥 核心优势与性能表现 根据官方性能数据,Qwen2-0.5B在代码生成基准测试中表现优异: | 测试基准 | Qwen2-0.5B得分 | 对比模型 |

gitblog_00092的博客 828

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

0基础学习开发模块的话怎么选择合适

🔹。

王景程的博客 1555

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java轻量级框架_轻量级的Java 开发框架 Spring

Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集...

weixin_36054993的博客 3855

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

上一篇: Java咖啡馆(8)——大话面向对象(下)-Java基础-Java-编程开发
下一篇: Web Service安全机制探讨-Java基础-Java-编程开发
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值