基于MVC团队组合模式的系统开发

MVC团队组合模式,主要源于J2EE中常说的MVC演变而来。确切地说这个东西是我自己杜撰出来的,但又经历过一些项目实践,今天拿出来在与大伙这里说说,一来弥补一下自己长期不写技术类文章的缺陷,不然很多人又说我作为一个软件人,在博客中连起码的技术东西都没有,很是惭愧。二来也想把自己经历过的丁点经验告诉大伙,至于是对是错,有用与否,那只有天晓得了,哈哈。。。。

   说到MVC团队组合模式,那就要说说我的框架WMframework,

   WMframework现阶段采用主要技术有:s2,ibtatis2,spring3,HTML,js, xml,ajax,整个技术框架也是自己杜撰出来的,一直自己在默默地喜欢着,改进着,这些年的程序员生涯也就剩余这点东西可以怀念下了。我向来不是吝啬的人,所以在后面的时间里我会逐步把自己的WMframework拿出来与大伙分享,希望有心的你可以期待,当然更梦想得到大伙的真知灼见。今天我主要说的东西还是我的团队中如何使用MVC团队组合模式进行软件开发。

   MVC团队组合模式?

  何谓“MVC团队组合模式”,主要意思就是把一个团队里面的各成员按其个人综合技能进行分工协作,具体地说就是针对每个业务模块的开发,采用各成员进行分工协作完成的模式。一个模块,张三完成一部分,李四完成另一部分,王五又完成其他部分。这有别于大伙常见的由一个人承担某个模块的开发合作模式。

   先来说说我们常见的开发模式。大伙都知道,我们通常的软件系统开发中,很多时候都是这样的,先由项目经理或小组长做统一的任务分配,把具体的各功能点模块按人头分配给团队中的各程序员们。比如用户注册张三负责;组织机构管理李四负责;哪天哪天这个模块由谁完成,哪天哪天这部分由谁实现。整个编码计划就是这样指定下来,直到系统的所有功能模块都被分摊到相应的开发人员身上。等待我们的程序员把各模块都编码完成,大伙再把这些代码、功能进行系统的整合、集成、测试等,这就是大家常见的甘特图模式,也是我们通常碰见的开发模式。

   我提出的MVC团队组合模式,区别于上面最大的不同就是,我把任何一个业务模块开发任务分为3部分,由三类不同角色的人员来共同完成,这三类人员我称它们为MVC,即M_actor 模型执行者、V_actor 视图执行者、C_actor 控制器执行者。

   下面我给出这三者的主要描述:

   M: M_actor 模型执行者

   主要任务:后台业务处理模型,主要就是Dao,sqlmap的编写;(在WMframework中,我已经弱化了dao这层,因为在WMframework中我们的dao都是公共的,开发人员基本上不用写dao。)

   个人要求:要求开发人员对数据库操作能力强,对整体业务流程充分了解,保证其sqlmap编写的sql完成当前模块的业务需求。

  这部分可以由擅长数据库开发人员和需求分析人员结合完成。

  V:V_actor 视图执行者

  主要任务:前台表单视图,主要就是jsp,html,js的编写;完成页面数据表单的设计、实现、业务数据的js校验、提交等。(在WMframework中,我对于页面表单数据提交、校验也是一个公用的自定义js前台框架,开发人员只需要写简短的几句js脚本调用即可。)

   个人要求:开发人员需要有很好的UI设计能力,可以更为人性化地实现页面操作,使其有更好的用户体验,知道些js语法和html标签使用即可。

   这部分由美工、UI技术人员和需求分析人员结合完成。

   C:C_actor 控制器执行者

  主要任务:s1/s2中的action,业务层接口service的编写;

  个人要求:开发人员熟悉常用的java开发模式,有很好的java开发能力,能很好地处理request请求,respronse返回响应等。(在WMframework中,我同样弱化了action的使用,很多时候对于多数页面请求只需要调用公用的action即可,开发人员基本上不用自己写)。

  这部分资深java开发人员完成。

   MVC团队组合模式优势

   通过我的介绍看出些好处没有?很明显,若采用MVC的开发模式来在组织团队人员,对不同类型的人员要求就不尽相同。

   C_actor 可以完成不用了解系统业务,他们只需要关心如何解析前台提交的请求数据,就WMframework而言就是完成从request里面读取xml转化为bean(这里说的bean也就是我们常说的pojo、vo、bo等)的实现;然后通过外部接口service转交给内部实现dao,最后在dao中完成持久层的相关操作;

   V_actor 可以完全不用了解什么叫j2EE,只需知道jsp的表头怎么写(其实很多时候不用写,因为我们都是include进来的嘛),合理地设计页面表单的布局,知道哪里该放button,哪里该用text,哪里摆个textarea,哪里该弄个select等,仅此而已;

   M_actor不需要关心用户界面如何设计,该怎么制作,用户数据以什么方式提交。他只需要清楚当前业务涉及那些数据模型,各数据表中相应的字段是否填上,哪些是必填项,数据类型是什么,数据大小如何定义,数据存储是否正确等。

   如果联系到公司人员配置问题,这里也有一点优势在里面。因为很多时候,很多公司,总会在项目来临一味扩招,项目结束一味削减,而最终能保留下来的也就是那么几个核心人物,当然我这里不是提倡这样的作法,毕竟多少有些凶残。如果你的公司,你的项目采用了我说的MVC团队组合模式开发,那很多时候,你的核心开发人员、业务人员依旧全力地支撑着整个项目,他们掌握着整个项目的核心,所以很多时候,你可以重点培养M_actor与C_actor,对于V_actor自然多少有些微不足道,弃之无妨。不过做人起码需要些厚道,尽管商场残酷,商人无情,终究我们都是人,应该多一点感情,多一点良知。实在不想要他们了,能最大限度给点补偿也不枉人家为你卖命一场。

   以上这些就是我能看到的基于MVC团队组合模式开发的优势,使用它可以让我们的开发人员减少许多需要关注和学习的东西,有时候闷头想来做一个合格的java web开发者,你最基本的可能需要知道这些:java、jsp、js、xml、css、sql、ide、html等,太杂,太多,太烦。但如果你使用如上所说的开发模式,让开发者专注于各自所特长的一方面,并进行很好地发挥,最后更好地完成自己的任务,做好自己喜欢的工作,那种感觉应该会好很多。起码是辛苦并快乐着,哈哈。。

   MVC团队组合模式劣势

   前面竟说了些好听的,下面我来说说MVC团队组合模式的弊端,最明显的一点就是,各类型成员间开发任务的同步性、顺序性、可用性测试、问题跟踪等。比如一个用户基本信息维护模块,如果某天客户需要增加一个用户生日的信息,必然会涉及 C_actor进行业务数据对象修改,M_actor修改sqlmap中的insert,select,update等语句,V_actor 修改表单jsp增加生日的输入框等。又或者用户基本信息业务模块出现异常(数据不正确,不能保存等)也必然需要C_actor、M_actor、V_actor来配合完成跟踪,这自然也就增加了当前任务消耗的资源。再或者用户基本信息业务模块不能在规定的项目计划时间完成,其最终的责任应该算在谁的头上。C_actor说用户表单没有设计,如何完成action的编写,V_actor抱怨数据模型没有给出如何知道页面元素类型,哪些应该必填,哪些应该选填,哪些应该下拉,哪些应该只读,我都不知道,叫我如何设计页面;M_actor呢,咆哮V_actor页面表单都没有,叫我如何知道业务模型需要那些字段,需要什么样的数据类型,需要多大长度。最终是个个推诿,人人有理,整天就是这样缠绕在彼此间借口的闭环中,周而复始、无穷无尽。哎,程序员,难啊。。。。。

   凡事皆有两面性,对于MVC团队组合模式我基本上说的差不多了。我曾经在一些项目中使用过它,有说好的当然也有暴跳骂娘的,终究是孰是孰非,谁对谁错,我也不得知晓,只待各位自己去想,去悟。

更多详情

基于MVC团队组合模式的系统开发,布布扣,bubuko.com

时间: 2024-08-04 15:43:04

基于MVC团队组合模式的系统开发的相关文章

起点联盟模式app系统开发

起点联盟模式app系统开发(微or电 158.1500.1390 小凡团队)起点联盟系统开发,起点联盟系统模式开发,起点联盟平台开发系统,起点联盟APP开发,起点联盟系统APP开发. 起点联盟是深圳前海春雷普惠投资管理有限公司与深圳市前海创惠起点网络科技有限公司联合发起的互助金融项目,是国内首创的一家"互联网+商家联盟+互助金融"的创新商业模式. 作为一个消费者,如何积极参与财富分配做一个消费商呢?信息时代的经济竞争,是以消费者为核心,那么,作为一个有眼光和能力的消费者,就有必要把自己

试读《基于MVC的JavaScript Web富应用开发》— 不一样的JavaScript

前言 <基于MVC的JavaScript Web富应用开发>是ItEye在7月份发起试读的书.下载了试读的章节,发现只有全本的开始到第二章,第一章很简洁明了地讲述了JavaScript的历史,怎么用JavaScript实现类,基本JavaScript的MVC的概念:第二章是浏览器的事件机制,DOM的事件监听,JQuery事件绑定的例子. 值得一提的是,这本书原本是O’Reilly Media, Inc带来的.O’Reilly的一系列“动物书”总是经典. 最大的感触:JavaScript的MVC

微信返利商城模式app系统开发

消费返利商城模式系统开发,积分返利商城模式系统开发,微信返利商城模式app系统开发 消费返利商城APP的开发是一种新型商业模式,主要为了解决了系统平台上面的吸粉难.促活难.留存难等问题以及提升整体销售额,商家通过将自己的部分利润返还给消费者的方式,提高消费者忠诚度,吸引消费者持续消费. 消费返利有很多种模式,购物返利商城是其中的一种模式,购物返利商城返利方式: 1.商品不用钱,只需支付邮费即可.例:100元的商品,你只需要支付12元的邮费,便可把产品带回家. 2.利润全返,只需支付产品成本部分.

java基于MVC的简单博客系统

原文:java基于MVC的简单博客系统 源代码下载地址:http://www.zuidaima.com/share/1550463595760640.htm 采用技术:jsp+servlie+javaBean+mysql+ajax

Vpay、tpay、“Pay模式”钱包系统开发

Vpay.tpay钱包系统,pay模式开发找颜宇,Vpay.tpay钱包代币系统开发,Vpay.tpay钱包交易平台开发,Vpay.tpay钱包交易所开发,Vpay.tpay钱包系统APP制作开发 一.Vpay.tpay区块链钱包有哪些功能特点? Vpay.tpay钱包可自我发行的数字货币,是一种独立于各国法币的"代币",有独立的发行节奏.发行策略和独立的汇率,类似比特币.可以类比各种购物卡.消费卡,可避免复杂的支付接口,在链上直接用来支付.购买商品.币币交易等. 二.Vpay.tpa

基于SSH框架的在线考勤系统开发的质量属性

我要开发的是一个基于SSH框架的在线考勤系统,在系统中常见的质量属性有:可用性.可修改性.性能.安全性.易用性. 可用性方面: 可用性是指系统正常运行时间的比例,是通过两次故障之间的时间长度或在系统崩溃情况下能够恢复正常运行的速度来衡量的.实现可用性的战术分为三类:错误检测(用来检测故障的健康监视).错误恢复(检测到故障时的恢复).错误预防(阻止错误演变为故障).用于检测错误的3个战术是: 信号/响应.心跳.异常.用于错误恢复的战术有7种:表决.主动冗余.被动冗余.备件.shadow操作.状态再

果园农场种植游戏复利拆分模式app系统开发详解

330复利拆分果园游戏app系统开发(苏公子.188.1414.7927)皮皮果游戏开发,玫瑰庄园游戏开发,复利拆分游戏开发,330模式开发,330果园系统开发,复利拆分农场系统开发,英伦果开发,皮皮果游戏介绍,地点的移动.由于移动互联设备小巧的外形,它天生具有可以移动的特征,人们可以拿着它随时随地随身的查询信息.办公.娱乐.购物等,在快节奏的生活方式中,可以随时移动和携带终端设备,在公交车.地铁.火车等特殊场合也可以随时接入网络,接受信息,提高了人们的办事效率,加快信息传播的速度. 果园复利拆

基于Spring Boot框架企业级应用系统开发全面实战

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者.    教程由浅入深,一步一步学习Spring Boot,最后学到的不单单是基础! 使用Spring Boot 进行Web 开发.数据访问.安全控制.批处理.异步消息.系统集

[已读]基于MVC的Javascript Web 富应用开发

这本书是12年出版,我买的时间应该是13年,书架上唯一一本盗版→ → 但是看完是在今年. 因为刚拿到的时候,读起来很是磕磕绊绊,就搁置了蛮久.到第二次拿起来的时候,发现已经有部分内容过时,但我还是觉得它不错,讲了bind函数.订阅者模式,还有MVC的一些东西,以后可以读第三遍. PS,看前面10章就可以了.