重构的MVC模式研究

2024-06-19

重构的MVC模式研究(共6篇)

重构的MVC模式研究 篇1

0、引言:

传统的Java Web开发模式是基于Model2的MVC开发模式。基于这种模式的Web应用的运行逻辑是由一系列的页面切换构成的,每一个页面都是不可分割的最小单元,要更新页面中的数据必须对页面进行整体刷新。AJAX技术的出现,很好的改变了传统的web开发模式,提高了用户体验,它让用户体验的是一种连续的状态,避免了传统的web应用请求-等待-响应的流程,让用户可以连续发送多次异步请求,而无需等待服务器响应。

随着技术的发展,表现层的功能和设计已经变得越来越复杂,现在已经不再是表现层里只有HTML元素。在新的设计中,表现层已经成为了一个跨越Server端和Client端的子系统,既有对UI组件的管理,又有对AJAX通信的封装。它的复杂度甚至已经超过了原本被我们认为是绝对核心的业务逻辑层和持久化层。所以,进一步将MVC设计模式引入到表现层中已经成为一个非常现实的话题。文章阐述了传统MVC模式的特点,并对Ajax新技术的通信机制进行分析,在此基础上提出了重构的MVC模式。

1、传统的Web表现层技术

传统MVC设计模式重新定义了B/S模式结构应用的开发模式,MVC模式规定B/S结构应用应该分成3个部分:Model、View和Controlle, MVC模式分离的数据访问和数据表现,给系统提供了更好的解耦。MVC框架的核心思想是:将程序分成相对独立而又能协同工作的3个部分。通过使用MVC架构,可以降低模块间的耦合,提供应用的可扩展性。MVC的每个组件只关心组件内的逻辑,不应该与其他组件的逻辑混合。

对于B/S结构的应用程序,应用程序状态被保存在服务器端,因此客户端使用B/S结构应用程序是一种请求/响应的程序架构,当客户端的一个请求发送之后,在服务器的响应还未抵达客户端值钱,用户什么也不能做,只能处于等待状态,且看到的是一片空白。

传统的B/S结构的请求是一种独占式的请求,而其每个请求对应一个页面,因此当服务器响应到达客户端时,浏览器都会重新转载该响应,从而导致频繁的页面刷新。因为传统B/S结构应用的每个页面的使用时间都很短暂,因此不可能将该页面制作成丰富的页面。

目前基于MVC模式的web框架层出不穷,虽然各有优点,但都是以独占式的方式请求服务器资源,客户仍然需要等待。

2、Ajax技术介绍:

Ajax并不是一门全新的技术。Ajax所使用的JavaScript, CSS和DOM对象等早已存在。Ajax通过这些传统的对象改善用户的交互体验,让用户能异步发送请求:在浏览页面的同时,向服务器发送请求。

Ajax加入了XMLHttpRequest对象,这个对象提供了与服务器交互的能力,可以异步发送请求,提供与服务器异步通信的能力,无须独占用户在页面上执行的操作。因而,Ajax给用户一种全新的体验。

Ajax技术的出现,改变了传统Web应用的模式,它既是对传统Web应用的完善,也是对传统Web应用的革命。Ajax技术采用异步发送请求的方式代替采用表单提交来更新Web页面的方式,从而揭开了无刷新动态更新页面时代的序幕。Ajax可以成为Web应用开发史上的里程碑。

Ajax应用特别适用于交互较多、频繁读数据、数据分类良好的Web应用。大致上,使用Ajax技术有如下优势:减轻客户端的内存消耗。Ajax的根本理念是"按需取数据",所以最大可能地减少了冗余请求,避免客户端内存加载大量冗余数据。无刷新更新页面。通过异步发送请求,避免频繁刷新页面,从而减少用户的等待时间,提供给用户一种连续的体验。Ajax技术可以将传统的服务器工作转嫁到客户端,从而减轻服务器和带宽的负担,节约空间和带宽租用成本。

Ajax采用了"按需取数据"的模式,这种模式降低了数据的实际读取量,在传统的Web应用里,服务器的每次响应都是一个完整的页面;而在基于Ajax技术的Web应用里,服务器的响应只是必须更新的数据。如果服务器响应数据过大,那么传统Web应用将出现重新加载的白屏;由于Ajax采用异步的方式发送请求,页面的更新由JavaScript操作DOM完成,因此,在读取数据的过程中,浏览器中也不会出现白屏,而是原来的页面状态。

企业通过使用Ajax可以增强网站的功能,改善用户体验。用户可以通过滚动屏幕浏览大量的信息,可以更方便地将物品拖入在线购物车或者在线配置产品,而这些都无须刷新页面。事实上,相当多的企业都在考虑使用Ajax技术来改善用户的体验。

3. AJAX对Web开发模式的冲击

基于Model2的MVC开发模式中,存在一种假设----Web应用的运行逻辑是由一系列的页面切换构成的,这里的每一个页面一般来讲都不是特别复杂,往往有着非常特定的功能和目的。同时页面对于浏览器而言又是不可分割的最小单元,要更新页面中的数据必须对页面进行整体刷新。

利用AJAX的通信机制结合一套好的UI组件,我们完全可以把上面所有的这些操作都合并到一个界面当中。如果产品信息并不复杂,我们可以使用一个可编辑的Grid组件,让用户直接在Grid中进行产品信息的维护。如果产品信息比较复杂,我们可以在界面上再放置一个产品信息的维护表单,用户可以直接在Grid中选择要编辑的产品。所有这些编辑操作的结果都会暂时的缓存在客户端,直到用户完成了上面的各个步骤再一次性的利用AJAX技术提交到后台。这样,在整个操作过程当中用户始终不需要离开这个界面。

由上面的分析可见,AJAX一出场便推翻了Model2的基本假设,用户操作已不再是由一系列页面的更替和刷新构成的了。因此表现层开发技术的升级必然将导致对于MVC设计模式的重新思考和定位。

在传统Web应用中,有着大量的页面流,我们需要一种有效的机制对它进行管理。同时由于表现层的功能相对非常薄弱,控制器往往还要承担起为表现层准备数据的工作。这些在控制器中准备好的数据一般都是利用上下文(如Request的Attributes)以推的方式交给表现层,即推模式(Push Mode)。这种推模式在页面总是以整体刷新的方式获得更新的开发方式中并不会出现什么问题,看起来一切都可以良好的运转。可是当AJAX出现之后,这种运转机制就出现了问题。因为AJAX强调的是减少页面的整体刷新,代之以局部数据刷新。当一个局部数据刷新的请求从客户端被发起时,表现层必须有能力主动的获得所需要的数据。这种操作类似于客户端通过表现层从后端的数据模型中的拉取数据,即拉模式(Pull Mode)。这一功能需求又与传统的Model2思路产生了抵触。回顾上面的分析,我们已经在传统的Model2和AJAX之间找到了两个冲突点:1、对页面流的基本假设不同2、推模式和拉模式的矛盾

4、重构MVC开发框架

Model2和AJAX之间存在着不和谐,这是一个不争的事实。但并不是说我们就必须因此而全盘否定掉传统的MVC架构模式。事实上,企业在过渡到AJAX的过程当中,目前MVC开发框架中的主体仍可以保留下来,只是我们需要对其中的局部进行一些调整。我们将这个过程称之为对MVC开发框架的重构。在这个重构过程当中,首当其冲面临调整的就是控制层,我们需要重新为控制层找到一个定位。如果说在传统的Web应用开发模式中控制层的作用是解耦数据模型和页面的话,那么在新的表现层技术引入之后,控制层的作用就应该是解耦数据模型和表现层的数据接口。如此一来Server端的表现层逻辑就全面接管了与Client端的通信,对于Client端来讲控制层被隐藏到了表现层的后面,只负责表现层与数据模型之间的对接。相应的,原先MVC架构与Client端形成的三角关系也就演变成了垂直分布的三键模式。如图4所示:

我们可以把Server端中MVC的各个组成部分看作是一个封闭的子系统。这个子系统的功能就是从数据库中提取数据经过一系列处理之后交给Client端,同时对Client端提交的数据进行一些列处理之后再保存进数据库。同样如果我们把Clien端中MVC的各个组成部分也看作是一个封闭的子系统,它所完成的工作事实上跟Server端的子系统非常相似,只不过这个子系统的两个交互对象分别是用户和Server端。按照这种思路,最终形成的Web开发模式将是一种迭代式的MVC架构。这种迭代的开发方式对现有MVC的影响稍小,但能够起到的改善交互性的作用。

5、应用效果

利用重构的迭代式的MVC模式,在采用AJAX技术的同时,也保留了传统的MVC模式,带给客户新体验的时候,也保持了程序结构的层次性和藕合性。该模式已经在'网上购物平台'项目中得到应用。

6、总结和展望

传统Web应用主要由3层组成,而增加Ajax技术的Web应用将在传统的Web应用上额外增加一个Ajax引擎,能将控制器的部分功能转移到客户端页面。Ajax技术既是对传统Web技术的革命,也是对传统Web技术的一种改良和发展。Ajax对传统的MVC模式提出挑战,利用重构的迭代MVC模式,可以在不抛弃传统的MVC模式的情况下,有效提高web应用的开发效率和用户的体验效果。

参考文献

[1].http://www.jdon.com/jivejdon/thread/31553.html

[2].吴鹏, 尹思良, 张学杰:一种基于AJAX的JSF应用改进[J]云南大学学报2007, 29 (S2) :244~248

[3].游丽贞, 郭宇春:Ajax引擎的原理和应用[J]微计算机信息.2006.2-205:27-32

[4].刘高原刘觉夫张国平:结合Ajax和JSF技术开发Web应用[J]微计算机技术2007年第23卷第12-3期

[5].Struts2权威指南作者:李刚电子工业出版社2007年9

重构的MVC模式研究 篇2

【关键词】工作过程系统化 课程开发 “项目与迁移”模式 企业人才培养

【中图分类号】 G 【文献标识码】A

【文章编号】0450-9889(2014)08C-0059-03

一、核心概念阐释

(一)工作过程系统化课程

“工作过程系统化课程”由姜大源于2006年初提出,其概念理论基础来自德国的工作过程导向课程,在深刻分析中国职业教育特点的基础上,用发展的眼光创新性深度探究建构主义学习理论而来。它是对职教课程内容和结构实质进行大胆构想的理论表达与实践指导。工作过程系统化课程强调通过系统分析完成一件典型工作任务所需的综合能力,在对能力进行高度整合归纳的前提下,按照职业成长和认知规律对高职课程进行“学科体系的解构与行动体系的重构”。

从我们日常生活经验可知:要完成一项工作任务,需运用多项技能知识,仅仅单凭某一项知识或技能是无法解决问题的。而长期以来中国职业教育改革的现实是:完成一件工作所必须具备的整体能力——知识、技能、价值观等被割裂,并越分越细,使之成为某一单项能力而着力培养,结果是事倍功半,教育与实践的衔接仍未到位。“课程的设计,将工作过程作为知识序化的一种新的参照系,突显高等职业教育教学的规律和特征。”课程的设计,必须关注现代企业与现代教育的融合,解决工作规律与学习规律等“定界与跨界”的问题;解决在学习过程中以局部求整体问题;通过让学生掌握形式上的工作过程,解决其获得实际上的工作过程(人的工作思维过程)问题。“工作过程系统化课程不同于国外的工作过程导向的课程,它是根植于中国高职教育的土壤成长起来的……”当然,“从教育的本质出发,还应以前瞻性眼光来选择课程内容,以避免课程过度滞后于职业的发展。”

工作过程系统化课程开发有“三强调”:强调课程开发平台(职业工作领域)和实施平台(学习领域)必须便于转换和连通;强调课程内容安排和情境设计应有逻辑关系,要呈现出平行、递进和包容三个层次;强调课程载体设计必须高于工作任务并符合教育教学原理,并做到可迁移、可替代和可操作。

(二)“项目与迁移”模式

“项目与迁移”模式简称PETRA 教学法,是德文Pro Jekt Und Transf -erorientierte Ausbildung的缩写,中文的意思是“认识项目并组织实施的培训法”。源于德国西门子公司与联邦职业教育研究所进行的一种注重职工运用自我调节而提高学习能力的方法,主要是从实际工作为出发点和导向,以转化应用为目的,培养职工在现代化生产中所需要的关键能力。因其强调受训人员在完成项目工作过程中要学会学习,并为确保受训人员能运用多种学习方法和工作技巧,而采取的一系列督导、测评手段,最终促使受训人员的能力得以构建并能转化运用的典型特点,该模式也叫“以项目与迁移为定向”的培训方法或项目与应用性教学方案。它是在建构主义学习理论的指导下,系统培养从事高技术和复杂工作人员关键能力的一系列方案,是一个系统的个体自我调节和小组集体调节有机结合的学习过程。

为了解“项目与迁移”模式在国内企业的应用状况,因所在院校和专业之由,笔者有针对性地挑选了具有代表性的40家旅游行业及相关第三产业共86位受访者,参与问卷调查和深度访谈,收集了47家企业的内部培训资料,其中包括北京、上海、广州、深圳等珠三角、长三角旅游企业发达的省份和一线城市。参与调查人员构成情况为:65位受训人员、16位企业培训师和5位培训组织者,共获得多达200多万字的原始数据资料和部分企业培训的照片视频等。调查发现,虽然国内旅游企业对员工进行培训时不一定采用“项目与迁移”模式这样的说法,而多称之为“项目迁移”或“培训成果有效转换”,其实质就是“培训成果有效转化应用”,和“项目与迁移”模式理念完全吻合。不同的企业之间培训方式虽各有不同,基本路径大致一样。详见图1。

如图1所示,围绕着员工的个人成长,企业利用大量真实典型的案例任务,采取各种教学方法和手段,使受训人员学有所得。为强化受训人员习得的知识和技能转化应用,测评和督导工作采用的是“多维度、不定时”方式,即强调受训人员在整个工作时间内必须应用习得的知识和技能;因不时有不同身份的人对其测评并反馈,新知识和技能在反复强调下得以内化、升华。除此之外的激励措施,更是激发员工潜能、创新工作方法的重要保证。经调研,国内的多数旅游企业都是运用上述手段确保“培训成果有效转化应用”。

针对不同层次的员工,企业在培养过程也有自己的鲜明特点,如:对新进员工,首先培养其熟练的操作技能;在此基础上,通过内部培训,运用典型案例教学,帮助员工掌握应对方法和解决技巧。对高技能员工,培训的内容更为庞杂,方式也更多样,让其参与比较重要的、复杂的、大型的项目,使之得以锻炼和学习。为培养员工的职业道德意识、树立正确价值观、合理规划职业生涯,除以企业管理规章制度予以约束外,灵活运用班前会进行点评、讨论和案例分析等,达到反复提醒和强化的目的;必要时也有企业领导对个别员工进行谈话,促进员工成长。

图1 企业“项目与迁移”模式培训图

经过笔者的深入调研和分析,“项目与迁移”模式明显优于其他人才培养模式的地方有:突出计划性。包括整体项目工作进展计划、分小组工作进展计划和个人配合完成工作进度计划,均需要求按项目工作任务分配情况,各自写出工作计划。强调责任性。因个人原因耽误项目工作的整体进展,影响项目的完成,必须承担相应的责任。要求按工作进展计划,写出对完成情况的奖惩措施。重视评价力。建立包括自评在内的、不少于三方人员组成的评价系统。在完成项目后,该系统对帮助学员找出标准差并补充完善自身知识体系上起到至关重要作用。

基于对“项目与迁移”模式的理论学习和实际调研,在工作过程系统化课程构建的视野下,以结果反推过程,逆向思维的原则,笔者提出用企业人才培养模式进行高职旅游类专业课程建构的“项目与迁移”模式。

二、本研究逻辑推导

工作过程系统化课程和“项目与迁移”模式都基于建构主义学习理论,存在于不同的教学环境中,前者是建构主义学习理论指导下的课程建设,后者更多表现为一种培训/教学模式和培训方案。如在高职院校中应用“项目与迁移”模式,它与工作过程系统化课程还有如下异同之处,具体见表1:

如表1所示,工作过程系统化课程和“项目与迁移”模式相似之处以核心目标的培养尤为突出:从工作过程系统化课程设计目标来说,它直指高等职业教育的课程设计,核心目标是培养高职学生完整的思维过程——“资讯、决策、计划、实施、检查和评价”等。其中它对所培养学生的最低知识能力有所要求,说明了这个“完整思维过程”所需的智能基础。只有一定智能基础的学生,才能以完整思维应对新的工作新的挑战。此课程理念突显的是知识能力的迁移应用,是关键能力中的核心,是能力的最高层次,具有普适性。“项目与迁移”模式的核心理念使“培训成果有效转化应用”也是“普适的”。培养目标虽不特指某一职业或具体岗位,但它并不包括初级技术人才,指向的是所有从事高技术或复杂工作的人员,目的是开发学习者的关键能力并能转化运用。从对比结果来看,二者最大的不同在于:姜大源提出的工作过程系统化课程既是理念,还是方法论和行动指南;笔者借助的“项目与迁移”模式与其不仅有理念上的耦合,也是该理念下新课程体系的具体构建实施者。

表1 工作过程系统化课程与“项目与迁移”模式之比较

比对项目工作过程系统化课程VS“项目与迁移”模式结果评价

比对考察点理论基础建构主义学习理论建构主义学习理论一致

思路来源关注现代企业与现代教育的融合,根据工作组织内容重构课程组织。借用企业对员工的培训方式,应用到高职教育,使其与岗位职业能力要求按需融合。较为相似

技术路径对工作任务进行分析,在典型任务的整理归纳上提炼出高等职业课程体系。通过在旅游企业调研采访收集到的第一手资料的整理归纳分析,提炼出应用于高职旅游类专业教学的“项目与迁移”模式。高度相似

受众基础普通高等职业技术院校学生与企业中的所有从事高技术或复杂工作的人员相对应的高职院校中的高年级学生。有所区别

核心目标知识能力的迁移应用关键能力的转化运用高度相似

未来研究方向在原有理论基础下,不断涌现新的实践研究成果在原调研成果基础上重构高职课程体系,创建新的教学模式。有所区别

结论从对比结果来看:工作过程系统化课程和“项目与迁移”模式的相似点很多,不同处主要集中在呈现形式、受众基础和未来研究方向上。其中“项目与迁移”模式尝试在大量的调研成果上构建课程体系,预示着新的科研成果将是工作过程系统化课程开发理论下有力的实践新证。

三、以“项目与迁移”模式重构高职高专课程的意义

强调能力的迁移和转化,是近年来职业教学改革研究的重中之重,以“项目与迁移”模式的特点重构高职高专课程,特别是旅游类专业教学还有以下积极意义。

(一)有效解决不同专业课程之间课程内容交叉、重复问题

作为旅游服务等第三产业来说,主要工作目标是为消费者提供满意服务,职业核心能力表现为:扎实的专业岗位技能、良好的语言沟通和人脉关系、灵活的应变与创新力,其适应面宽且泛。

为使毕业生获得上述能力,20多年来,在探索中艰难前进的教学改革结果却不如预期。原因多种,在文科特点突出的旅游类高职院校中,主要是:缺少在全局统筹下对某一职业所需知识技能的深入分析。课程组织和内容设置无法最大化地贴近岗位需要,在实际授课中,容易变为片面地强调某单项职业技能的熟练性。在多门课程的各自为政下,知识技能呈零散状,无法让学生完整感受职业特点和职业过程,产生学习倦怠感。任课教师有从典型的岗位工作任务中强化学生的技能学习和整体性工作思维意识,但由于可供选材应用的典型项目工作不多,而多数专业教师既缺乏企业实践经验、又没有集体备课的习惯。因此,在对同一批学生进行专业教学中,不同课程的教师应用的典型项目工作内容易出现重复、交叉、雷同、类似等情况。而对学生必须掌握的,反复出现的重点内容强调不足,造成学生缺乏新鲜感和挑战感,学习效果可想而知。课程设计缺乏由简入繁,层层递进,由单纯的技能学习到典型的完整工作任务学习的过程理念,结果是容易造成不同的专业课教师,在进入到完整工作过程的教学中,内容重复,教学时间格局没有重大突破。在固有的教学时间格局下,一些需通过反复训练强化的技能,因一周1~2次的宽松学习频率,其技能练习的有效性被打折扣。

高职院校内的“项目与迁移”模式借用企业对不同能力层次人才培训特点,用工作过程系统化课程建构思维解决上述问题。其课程设计思路可分为3大板块2个层次。3大板块按课程特点类型设置:包括基础学科课程、职业核心能力课程和职业素质拓展课程(职业核心能力之外,对个人素质拓展和提高有所裨益的课程)。2大层次指的是:在职业技能上学习的不同层次,分为低年级和高年级。基础学科课程——通识文化与道德价值观的保证,可分散穿插在各年级各学期中。职业核心能力课程——按工作过程系统化理论设置。低年级以操作技能学习和片段性的岗位工作任务学习为主;高年级则应以布置学生完成一个完整工作项目为主。职业素质拓展课程——根据课程内容,或以学科课程形式存在,也可以项目工作形式存在。

此课程重构过程,由于借鉴了企业人才培养过程特点,由简入繁,循序渐进,避免不同的专业课程在应用项目教学中内容易雷同、无新意的状况,而对整个学校的课程建设来说是具有颠覆性的。但只有通过解构——重构的过程,才能扭转在教学中出现的上述种种问题。当然,在课程重构之前,对典型工作任务、对完整工作过程必须有深入的调查和系统的提炼,强调校企合作开发课程、重视专业教师企业的实践经验,才能在课程重构之后,有东西可教。

(二)有力推动智能技能水平提高,促进能力迁移

因为旅游服务类专业技能有宽泛的适应面等特点,所以,不管我们对工作任务分解得如何细、提炼得有多典型,总有挂一漏万。按目前学校课程设置情况,企图通过多个项目课程设计帮助学生掌握完整工作过程,实在是心有余而力不足。而且旅游类员工具有的逻辑思维能力弱的缺陷更是桎梏其职业发展的瓶颈。企业培训员工破解难题的思维方法——“结果思维法”能直击问题核心。结果思维法以解决一个问题为目标,围绕这个目标,厘清影响任务完成的主要困难和其他因素,通过学习并应用相应的知识技能将其逐一解决,这是从事高技术或复杂工作员工必备的智能技能。

高职院校的低年级学生通过学习已具备并掌握了一些典型工作岗位知识技能,缺乏的是对完整工作过程的真实体验。然而在真实的工作场境中,工作内容的复杂性和可变性,不仅增加学生完成工作任务的难度,原课程内容组织的片面性和零散性弊端也显现出来。无论如何教改,这样的问题仍将在一段时间内持续存在。因此,作为高职院校高年级学生必须要掌握:学会用结果思维法化解工作中遇到的各种未知困难与挑战,通过开设专门的结果思维训练课程,立足于非典型性任务或特殊事件,以“结果思维”为指导,或可解决上述现象。相信,“结果思维法”的引入,在解决高职学生岗位知识和职业技能碎片化明显的问题上,将会是一直备受职业教育课程组织设计困扰的职教人的一剂良方。

(三)有助于强化学生的核心技能(关键能力)

学生的核心技能或关键能力,是内化的知识和技能,是职业生涯稳健发展的助推器。旅游企业为养成并强化员工的内力,以合理的激励措施、美好的公司愿景、明晰的员工职业规划等充满人性化的企业文化激发员工学习和工作动力;以“多维度、不定时”的测评和督导方式从外部给员工的进步给予力量支撑。双管齐下,确保知识和技能得以内化,能力得以迁移。

经调研发现,虽然在近些年的教改中,已重视到运用多维度的教学成果考核来客观看待最终的成绩评定。但旅游类高职院校的教育教学中,多数教师和学生还都仅仅满足于最后的学科成绩考核评定这个形式。高职院校的“项目与迁移”模式的课程重构也注意到这个现象,该课程模式要求,学生平时的学习状态和生活状态应该有机结合,不能上课、考试一个样;生活、休闲一个样。诸如旅游类核心职业技能之一——“良好的语言沟通和人脉关系”,更是需要平时生活的用心揣摩和无时无刻的自觉学习提升。因此,在传统的教学评价体系基础上,该课程加入自我评价、他人评价和课后的过程性评价等三个维度,并建议其结果比例应占最终结果的至少50%以上。只有这样的学习评价,结果才更立体、客观、真实。避免学生课上、课下双面人生,在养成学生良好的职业道德规范,树立正确价值观、人生观方面也大有裨益。

【参考文献】

[1]姜大源.关于工作过程系统化课程结构的理论基础[J].职教通讯,2006(1)

[2]姜大源.漫话工作过程系统化课程开发的哲学思考[J].新疆职业教育研究,2010(1)

[3]姜大源.论高职教育工作过程系统化课程开发[J].徐州建筑职业技术学院学报,2010(3)

[4]赵志群.职业教育与培训新概念[M].北京:科学出版社,2003

【基金项目】2012年度新世纪广西高等教育教改工程立项课题(2012JGB296)

【作者简介】辛 蕾(1973- )女,广西桂林人,桂林旅游高等专科学校旅游与休闲管理系讲师,研究方向:旅游管理与公共艺术教育。

(责编 丁 梦)

(二)有力推动智能技能水平提高,促进能力迁移

因为旅游服务类专业技能有宽泛的适应面等特点,所以,不管我们对工作任务分解得如何细、提炼得有多典型,总有挂一漏万。按目前学校课程设置情况,企图通过多个项目课程设计帮助学生掌握完整工作过程,实在是心有余而力不足。而且旅游类员工具有的逻辑思维能力弱的缺陷更是桎梏其职业发展的瓶颈。企业培训员工破解难题的思维方法——“结果思维法”能直击问题核心。结果思维法以解决一个问题为目标,围绕这个目标,厘清影响任务完成的主要困难和其他因素,通过学习并应用相应的知识技能将其逐一解决,这是从事高技术或复杂工作员工必备的智能技能。

高职院校的低年级学生通过学习已具备并掌握了一些典型工作岗位知识技能,缺乏的是对完整工作过程的真实体验。然而在真实的工作场境中,工作内容的复杂性和可变性,不仅增加学生完成工作任务的难度,原课程内容组织的片面性和零散性弊端也显现出来。无论如何教改,这样的问题仍将在一段时间内持续存在。因此,作为高职院校高年级学生必须要掌握:学会用结果思维法化解工作中遇到的各种未知困难与挑战,通过开设专门的结果思维训练课程,立足于非典型性任务或特殊事件,以“结果思维”为指导,或可解决上述现象。相信,“结果思维法”的引入,在解决高职学生岗位知识和职业技能碎片化明显的问题上,将会是一直备受职业教育课程组织设计困扰的职教人的一剂良方。

(三)有助于强化学生的核心技能(关键能力)

学生的核心技能或关键能力,是内化的知识和技能,是职业生涯稳健发展的助推器。旅游企业为养成并强化员工的内力,以合理的激励措施、美好的公司愿景、明晰的员工职业规划等充满人性化的企业文化激发员工学习和工作动力;以“多维度、不定时”的测评和督导方式从外部给员工的进步给予力量支撑。双管齐下,确保知识和技能得以内化,能力得以迁移。

经调研发现,虽然在近些年的教改中,已重视到运用多维度的教学成果考核来客观看待最终的成绩评定。但旅游类高职院校的教育教学中,多数教师和学生还都仅仅满足于最后的学科成绩考核评定这个形式。高职院校的“项目与迁移”模式的课程重构也注意到这个现象,该课程模式要求,学生平时的学习状态和生活状态应该有机结合,不能上课、考试一个样;生活、休闲一个样。诸如旅游类核心职业技能之一——“良好的语言沟通和人脉关系”,更是需要平时生活的用心揣摩和无时无刻的自觉学习提升。因此,在传统的教学评价体系基础上,该课程加入自我评价、他人评价和课后的过程性评价等三个维度,并建议其结果比例应占最终结果的至少50%以上。只有这样的学习评价,结果才更立体、客观、真实。避免学生课上、课下双面人生,在养成学生良好的职业道德规范,树立正确价值观、人生观方面也大有裨益。

【参考文献】

[1]姜大源.关于工作过程系统化课程结构的理论基础[J].职教通讯,2006(1)

[2]姜大源.漫话工作过程系统化课程开发的哲学思考[J].新疆职业教育研究,2010(1)

[3]姜大源.论高职教育工作过程系统化课程开发[J].徐州建筑职业技术学院学报,2010(3)

[4]赵志群.职业教育与培训新概念[M].北京:科学出版社,2003

【基金项目】2012年度新世纪广西高等教育教改工程立项课题(2012JGB296)

【作者简介】辛 蕾(1973- )女,广西桂林人,桂林旅游高等专科学校旅游与休闲管理系讲师,研究方向:旅游管理与公共艺术教育。

(责编 丁 梦)

(二)有力推动智能技能水平提高,促进能力迁移

因为旅游服务类专业技能有宽泛的适应面等特点,所以,不管我们对工作任务分解得如何细、提炼得有多典型,总有挂一漏万。按目前学校课程设置情况,企图通过多个项目课程设计帮助学生掌握完整工作过程,实在是心有余而力不足。而且旅游类员工具有的逻辑思维能力弱的缺陷更是桎梏其职业发展的瓶颈。企业培训员工破解难题的思维方法——“结果思维法”能直击问题核心。结果思维法以解决一个问题为目标,围绕这个目标,厘清影响任务完成的主要困难和其他因素,通过学习并应用相应的知识技能将其逐一解决,这是从事高技术或复杂工作员工必备的智能技能。

高职院校的低年级学生通过学习已具备并掌握了一些典型工作岗位知识技能,缺乏的是对完整工作过程的真实体验。然而在真实的工作场境中,工作内容的复杂性和可变性,不仅增加学生完成工作任务的难度,原课程内容组织的片面性和零散性弊端也显现出来。无论如何教改,这样的问题仍将在一段时间内持续存在。因此,作为高职院校高年级学生必须要掌握:学会用结果思维法化解工作中遇到的各种未知困难与挑战,通过开设专门的结果思维训练课程,立足于非典型性任务或特殊事件,以“结果思维”为指导,或可解决上述现象。相信,“结果思维法”的引入,在解决高职学生岗位知识和职业技能碎片化明显的问题上,将会是一直备受职业教育课程组织设计困扰的职教人的一剂良方。

(三)有助于强化学生的核心技能(关键能力)

学生的核心技能或关键能力,是内化的知识和技能,是职业生涯稳健发展的助推器。旅游企业为养成并强化员工的内力,以合理的激励措施、美好的公司愿景、明晰的员工职业规划等充满人性化的企业文化激发员工学习和工作动力;以“多维度、不定时”的测评和督导方式从外部给员工的进步给予力量支撑。双管齐下,确保知识和技能得以内化,能力得以迁移。

经调研发现,虽然在近些年的教改中,已重视到运用多维度的教学成果考核来客观看待最终的成绩评定。但旅游类高职院校的教育教学中,多数教师和学生还都仅仅满足于最后的学科成绩考核评定这个形式。高职院校的“项目与迁移”模式的课程重构也注意到这个现象,该课程模式要求,学生平时的学习状态和生活状态应该有机结合,不能上课、考试一个样;生活、休闲一个样。诸如旅游类核心职业技能之一——“良好的语言沟通和人脉关系”,更是需要平时生活的用心揣摩和无时无刻的自觉学习提升。因此,在传统的教学评价体系基础上,该课程加入自我评价、他人评价和课后的过程性评价等三个维度,并建议其结果比例应占最终结果的至少50%以上。只有这样的学习评价,结果才更立体、客观、真实。避免学生课上、课下双面人生,在养成学生良好的职业道德规范,树立正确价值观、人生观方面也大有裨益。

【参考文献】

[1]姜大源.关于工作过程系统化课程结构的理论基础[J].职教通讯,2006(1)

[2]姜大源.漫话工作过程系统化课程开发的哲学思考[J].新疆职业教育研究,2010(1)

[3]姜大源.论高职教育工作过程系统化课程开发[J].徐州建筑职业技术学院学报,2010(3)

[4]赵志群.职业教育与培训新概念[M].北京:科学出版社,2003

【基金项目】2012年度新世纪广西高等教育教改工程立项课题(2012JGB296)

【作者简介】辛 蕾(1973- )女,广西桂林人,桂林旅游高等专科学校旅游与休闲管理系讲师,研究方向:旅游管理与公共艺术教育。

重构的MVC模式研究 篇3

ASP.NET中的Web Form是一种可视化开发模式,用户通过拖拽控件进行网页界面的设计,Visual Studio编辑器自动在网页文件生成相应的代码,然后双击控件或者在事件视图中双击相应事件,将在另外一个对应的.CS文件中进行编码,实现对网页控件的交互操作[1]。由于开发方便、上手容易,Web Form模式在小型项目开发中广泛应用。但是对于中大型项目,采用Web Form模式进行开发的话会出现不少问题:项目中充斥着大量的网页文件和后台代码文件,文件数量过多难以管理;项目网页文件与逻辑代码文件紧密耦合,代码重用性不高;网页代码中暴露过多的系统实现细节,容易遭受网络攻击导致信息安全问题;数据库操作的代码实现比较繁琐,每次涉及到数据库交互操作都要重新写SQL语句;功能扩展麻烦,当需要扩展新的功能页面时需要重新设计网页界面和进行编码。

我们在开发论文管理系统的过程中,初期为了快速实现系统的主要功能,使用了ASP.NET Web Form模式来进行项目的开发工作。但随着项目的进行,由于系统功能的不断扩展,同时用户需求有了一些更改,Web Form模式带来的问题逐步显露出来。针对开发工作中出现的问题,项目组决定使用ASP.NET MVC框架重构系统,希望开发工作向着代码的结构规范、冗余度低、重用性好,系统扩展方便、安全性更高的方向发展,使系统具有更高的稳定性和可维护性。

2 MVC框架分析

MVC框架是现代大型项目开发中广泛使用的开发模型,其基于面向对象的设计模式极大提高了程序的开发速度,降低了功能扩展维护带来的不便,使功能像组件一样自由变换[1]。

2.1 MVC核心部件

MVC框架模式将系统按功能模块化地分成三个主要的部件:模型(Model)、视图(View)、控制器(Controller)。它们各自处理自己的任务,相互之间通过接口进行交互[2],其功能划分及相互关系如图1所示。

跟传统的Web Form模式相比,ASP.NET MVC框架放弃了很多有缺陷的特性,如Code-behind页面、服务器控件、数据绑定、URL Rewrite等,取而代之的是Controller、Html Helper、Rout-ing等类库和组件[3]。与Web Form相比,ASP.NET MVC在Web开发领域显得更加专业化,对Web开发的效率提升非常明显,特别是在规模较大、功能点多、页面数量多逻辑结构复杂的大型应用程序开发中,MVC模式在健壮性、代码重用和结构方面有了很大的提升[4]。使用MVC架构开发出软件代码有较强的可理解性、重用性、系统稳定性、可维护性,能够减少软件的修改、再次开发等方面的工作量,减少了在系统方面所投入的成本[5]。

2.2 ASP.NET MVC框架运行流程

在ASP.NET MVC4中,所有请求都是通过项目根目录中的一个Global.asax文件作为唯一的入口,客户端向服务器提交的请求首先由这个文件接收,由该文件执行Application_start()方法实例化启动进程,并调用路由匹配注册表确定指派到某一个控制器处理。控制器接到请求后,可以调用某一个对象模型来处理;模型根据相应的业务逻辑进行逻辑处理,并且与数据库进行交互,返回所需的数据;最终控制器加载并渲染指定的视图来将处理好的数据呈现给用户。系统采用ASP.NET MVC后的运行流程如图2所示。

3 系统结构的重构

在ASP.NET的Web Form模式中,系统的代码模块是按页面来分的,也就是说有多少个页面就有多少个逻辑处理文件,每个代码文件仅仅处理自身页面的代码逻辑,这种划分代码模块的缺点是,一旦页面过多,就会变得很杂乱,代码文件查找困难,维护难度高,而且不利于日后功能迭代或者功能修改。而在ASP.NET MVC中,项目代码文件按部件来划分,而每个部件又通过系统功能的模块化对应来实现二级划分,整个项目就变得有层次和条理,维护起来也变得方便。

3.1 系统功能分析

毕业设计管理系统是一个教师、学生和系统管理员使用的教务管理平台。按使用角色可以对系统的功能作以下分类:教师有发布课题、修改个人信息、查看课题列表、查询学生信息等功能;学生有选择课题、修改个人信息、查询课题列表、查询教师信息、提交上传文档等功能;系统管理员有审核课题、课题信息管理、网站功能设置、用户信息管理、角色分配、论题管理等功能。

3.2 按功能划分模块

在MVC框架中,控制器实际上就是以相近功能组成的模块。对系统的功能进行分析后,我们进行模块的划分,将功能相近的代码逻辑放到同一个控制器里面,而每一个功能都通过控制器里的方法来实现,方便调用。根据对系统的功能进行分析,本系统的控制器可分为:教师控制器、学生控制器、角色控制器、用户控制器、论题控制器、系统设置控制器等。

在每个都模块抽象为MVC框架中的控制器后,根据每个模块中需要的页面在视图部分进行添加。这样,我们就把整个系统的功能进行了模块化的划分。模块之间既相互独立,又可以通过接口进行相互调用和联系。

3.3 代码文件结构

图3(a) 是Web Form模式中的文件结构,大量的文件都堆放在同一个目录,显得杂乱无章;图3(b)是使用了MVC模式重构后的代码文件结构,为每个核心部件都分配了不一样的目录,这样的做法分层合理,文件结构显得规范有条理;图3(c)是控制器部件目录的展开图,控制器目录中的每个文件都对应每一个模块,有些模块因需要分开两个控制器文件来实现,对应的视图文件在Views目录下。

4 数据层的重构

系统结构的重构完成之后,我们还利用对象关系映射(Ob-ject Relational Mapping,ORM)和Active Record技术来进行数据层的重构。

4.1 ORM和Active Record技术

ORM是随着面向对象思想的成熟而产生的一种软件开发技术。目前主流的框架产品,如ASP.NET MVC、Hibernate等,已经将ORM集成在内。Microsoft Entity Framework是一个对象关系映射(ORM)工具,它能将关系型数据转换成.NET数据对象,也可以将.NET数据对象转换成关系型数据[6]。

Active Record是一种领域模型模式,最早由Rails提出,它在ORM的基础上,把负责持久化的代码也集成到数据对象中[7]。传统的ORM只是把数据对象与负责持久化的代码分隔开来,数据对象只是单纯的包含了自身的数据结构体。而在Ac-tive Record中,他们不仅是数据实体,而且包含了业务逻辑,集成了把自己持久化的操作。在ASP.NET MVC中,Active Record已经定义好了集成持久化操作方法的模型父类,数据对象类只需要继承这个父类,就可以继承这些持久化操作的方法,通过简单的方法调用,就可以实现持久化操作。

4.2 重构系统的数据层

利用ORM和Active Record技术,我们在处理有关操作数据库的业务逻辑时,不需要接触到SQL语句。对数据的操作简化成了对象的操作,为一张表声明一个类,并使类中的成员对应关系型数据库中的字段,就可以跟这个类的实例进行交互了。至于这个对象中的数据怎么跟数据库交互,我们完全不用关心。ORM会根据实际需要生成相应的SQL语句执行,返回的结果又会自动处理成对象或者开发者想要的形式。

重构系统数据层的具体操作分以下两个步骤:

1)为系统的数据对象建立模型,将数据对象转化为关系型数据库中的表和列。

2)修改业务逻辑中需要与数据库交互的代码,将SQL语句替代为由Active Record操作数据对象。

重构系统数据层后,我们能够轻易地通过实例化数据对象来从模型中获取需要的数据,以系统的用户模块为例,用语句“List<User> user List = db.users.To List();”即可获取所有用户模型的集合。与直接使用SQL语句相比,Active Record技术更为简洁,不易出错,能够进行参数过滤和绑定,还能够屏蔽数据库之间的差异。Active Record技术简化了开发者的工作,使得系统的功能扩展或者修改都比较容易。

5 系统重构效果测量

为了比较重构后系统源代码的重用性、可维护性、冗杂度和性能上的差异,我们使用Visual Studio 2013分别对代码度量值、代码克隆分析和CUP使用率这三个指标进行了测量。

5.1 代码度量值

代码度量是一组对软件质量进行度量的数值,开发者依靠这组数值可以更好地分析他们开发中的代码。通过代码度量,开发者可以清楚看到哪些类型和/或方法应该重写或者进行更加彻底的代码测试。开发团队也可以通过这组数值识别代码中哪些有可能出现的风险、对项目的状态进行了解,并对软件开发的进度进行跟踪[8]。代码度量会检测出项目代码中所有定义的命名空间,再在其中统计可维护指数、圈复杂度、继承深度等检测值。图4与图5为重构前后代码度量值的结果。

我们的目标是对可维护指数和圈复杂度进行分析。可维护指数的范围在0 至100 之间,表示了代码维护的相对容易程度,数值越高意味着可维护性越好;而圈复杂度则是描述了代码在结构上的复杂度,它是通过计算程序流中的不同代码的路径数量来创建的[8]。

对本次重构前后的系统代码检测结果显示,代码重构后可维护指数提升了14%,圈复杂度减少了原来的约40%。同时从层次结构看出,使用了MVC框架模式,代码的根命名空间比原来的少了很多,代码层次分明,可见代码的可维护性有了一定程度的提高。加上使用Active Record技术进行数据层对象封装,对数据对象的操作不再需要局部定义对象的结构,只需要调用Active Record的数据层对象就能胜任,这样相同功能的代码就相对集中在同一个目录,圈复杂度相应地降低。

5.2 代码克隆分析

代码克隆分析就是检测系统项目源代码中重复的部分,使开发人员能够整理重复的代码,提高代码质量。我们在研究中发现,Visual Studio的代码克隆分析不是仅仅匹配字面上的代码,而且能通过代码分析检测逻辑相同的代码,它不仅能搜索代码相同的模块,而且还能搜索语义上类似的结构。图6与图7为重构前后的代码克隆分析结果。

通过对比重构前后的代码克隆分析结果,可以看出使用MVC框架重构后的代码克隆数远小于重构前。而这意味着重构前有大量的重复代码存在,这样的坏处是,通过复制粘贴的源代码一旦需要修改部分代码,就需要查找所有涉及相同功能的地方一并修改;也有可能需要修改某些特定的地方,其他地方保持不变,这时候即使IDE编辑器有批量修改代码的功能也无济于事了。基于MVC框架重构后的代码高度抽象和封装,模块与模块之间已经有了明确的分工,很多相同的逻辑将合并起来;而ORM将通过写SQL语句来获取数据操作的源代码转化成了通过调用ORM封装的方法来生成数据对象的源代码,重复的SQL语句将不再出现,这也是克隆代码降低的其中一个原因。在软件开发的过程中,使用重复代码的频率越少,日后源代码的维护就会越容易。可见,重构后的源代码可维护性有了很大的提高。

5.3 CPU使用率

使用MVC框架重构后的项目抽象封装程度高,有人觉得会对性能造成影响,因为每次运行都要初始化封装好的对象,有可能会加载一些不需要的组件来增加服务器的开销。我们根据重构前后的代码,使用Visual Studio运行代码分析,访问论文管理系统的同一个页面,监听CPU使用率随时间变化的过程,测试时间大约是1 分半钟。期间页面每隔一段时间(约10秒)被刷新,不断向服务器发送请求。图8与图9为重构前后的CPU使用率曲线图。

从图8 和图9 的对比可以看出,重构后的系统CPU使用率总体上都是比重构前要低的。前10 秒左右是Visual Studio工具编译部署项目的时间,可以看出使用MVC框架后编译部署过程CPU使用率是使用前的约4 倍。这是因为使用Web Form在很大程度上要依赖比较多还没有编译好的部件,很多如图片上传、文件生成、视图渲染的功能都要开发者自行通过源代码实现,编译起来就要耗费相对较多的资源;而MVC框架将绝大部分的部件封装成为二进制文件,只需要编译主要的代码就可以了,CPU使用率自然就低了。

约过了10 秒后,是页面接受请求进行逻辑处理的过程。可以看出重构后的系统除了第一次处理请求CPU使用率相对较高,为23%左右,接下来处理请求的CPU使用率都是不到10%。而重构前的系统CPU使用率一直都在波动,居高不下,平均在20%。产生这些差异的原因是,.NET MVC框架在页面第一次被请求的时候就生成了页面的缓存,往后的请求处理就不再需要进行处理页面渲染的步骤;同时,因为服务器已经装上了.NET MVC框架的组件,运行的时候就不再需要额外的CPU资源,所以如果没有在处理请求的情况下CPU使用率都接近0。而传统的Web Form模式没有缓存机制,每次加载都需要重新进行页面渲染工作,CPU使用率偏高,而且在解释非系统自带组件也需要占用一定的CPU资源。

6 总结

本文使用了ASP.NET MVC框架进行了论文管理系统的重构,按系统的功能进行抽象分类,各个部分的功能分成了各个模块,使耦合性尽量低,并通过接口进行交互。对于系统的数据层,运用ORM与Active Record技术进行重构,为数据处理提供了更加直观便捷、便于维护的方式。

对重构前后的代码度量值、代码克隆分析和CUP使用率的对比结果表明,使用MVC框架对于解决代码冗余、增强系统可维护性和运行性能都有比较大的帮助。

摘要:ASP.NET的Web Form开发模式控件丰富,能够迅速搭建Web应用,但是存在可重用性差、安全性低、运行速度慢等缺点,不适合中大型系统的开发。为了提高论文管理系统的安全性、可维性和运行性能,采用ASP.NET MVC框架模式进行系统结构的重构,利用对象关系映射和Active Record技术进行数据层的重构。对比测试结果显示,重构后的系统可维护指数提高,圈复杂度、代码克隆数和CPU使用率降低。

重构的MVC模式研究 篇4

协同创新已成为构建新的研究生培养模式的现实路径。以协同创新平台为载体,探讨通过改革招生、课程设置、科研活动、实习实践、学位论文、教学安排、导师配置等环节,构建新的专业学位硕士研究生培养模式,并探究体制保障和激励机制、约束机制、保障机制的建设,保障新的培养模式的运行,增强学生创新能力和实践能力的培养。

关键词: 协同创新平台; 专业学位硕士; 培养模式; 重构

中图分类号:G640

文献标识码:A 文章编号:1671623X(2016)02008405

目前,我国硕士研究生培养有两种类型:学术型与专业型。专业学位研究生教育自1991年开展以来,学位教育种类及培养规模不断增多、扩大,已成为学位与研究生教育的重要组成部分。但是,专业学位教育起步比较晚,课程体系、培养途径、管理体制等还在不断构建、改进中,学界对人才培养模式的研究亦未曾停止。

协同创新是围绕创新目标,多主体、多因素共同协作配合、相互补充、收益共享的一种管理创新。[1]协同创新以平台为载体,将产、学、研及政府、中介机构、金融机构等整合成一个整体跨组织集成。[2]高校通过协同创新既可以加强同政府、企业、科研院所的合作,提升高校的科技创新实力和服务社会能力,也可以借助协同创新平台构建多元化的人才培养模式,提高人才培养质量。

若按功能划分,我国已建设的协同创新平台至少包括研究与开发创新平台、科技成果产业化平台和专业性公共性服务平台等多种形式。[2]服务平台主要作用是间接参与创新、建设成果转化的支撑条件与环境,另外两类平台则整合了高校、科研院所、企业等创新主体,涵盖了科学研究、技术开发、产业转化等全产业链创新过程,是开展专业学位研究生培养的理想平台。本文主要就以这两类协同创新平台为基础,对专业学位硕士研究生培养模式进行反思和重构。

一、对当前专业学位硕士研究生培养模式的审视

开展专业学位研究生教育的目的在于满足相关行业或专业对具有专业知识与技能的高层次人才的需求,以培养应用型、复合型“实用专家”为主要目标。[3]经过20多年的探索,学界对专业学位硕士研究生培养模式的构建基本形成了一些共识:在课程设置方面,以“职业能力”为导向,构建由基础理论课程、实践类课程、综合素质培养课程三个模块组成的课程体系,基础理论课程侧重应用基础理论的学习,注重多学科的知识组合,主张密切结合专业实践训练,增大前沿实践性、创新应用性课程;在培养方式上,强调产学研合作培养,主张采用双导师制或导师小组制;在科学研究方面,鼓励学生参与实际课题的研究或企业的具体工作,主张专业学位论文选题要注重应用背景和实际价值;在学业评价上,主张引入企业等校外评价主体,更多以解决实际问题的研究成果来认定学生的学业成绩等等。[3-5]上述认知对纠正专业学位硕士研究生教育学术化倾向颇具针对性,在加强学生创新性解决实际问题能力的培养、提高专业学位硕士研究生教育质量等方面具有指导意义。

然而,当下实情是专业学位硕士研究生培养大多基本沿用学术学位硕士研究生培养模式,课程设置、导师组成来源、论文要求及审查要求和形式等与学术学位硕士研究生培养体系趋同。[6]一项针对全日制专业学位硕士研究生培养模式运行状况的调查显示,讲授课程仍占主流,理论课程比重大于实践课程,有利于培养创新能力的课程比例不高,以学术型课题研究代替社会实践居多,指导方式上双导师和导师指导小组所占比例较低,[5]学术化倾向仍然明显。不管是专业学位硕士研究生还是学术学位硕士研究生,创新能力培养均显不足,突出体现在跨学科课程设置比例过小,培养方案多数不能体现学科交叉的发展趋势,教学方法以讲授为主,学生参与度低,而且教育观念陈旧,对学生创新精神、创新能力的培养与引导不足。[6]

这种状况的存在,固然有专业学位硕士研究生教育起步晚、专业学位教育派生于学术学位教育、教育理念滞后、制度阻碍、资源局限等原因。[7]然而,有学者认为更主要的原因在于,专业学位硕士研究生教育仍是封闭、单一的学科教育体系,体现在以学科专业的名义招生、以学科专业的师资作为导师主体、以学科专业的知识架构构建课程体系等方面,学生的培养仍局限在单一学科专业内,由此构建的专业学位培养模式必然趋同于学术学位培养模式。同时,基于封闭、单一的学科教育模式,其他学科、高校、特别是与人才培养工作无直接关联性的企业等主体参与研究生培养的动力不足,可供使用的教育资源有限,专业学位研究生培养所需要的产业元素、跨学科元素难以得到保障。如果不打破这种封闭、单一的培养体系,专业学位硕士研究生教育就难以走出困境,人才培养质量就难以得到提高。

二、基于协同创新平台的专业学位硕士研究生培养模式的重构

协同创新理念的出现以及一批协同创新平台的实际运作,为专业学位硕士研究生教育突破学术化倾向、增强对学生创新能力、实践能力的培养、构建新型专业学位硕士研究生培养模式提供了一条可行路径。本文探讨的协同创新专业学位硕士研究生培养模式,是以协同创新平台为载体,从招生、课程设置、科研活动、实习实践、学位论文、教学安排、导师配备等方面全面重构的人才培养模式。

1.招生

以学科专业的名义招生,培养活动必定会局限于某个单一的学科专业体系,难以按照行业产业要求培养应用型、复合型的高级专门人才。因此,新的培养模式首先在招生方面要有所突破。协同创新平台是开展协同创新活动的载体,聚集了跨学科、跨领域的人力、信息、技术和设备等资源,以协同创新平台的名义招收学生,有利于打破封闭、单一的学科培养体系,让学生充分享受协同体的教育资源,实现多主体的联合培养。

由于协同创新平台是一个流动的平台,根据研究任务的需要,人员、设备、场地都会处在不断的调整与变化中。基于协同创新平台招生,可以根据研究任务的多少来确定招生规模,以此保证每个学生都有机会接受真正的科研训练和实践锻炼,确保人才培养质量。

2.课程设置

专业学位硕士研究生课程应该由基础理论课程、实践类课程、综合素质培养课程三大模块组成。基于协同创新平台构建课程体系时,模块内课程结构可以按照协同创新的特点来建构。一是基于协同创新平台的研究范畴,构建跨学科的应用基础理论课程体系,注重学科之间的交叉融合,打破单一学科知识体系,打破过于注重学科知识逻辑结构、过于注重学术性基础理论知识学习的传统,以某一职业领域对基础知识和专业知识的需求为基础,打造“大学科、宽基础、重应用”的基础理论知识平台。二是以某一职业领域对基本实验能力和基本实践能力的需求为基础来构建实践课程的内容体系,打破以往以学科专业的基本实验能力和实践能力为轴线的传统。在具体的课程表现形式上,也不再以一门门课程的形式出现,而是以平台的协同创新任务为支点,以一次一次的实践活动为主线,贯穿起对学生基本实验能力和基本实践能力的培养,基于真实的创新实践活动来构建实践课程体系。三是综合素质培养课程也应充分利用协同创新的优势,结合协同创新平台浓郁的协同氛围、创新氛围,利用学生参与实际创新实践活动的有利条件,突出学生职业道德、思想素质、文化素质,以及合作和敬业等专业精神的培养。

3.科研活动与实习实践

协同创新平台既承担各种纵向科研课题,也承担大量行业企业委托的科技攻关项目,具有任务量大、任务稳定、面向不同领域、面向行业企业等优势。基于协同创新平台培养研究生,可以充分利用这种优势,将平台培养的研究生分配到创新团队跟队实践,通过深度介入创新实践活动,接受科研训练,培养实践能力。跟队实践活动还可以采用流动制,每个学生在学期间轮流到若干个团队中跟队实践,既要运用多方面的知识,也有机会接触纵向科研活动和横向科技攻关,对学生构建综合性的知识体系,强化对职业、对科研的认识都具有积极的作用。

4.学位论文

专业学位研究生的学位论文应该侧重应用性研究。面向行业产业的协同创新平台不仅有大量的行业企业委托的科技攻关项目,而且科研课题也大多是围绕行业产业需求的基础研究,应用性突出。平台培养研究生的学位论文选题应该从协同创新任务中选取,学生从跟队实践的团队任务中选定选题,真题真做或真题假做。基于面向实践的真实任务的论文写作,可以有效地锻炼学生运用知识解决实际问题的能力,也能更有效地检验学生的知识储备,检验学生创新能力和实践能力的真实水平。

5.教学安排

目前多数高校专业学位硕士研究生的教学安排都还是采用传统的模式,第一年在校集中学习理论课程,其余时间则围绕学位论文的选题开展研究,最后完成论文答辩、授予学位。基于协同创新平台的研究生教育要打破这种传统的教学安排模式,探索“全程创新实践不断线”的教学安排模式。学生入学后就参与创新团队活动,跟队实践一个学期,完成某些实践课程,初步建立对未来要从事的职业的了解,对协同创新活动形成基本认识。然后安排理论课程和其他的实践课程,边学理论边实践,边上课边跟队参加科研活动,实现理论学习与实践活动的相互促进,加深对理论知识的理解,锻炼学生运用理论知识解决实践问题的能力。学位论文撰写也采用从团队任务中选定选题的办法,保证整个培养过程创新实践不断线。综合素质培养课程则可根据课程性质和要求,穿插安排在不同阶段。

6.导师配备

协同创新聚合了不同学科、不同领域的专家学者,一般以团队的方式协同攻关,利用此优势为研究生配备导师,可视整个团队为一个整体,共同指导学生的学习和研究活动。学生不隶属某位教师,避免传统一对一师徒规训研究生培养范式的弊端,[8]实现多人指导、团队指导;学生在不同团队实践,接受不同导师组的指导,可以更大限度地拓宽学生知识面和接触面;一个团队可能同时整合了学校教师和行业企业技术人员协同攻关,使得学科导师和企业导师在同一个工作面指导学生,避免以往学科导师和企业导师两张皮的问题,将学科导师的指导与企业导师的指导有机地结合在一起。

具体的做法可以是采取团队指导与个别指导相结合的方式,学生在团队实践学习期间,以协同创新团队为单位组建导师组,接受团队导师组的指导;在学位论文撰写期间,为学生指定一个主要指导教师,同时团队导师组也同样参与对学生的指导。

三、基于协同创新平台构建专业学位硕士研究生培养模式的体制机制保障

协同创新的载体,是相互依存、优势互补的不同子系统,它们共同构成了一个庞杂的整体。以协同创新平台为载体重构人才培养模式需要创新体制机制,保障其正常运行。

(一)体制保障

基于协同创新平台构建的专业学位研究生培养模式,改变了以往按高校或科研院所学科专业招生和培养的办法,实现以平台招生,平台独立承担研究生培养任务。由于协同创新平台的特殊性,必然涉及办学体制、管理体制方面的障碍,突出的是学位授予权问题和管理权限问题。

1.学位授予权问题

协同创新平台是多主体的跨边界组织,有牵头单位,却不具体属于某个单位,一般都作为独立实体或相对独立实体运行,因此协同创新平台要独立承担研究生培养任务,首要条件是获得授予研究生学位的资格,成为独立的学位授予单位。《中华人民共和国学位条例》第八条规定,“硕士学位由国务院授权的高等学校和科学研究机构授予”,同时国务院学位委员会《硕士、博士学位授予单位及其可以授予学位的学科名单审核》办法规定,硕士学位授予单位“应已获得学士学位授予权”。[9]目前建设的协同创新平台多数都没有独立法人资格,严格意义上无法算作“机构”。根据协同创新的特点,协同创新平台也不适宜举办高等基础教育层次的本科教育,依照规定,协同创新平台无法获得独立的硕士学位授予权。为了保障协同创新平台研究生培养工作的顺利开展,在不改变现行学位管理办法的情况之下,应该允许协同创新平台挂靠协同体内具有相应资质的高校或科研院所申报硕士学位授予权,单列招生,单独培养,授予挂靠高校或科研院所的学位。

2.管理权限问题

硕士研究生教育管理权已经下放,省级学位委员会、教育行政管理部门负责管理地区高校的招生、培养、学位授予等工作。协同创新平台是一个跨单位、跨部门甚至跨地域的组织,其人才培养活动就存在一个谁来管理的问题。比如,一个国家级的协同创新中心,聚合了国内多所高校、科研院所和企业组建而成,想挂靠一个地方高校申请硕士学位授予权,是由国务院学位委员会审批还是由地方学位委员会审批?其招生指标是占用挂靠高校的,还是另外追加?由哪级部门负责追加?等等。这些问题都需要一一厘清并出台相关规定,才能保证协同创新平台人才培养工作的顺利开展。

(二)机制保障

1.激励机制

建立激励机制,需要政府、高校从招生、经费等方面入手,给予政策支持,拿出激励措施,赋予更宽松的改革环境。一方面,促进协同创新平台勇于承担人才培养任务,不断探索新的人才培养模式;另一方面,激励优秀学生踊跃报读。国家为了促进协同创新中心积极投身人才培养工作,在国家级协同创新中心的认定中,对人才培养工作提出了明确要求,承担人才培养任务成为成功认定的重要影响因素;同时,专门为国家级的协同创新中心单列了博士研究生的招生指标。这些激励措施对协同创新中心承担人才培养任务起到了积极的促进作用。

具体到本文提出的基于协同创新平台重构专业学位硕士研究生培养模式,另需特别采取的激励措施包括三个方面。一是对协同创新平台教育资源的评定不能完全采用过去的标准。协同创新平台是流动的平台,随着研究任务的变化,人员、设备、场地都有可能发生变化。况且专业学位研究生相较于学术学位研究生,虽然实践锻炼要求较高,但科研素养、科研能力的要求较低,训练量相对少。所以在核定平台招生数量时,应综合考虑各方面因素,适当放宽相关标准。二是由于这一模式是基于实践的研究学习,对导师资格的认定应该与学术学位研究生导师资格有所区别。主要采用团队导师组指导制,对于每位导师指导工作量的认定会存在一定的难度,需要制定具有吸引力的办法,使团队成员积极投入指导工作。三是采取相应措施,鼓励协同体企业主动聘用平台培养的研究生,以良好的就业预期,吸引优秀学生主动报考。

2.约束机制

为了保证人才培养质量,必须建立一定的约束机制。

首先,是从保证协同创新平台建设质量的角度去建立约束机制。协同创新平台本身是新生事物,很多平台还处在不断建设的过程中。新的人才培养模式必须建立在良性运行的协同创新平台之上,所以应该有资格方面的要求,只有正常运行、任务量饱满的协同创新平台才有资格申请单独开展人才培养工作,享受一系列的优惠政策。

其次,是要考查平台的人才培养工作准备状态,只有经过充分的研究论证,做好完备的方案,才为保证人才培养质量打好了基础。因此,有必要做出规定,协同创新中心要有参与过人才培养工作的资历,并提出成熟的人才培养方案,通过专家评估,方给单独开展人才培养工作的资格。

最后,是建立人才培养质量评价机制。通过建立科学的评价指标体系、第三方评价制度等,客观、科学地评价协同创新平台的人才培养质量。同时建立退出机制,人才培养质量不达标的协同创新平台将退出人才培养工作。

3.保障机制

协同创新平台作为新生事物独立承担人才培养任务,面临诸多问题。

首先,是人、财、物的保障问题。良性运行的协同创新平台必然会集合了一支强大的人才队伍,获得充足的经费,得到场地、仪器设备方面的支持,即人、财、物都有,但不会必然地运用到人才培养上。因此,需要一套管理措施,引导协同创新平台将人、财、物投向人才培养活动,引导平台的专家学者投入人才培养活动。如国家就出台规定,给国家级协同创新中心下拨的运行经费只能用于人员招聘、人才培养、国际交流,这就从经费上为人才培养工作提供了保障。

其次,要给协同创新平台更多的人才培养自主权。从招生标准、课程设置、教学安排、学业评价等各方面,协同创新平台都应具有自主权,才有利于平台结合实际情况不断完善人才培养模式。

[1]宁滨.高校在协同创新中的地位和作用[N].人民日报,2012-04-19(07).

[2]刘钒,李光.湖北省协同创新平台的发展现状与对策研究[J].湖北社会科学.2014(1):61-62.

[3]杨震.国内外专业学位硕士研究生培养模式研究比较[J].湖南师范大学教育科学学报.2013(2):93-95..

[4]顾越桦.全日制硕士研究生分类培养模式的构建研究[J].江苏高教.2012(1):108-110.

[5]耿有权,彭维娜,彭志越,等.全日制专业学位研究生培养模式运行状况的调查研究[J].现代教育管理.2012(1):104-108.

[6]甄良,康君,英爽.建构我国研究生培养模式的改革思路[J].学位与研究生教育.2013(1):15.

[7]别敦荣,万卫.论我国专业学位研究生教育人才培养模式改革[J].研究生教育研究.2011(4):79.

[8]黄正夫,易连云.从师徒规训到协同创新:研究生培养范式的转换[J]. 研究生教育研究.2014(2):39.

[9]国务院学位委员会.硕士、博士学位授予单位及其可以授予学位的学科名单审核[EB/OL].[2015-05-11].http://www.moe.edu.cn/publicfiles/business/htmlfiles/moe/s8068/201405/169107.html.

MVC设计模式研究 篇5

1 MVC的结构

MVC设计模式将一个应用程序分为三个部分:模型(Model),视图(View),控制器(Controller)。

模型(Model)用来表示数据和业务逻辑,对应的组件是JavaBean。在MVC设计模式的三个组成部分中,模型主要用于数据处理。模型返回的数据与数据格式无关,也就是说与数据展示没有关系。模型提供的数据能被多个视图所使用,这样就提高了数据处理部分代码的重用性。

视图(View)是用户看到并与之交互的界面,对应的组件是JSP或HTML文件。视图提供可交互的客户界面,向客户显示模型数据。在视图中没有真正的数据处理发生,视图只是将模型里返回的数据作为一种输出数据进行展示并允许用户操作。

控制器(Controller)用来接受用户的请求,调用对应的模型去处理数据,根据模型处理的结果选择不同视图去展示数据并完成与用户的交互。在JSP中,对应的组件通常使用Servlet。

2 MVC工作原理

MVC设计模式的工作原理是客户端的所有请求都发送给控制器Servlet,Servlet接受请求,调用对应的模型处理数据,根据模型处理结果调用不同视图响应;同时Servlet还根据JSP的需求生成相应的Java Bean对象并传送给JSP,JSP通过直接调用方法或者use Bean的自定义标签,得到Java Bean中的数据。Servlet扮演了一个控制器的角色,负责生成JSP页面所要用到的Java Bean对象,并且控制流程的处理,根据不同的请求来决定转发到哪个JSP页面。

3 MVC实现思路

MVC设计模式具体实现是Java Bean作为模型层,Servlet作为控制层,JSP作为视图层。JSP专门用于表现数据而无须进行其他操作,使得JSP页面没有或只含有很少的Java代码。使得页面清晰,提高了可读性,便于维护。

每层作用如下:

Java Bean作为Model层,负责存储与应用程序相关的数据,实现各个具体应用的业务逻辑功能。

JSP作为View层,用于用户界面的显示。它主要通过信息共享,从Java Bean中取出数据,插入的HTML页面中。

Servlet作为Controller层,接收并处理客户端请求,通过Java Bean访问数据库或其他资源,提供View层中要用到的数据,根据处理结果决定转向哪个JSP视图进行交互。

这种设计模式通过JSP页面、Servlet、Java Bean的合作来实现交互处理,很好地实现了表示层、逻辑层和数据层的分离。

4 MVC框架的简单实现

5 MVC设计模式优缺点

MVC设计模式的思想是把应用系统中的各个部件分离,减少部件间的耦合度,这样软件的开发分工就很明确,可以把数据库开发,程序业务逻辑开发,页面开发分开,每一层都具有相同的特征,方便以后的代码维护。但是,分层也提高了对开发人员的要求,产生较多的文件,增加文件管理的难度。

摘要:MVC设计模式的思想是把软件系统中的各个模块进行分离,减少各层次之间的联系,使得层次之间更加清晰,提高了可读性,便于维护。

关键词:MVC,设计模式,控制器,模型,视图

参考文献

[1]李晓东.项目驱动教学法在计算机程序设计语言课中的探索[J].软件,2015(4):107-109.

[2]李晓东.ORM对象持久化技术研究[J].软件导刊,2015(5):52-53.

[3]高昂.JDBC数据库访问技术探究[J].信息与电脑:理论版,2015(13):93-94.

[4]李晓东.DAO设计模式研究[J].软件导刊,2014(7):-37.

[5]李立.浅析Java异常处理机制[J].电脑知识与技术,2012(27):6483-6484.

[6]魏惠茹.Hibernate对象持久化技术的研究[J].电脑知识与技术,2011(19):4733-4734.

[7]魏惠茹.泛型程序设计的研究[J].电脑知识与技术,2009(23):6435-6436.

[8]李霞.MVC设计模式的原理与实现[D].长春:吉林大学,2004.

[9]刘亮.基于MVC的通用型模式的设计与实现[J].中国科学技术大学学报,2010(6):635-639.

重构的MVC模式研究 篇6

分布式企业应用软件结构复杂、涉及多种技术,对设计开发人员提出了很高的要求。在此情况下,运用设计模式——可复用的设计方案进行软件的设计开发十分必要。MVC模式已被证明是一种成功的软件设计模式,主要讨论了一种实现MVC模式的应用框架――Struts,并通过一个实例展示了Struts框架实现MVC模式的方法。

2 MVC设计模式

MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成3个层-模型层、视图层、控制层。其结构如图1所示。

视图(View)代表用户交互界面,对于Web应用来说,可为HTML界面、JSP页面或其他。MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求。

模型(Model)是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其他层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计是MVC最主要的核心。

控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求[1]。

3 Struts的体系结构

Struts是MVC设计模式的一种实现,将Servlet和JSP标记用作实现的一部分。Struts继承了MVC的各项特性,并根据J2EE的特点,做了相应的变化与扩展,Struts的工作原理如图2所示[2]。

控制:Struts-config.xml与Controller相关联,在Struts中Controller角色就是Action Servlet。它提供了处理所有发送到Struts的HTTP请求的入口点并截取和分发这些请求到相应的动作类。所有的控制逻辑利用Struts-config.xml文件来配置。

视图:主要由JSP生成页面完成视图,Struts提供丰富的JSP标签库,这有利于分开表现逻辑和程序逻辑[3]。

模型:模型以一个或多个Java bean的形式存在。Action通常称之为Action Bean,获取从Action Sevlet传来的Form Bean,取出Form Bean中的相关信息,并做出相关的处理。

核心:Struts的核心是Action Sevlet,Action Sevlet的核心是Struts-config.xml。

4 基于MVC模式的Struts框架应用

通过一个具体实例说明如何应用Struts框架构建应用程序。该实例是一个预算管理系统中的预算资料模块,包括资料录入、资料查询、资料修改和资料删除4个功能,用于完成预算资料的录入、查询、修改及删除。

4.1 构建视图

在Struts下使用JSP开发视图,在页面中没有包含任何的脚本程序,只是单纯地完成数据传送以及接收和显示返回的数据。对数据的处理以及页面的跳转都在业务层中来实现。这样做实现了业务逻辑和表示逻辑的完全分离,提高了应用程序的性能和可扩展性,并有利于程序的复用。

Struts框架提供了一组可扩展的自定义标记库,主要包括:Bean标记、Logic标记、HTML标记和模板标记。通过使用标记,可以简化创建用户界面的过程,并且更好地实现数据的封装。通过使用这些自定义标记创建的JSP表单,可以实现和业务层中的Action Form的映射,非常好地和系统的业务逻辑部分交互。

下面给出资料录入页面的部分实现代码

程序中首先引入了HTML、Bean和Logic标记库,然后用action指出调用的Action组件的绝对路径,标记封装了表单数据,在业务层中用相应的ActionForm组件可以将输入的数据全部得到。

可以看出在视图中没有进行任何的业务逻辑的处理,其主要作用是给出客户端显示的信息和处理结果,以及请求的转发,它是和用户交互的接口。

4.2 构建模型

模型采用Java Bean和EJB组件,设计和实现系统的业务逻辑。根据不同的请求从Action派生具体Action处理对象,完成“做什么”的任务来调用由Bean构成的业务组件,创建由Action Form的派生类实现对客户端表单数据的封装。

下面以Budget Info Add Form这个Action Form Bean进行说明:

这里表示Budget Info Add Form继承于Action Form,在这个Bean中定义了视图中所要显示数据信息的参数,包括infoType,资料分类;title,资料标题;content,资料内容;info File,资料文件。同时在Budget Info Add Form中提供了设定和访问这些参数的方法:

4.3 构建控制器

在Struts应用框架中,中心控制器(Action Servlet)是由Struts框架本身所提供,开发人员一般无须对该Action Servlet进行再次开发;负责具体业务处理的Action类则是开发者开发实现的重点,在这些Action对象中会进行所有的业务操作,处理完毕,由Struts的Action Servlet转向到JSP页面,将处理结果返回给客户端。

在预算资料模块中,实现了4个Action:Budget Info Add Action,用于资料录入;Budget Info Content Action,用于资料查询;Budget Info Update Action,用于资料修改;Budget Info Del Action,用于资料删除。

4.4 建立配置文件

truts框架中有两个配置文件web.xml和struts-config.xml,用于配置Struts系统中的各个模块之间的交互。通过对这两个配置文件的配置,把Struts框架中MVC的各个部分联系起来,实现了一个真正的MVC系统。

5 结语

Struts是一种基于MVC设计模式的企业级Web应用开发框架,它的设计目的是从整体上减轻构造企业Web应用的负担。其自带的标记库能大大提高开发效率,同时提高了系统的可维护性和可扩充性。在总结Struts框架技术及其工作原理的基础上给出了一个应用实例,为今后更好地应用Struts框架开发Web应用程序提供了参考。

摘要:Struts框架具有组件的模块化、灵活性和重用性的优点,同时简化了基于MVC的Web应用程序的开发。阐述了Struts框架实现MVC模式的原理与方法,并给出了具体的应用实例。

关键词:MVC,STRUTS,JSP,预算管理系统

参考文献

[1]冯倩.基于Struts架构的旅行社计算机管理系统的开发研究[D].昆明理工大学,2006.

[2]张桂元,贾燕枫.Struts开发入门与项目实践[M].北京:人民邮电出版社,2005:152-153.

上一篇:提取工艺研究下一篇:骨折块移位