从spring+struts到grails

本文探讨了从Spring+Struts平台迁移到Grails平台的过程,重点介绍了开发方式、契约式编程和页面开发等方面的转变,并强调了Grails在CRUD开发上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

虽然网上大量有人在宣传从Spring+Struts平台迁移到Grails平台的平缓,事实上也是如此。但资深的Spring+Struts平台开发人员迁移到Grails平台仍然需要有一些转变,其中大部分都是开发思想或者开发思路的转变。
  第一. 开发方式的转变。
  Spring+Struts平台的开发是平缓的,不管是CRUD,还是复杂的业务,Spring+Struts平台都要一视同仁,一步步来。对于 CRUD,它的简单只是在业务层,其他的,数据层、表现层Action、页面和它们之间的配置,一个都不能少,该做的都要做到。而复杂的业务,和简单的 CRUD的不同仅仅表现在业务层,多做的事情也大部分在业务层。
  而Grails平台的开发则是曲线式的,先快后缓。对于CRUD式的业务,在Grails平台只要一两个动作就完成了全部的功能。当然,我们必须对页面做一定的修改,以达到客户的要求。当CRUD业务完成以后,我们再在它们的基础上添加复杂的业务。
  往往从Spring+Struts平台转移过来的开发人员,会喜欢契约式的开发,而讨厌Spring+Struts的配置式的开发。对于Grails平台对CRUD开发的简化反而比较忽视,因为对于一个大型项目来说,CRUD所占的比例不大,而且很多开发人员也不认为Grails平台的脚手架产生的代码对他们有多少帮助,因为页面需要定制。
  其实,从我的经验来说,对于一个大型项目,CRUD所占的比重大约为五分之一到四分之一的样子,而在小项目中,CRUD所占的比重会更大一些。因此,虽然一个大项目开发完成以后,我们不记得我们曾做过CRUD的开发,但不可否认的是CRUD的开发在 Spring+Struts平台的确占了我们一部分的开发时间。Grails平台对这部分时间的节省,对我们来说也是值得庆贺的。
  所以,在Grails开发平台,当然拿到一个模块的时候,我们第一步要做的,不是按照业务的要求,按部就班的进行开发;而是首先要把其中的CRUD部分抽取出来,交给Grails平台来帮我们实现。然后,我们在它的基础上去做更为复杂的业务。这就要求我们在设计SD文档和demo的时候,要尽量将业务中的 CRUD抽取出来,集中而不是分散。这样有利于Grails平台来帮我们实现CRUD的功能。
  第二. 有关契约
  契约式编程相比较于配置式编程,在效率上的确高了很多。但需要注意的是,我感觉,对于大型项目来说,在编码的同时,维护一下controller、 action、服务层和页面的关系仍然是有很大的必要的。但这种维护是文档式的维护,不会干扰到程序和测试服务器的运行。一旦有了这个文档,在项目的维护过程中的作用是显而易见的。当然了,这种维护要我们更为细心,不要出错。因为如果在Spring+Struts平台,配置文件出错的话,测试服务器运行时会出问题的,这也是Spring+Struts平台配置讨厌的一个原因,一个人维护出错,down过他的代码的人的测试服务器都跑不起来。但文档维护显然没有这样的纠错机制,它的正确性需要的是维护人员的细心。
  就我的经验而言,使用契约的地方越多,就越需要文档。维护文档虽然会降低你的开发速度。但在项目的维护过程中,对你的维护效率的提高又是不言而喻的,特别是开发人员和维护人员不是同一个人的时候。
  第三. 有关页面开发
  传统的Spring+Struts平台的开发,我们直接把demo的页面拿来,转化成jsp文件,再在相应的位置填充所需要的变量,然后跟后台交互。
  而Grails平台的开发,我们是先开发CRUD业务,即由平台帮我们生成gsp文件,然后再根据demo的页面要求,修改它的Layout和填充必要的样式。
  然后,再由CRUD业务的页面铺展开来,继续完成其他的较为复杂的业务。复杂业务的gsp文件可以由demo的页面直接转化过来。
内容概要:《中文大模型基准测评2025年上半年报告》由SuperCLUE团队发布,详细评估了2025年上半年中文大模型的发展状况。报告涵盖了大模型的关键进展、国内外大模型全景图及差距、专项测评基准介绍等。通过SuperCLUE基准,对45个国内外代表性大模型进行了六大任务(数学推理、科学推理、代码生成、智能体Agent、精确指令遵循、幻觉控制)的综合测评。结果显示,海外模型如o3、o4-mini(high)在推理任务上表现突出,而国内模型如Doubao-Seed-1.6-thinking-250715在智能体Agent和幻觉控制任务上表现出色。此外,报告还分析了模型性价比、效能区间分布,并对代表性模型如Doubao-Seed-1.6-thinking-250715、DeepSeek-R1-0528、GLM-4.5等进行了详细介绍。整体来看,国内大模型在特定任务上已接近国际顶尖水平,但在综合推理能力上仍有提升空间。 适用人群:对大模型技术感兴趣的科研人员、工程师、产品经理及投资者。 使用场景及目标:①了解2025年上半年中文大模型的发展现状与趋势;②评估国内外大模型在不同任务上的表现差异;③为技术选型和性能优化提供参考依据。 其他说明:报告提供了详细的测评方法、评分标准及结果分析,确保评估的科学性和公正性。此外,SuperCLUE团队还发布了多个专项测评基准,涵盖多模态、文本、推理等多个领域,为业界提供全面的测评服务。
资源下载链接为: https://pan.quark.cn/s/f989b9092fc5 单点定位是卫星导航技术的核心方法,通过接收卫星信号来确定接收器在地球上的位置。它主要涉及分析卫星发射的时间戳、伪距以及卫星轨道信息。MATLAB凭借其强大的数值计算和数据处理能力,可以用来编写程序实现单点定位。RINEX(Receiver Independent Exchange Format)观测文件是一种通用格式,用于存储各种接收机产生的观测数据,如伪距、载波相位和多普勒频移等,便于不同软件进行数据交换和处理。 在MATLAB中实现单点定位的程序通常包括以下步骤:首先,读取RINEX观测文件,解析卫星信号数据,包括处理文件头信息、识别有效观测时段以及提取卫星ID、伪距和时间戳等关键信息。其次,利用星历数据计算卫星在特定时间的位置。星历数据由卫星导航系统地面站提供,包含卫星的精确轨道参数。接下来,对原始伪距进行改正,考虑大气延迟、卫星钟偏和接收机钟偏等因素,这需要对大气折射率进行建模以及估计卫星和接收机的时钟误差。然后,基于改正后的伪距,利用三角定位原理计算接收机的位置,通常采用最小二乘法或其他优化算法来获得最佳解。最后,将计算出的接收机位置与已知点坐标进行比较,评估定位精度,并以经纬度、海拔高度等形式输出结果。 在MATLAB程序single_point_position.m中,可以看到上述步骤的具体实现。代码可能包含RINEX文件解析函数、卫星轨道计算模块、伪距改正函数以及定位计算和输出部分。通过学习和理解该源码,不仅可以深入掌握单点定位原理,还能提升MATLAB编程和处理导航数据的能力。单点定位在实际应用中常用于初步定位或作为更复杂定位方法的基础,如差分定位和动态定位。它在科学研究、导航设备测试和大地测量等领域具有重要价值。通过不断优化这些程序,可以提高定位精度,满足实际需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值