最近在新公司学习一个新框架:UMA,是Cloverworxs的,不是开源项目,也不是商业项目,所以google上是找不到的
这个框架是老美设计,感觉他们在逻辑的抽象上功底更强一些,这个应该和软件开发的大环境经验积累有关系吧。
首先先他把一个request发给controller,controller根据service(service是使用spring加载的,主要用于封装handler和target)把请求封装后发给handler,handler根据请求参数找到fenture,而feature则根据请求参数交给具体action来处理。action主要就是调用业务模型层的接口了。然后action处理完之后会返回到controller,controller根据service调用target,target则调用配置的render(可能多个),然后rende从业务模型层的接口中取回数据并进行显示准备,最后把数据封装到一个RDO中,然后把RDO放置到attribute中,然后再页面上读取显示。
初学这个框架,看得是作者的英文文档,首先得感觉是层次的抽象的有些细,因为以往做过的项目中,render和handler,feature的代码都是放在控制层来处理了(通常是struts的action)。但是这种详细层次也能感觉到的好处就是,当某一层次要变动时不需要到action中去找变动代码,而且当出于某种考虑要针对于某一层进行统一处理(如安全性处理)时就比较方便了。
看完文档觉得对框架已经有了一个深入的认识,开发时应该比较快上手了吧,但是实践中却发现,在每一层的实现代码中由于框架引入了很多的完善特性,所以每一层的代码有很多细节的实现问题是需要一点一点理解去掌握的。而且学习的代码是一个完整的项目,这个完整的项目有一个问题就是,有几十个模块,模块间的代码有相互耦合的问题,反而造成了我阅读代码的困难。结果用了一个多礼拜的时间才算基本上手框架。
总结问题,发现主要有两个:
1、太过相信文档,其实文档只是一个大体框架的介绍。所以我应该多和有经验的开发者交流,并且要配合代码具体细节
2、一个框架应该有一个简单的清晰的demo,只涉及一个模块,清晰,明确,这样就不会再阅读学习时陷入模块逻辑和框架逻辑中。因为从代码中你很难分辨出哪些是框架逻辑,哪些是模块逻辑。
分享到:
相关推荐
在深入探讨Laravel框架之前,我们先来了解一下什么是框架以及Laravel的特点。框架是一种预先编写好的代码库,它提供了一种结构,可以帮助开发者快速构建Web应用程序,减少重复性工作,提高开发效率。Laravel作为PHP...
学习SSH框架的过程中,你可能会遇到以下关键知识点: 1. **MVC模式**:理解MVC架构的基本原理,如何在Struts中划分模型、视图和控制器,以及它们之间的协作方式。 2. **Struts配置**:学习struts-config.xml和web....
在"exam-platform"这个项目中,我们可以学习到如何将这三个框架有效地集成,构建一个完整的Web应用。这可能包括用户认证、权限管理、数据持久化、业务逻辑处理等多个方面。开发者可能分享了如何配置Struts2的action...
SSH框架是Java开发中常用的三大框架整合,包括Spring、Struts和Hibernate。这些框架的结合为开发者提供了便捷的MVC...对于Java开发者来说,熟练掌握SSH框架能增强解决问题的能力,但也要保持对新技术的关注和学习。
在深入学习时,你会遇到Java集合框架,它包括数组列表、链表、队列、栈、映射等数据结构。这些集合工具能帮助你有效地存储和管理数据。特别是HashMap和ArrayList,它们在实际开发中有着广泛的应用。 异常处理是Java...
PyTorch深度学习框架介绍、心得体会与实践项目.md
### PKPM学习心得体会——筏形基础设计与软件应用 #### 一、筏形基础概述 筏形基础是一种广泛应用于高层建筑中的基础形式,它能够有效地将建筑物的荷载分布到较大的地基面积上,从而降低地基上的压力,提高建筑物...
在对"(学习体会)03-16关于学习完行政管理课程的体会.zip"进行解压后,我们获得了文档"(学习体会)03-16关于学习完行政管理课程的体会.docx"。这份文档是一位学习者对行政管理课程的深度反思和体验总结,从中我们...
系统的总结了JavaEE 开发过程中用到的各大主流框架,及一些常用的开发工具的使用说明
新会计准则的学习与心得体会 新会计准则是我国会计领域的一次重大改革,旨在与国际会计准则接轨,同时根据现代会计环境进行调整,增强其基础性和可操作性。通过对新会计准则的学习,我们可以从以下几个方面来理解和...
作为一个开放且可扩展的IDE,Eclipse 集成了多种开发工具,如CVS版本控制系统、JUnit测试框架和Ant构建工具。内置的JDT插件让Eclipse成为一个强大的Java开发环境,但通过添加C/C++插件,Eclipse也可转变为C/C++开发...
新会计准则的学习心得体会 新会计准则的制定与实施是中国会计界的一大改革,旨在与国际会计准则接轨,提高会计信息质量,适应现代经济环境的变化。在学习过程中,我对其有了更深入的理解,以下是我对新会计准则的...
通过阅读《学习新课程改革心得体会》这一文档的内容,我们可以从中提炼出有关新课程改革的核心理念、实施策略及其对学生和教师产生的影响等方面的重要知识点。 ### 一、转变观念,迎接新挑战 新课程改革的核心在于...
总的来说,这篇中学生学习体会提供了一个全面的学习框架,包括预习、笔记、复习、个性化学习方式、课外阅读和积极态度。这六个方面共同构成了一个高效的学习系统,对于提升中学生的学习效果具有重要的指导意义。无论...
此外,jbpm使用Hibernate作为默认的ORM框架,因此熟悉Hibernate的使用也是很重要的。 jbpm的部署涉及到流程定义的打包和安装。通常,流程定义以.bpmn或.xml文件的形式存在,可以通过jbpm提供的工具或API进行部署。...
《VC学习5-我们学习VC的心得与体会》 在编程的世界里,Visual C++(简称VC)无疑是一把锋利的剑,它以其强大的功能和丰富的库支持,深受程序员们的喜爱。这篇压缩包文件“VC学习5-我们学习VC的心得与体会”正是为...
Struts是Java Web开发中的一个经典框架,由...不断的学习和实践,使开发者能够对Struts有更深的理解,从而在日常工作中实现“新的体会”。通过持续的探索和优化,开发者可以更好地应对各种挑战,提升自己的技术水平。
敏捷开发和Scrum框架的学习,提高了我的项目组织和管理能力。 通过培训,我认识到了持续学习和自我提升的必要性。Android技术不断更新迭代,作为一名合格的Android开发者,我们需要时刻保持敏锐的洞察力,关注最新...