关于提高开发效率的面向对象开发模式的思考
2017-03-04 00:00
459 查看
最近,发现隔壁的开发团队(十几个人),连续加班了好几个月,还是被需求压得快喘不过气,每天都在赶着各种需求的实现和修改测试反馈的bug,以及部署新版本上线。这种工作强度,偶尔还行,时间久了很多人都会觉得累觉不爱。
看到这种场景,不自觉的让我思考是否有什么方式可以提高开发的效率,从而避免经常性的加班呢?
根据以往的经验,面对这样的产品,在产品建设的整个过程中,每个环节都值得我们关注。首先是需求,开发人员必需熟悉需求,并可以根据以往的经验和对产品的理解,预知一些问题,比如业务的某些细节,可能产品经理个人经验的问题考虑不周到,这时要求产品经理解释清楚,有些觉得自己有道理的,还可以要求产品经理确认或者调整,减少开发过程,需求变更带来额外的开发时间。另外,根据本次需求的根本目的和上线预期,要求产品删减某些非必要的需求,或推迟下个版本实现。曾经有个比较权威的产品经理告诉我,一个成功的产品,不在于产品功能有多丰富,关键在于核心功能实现。其次是设计和开发,一个好的设计,可以让开发人员更好的理解和实现,另外,后续的需求变更实现也会简单得多。关于设计,自觉得还比较嫩,这里就不描述太多了。至于开发,以前追求的是,给开发人员提供简单,易用,质量有保障的工具,从而提高开发效率。不过现在觉得,这显然还是不够的。 所以我又开始思考,是否可以通过改变组员的分工合作,来提高开发效率呢?
比如,根据开发人员所擅长的技术及其能力,分成两部分,一部分倾向前端开发,重视系统的用户体验,负责完成控制层和展示层的实现,基本理解业务需求,能理解需求文档和理解类图,熟悉前端相关的技术;另外一部分,熟悉后台开发,主要负责具体业务规则的实现,熟练使用后台相关技术(当然我们的框架中会提供比较完备的各种工具,开发人员无需详细了解其设计,例如,我们把RabbitMQ常用的场景封装成一个类,对外提供两个方法,开发人员只需要知道两个方法需要传入什么参数即可,其它相关配置,在项目搭建的使用已经由架构师准备好),实现系统涉及到的对象中的数据及方法即可。两部分的人,同个类图进行沟通,前端的开发人员负责根据需求使用类,后台的负责构建类。如此一来,两者分工明确,发挥各自的技术优势,两者对业务理解的要求也不一样,减少开发人员对需求和设计理解产生的时间成本,两者之间的合作,通过类图,围绕类图,双方可以更好的进行沟通。因为每个人对自己开发的领域都比较专一,事情做起来会更加熟练,代码的质量也会跟着提高,减少测试过程中跟进修改bug花费的时间。简单概括如下:
前端业务开发者:展现层+控制层;【负责用户体验和调用类实现业务控制(不关注业务实现的细节)】
后端业务开发者:业务实现层【负责构建系统相关的类;】
注:前,后端开发者在项目结束总结的时候可以完善基础框架【提供各种基础的方法和公共的组件】
当然,关于该开发模式,并不适合各种开发场景,比如项目很小,一两个人,两天就可以完成的。他比较适合工期比较长,开发人员比较多的场景。另外,该开发模式,是最近才开始尝试的,可能还有很多其它因素没考虑到。写出来,一时分享下自己的想法,二是,如果有大神有好的建议,希望可交流下。
看到这种场景,不自觉的让我思考是否有什么方式可以提高开发的效率,从而避免经常性的加班呢?
根据以往的经验,面对这样的产品,在产品建设的整个过程中,每个环节都值得我们关注。首先是需求,开发人员必需熟悉需求,并可以根据以往的经验和对产品的理解,预知一些问题,比如业务的某些细节,可能产品经理个人经验的问题考虑不周到,这时要求产品经理解释清楚,有些觉得自己有道理的,还可以要求产品经理确认或者调整,减少开发过程,需求变更带来额外的开发时间。另外,根据本次需求的根本目的和上线预期,要求产品删减某些非必要的需求,或推迟下个版本实现。曾经有个比较权威的产品经理告诉我,一个成功的产品,不在于产品功能有多丰富,关键在于核心功能实现。其次是设计和开发,一个好的设计,可以让开发人员更好的理解和实现,另外,后续的需求变更实现也会简单得多。关于设计,自觉得还比较嫩,这里就不描述太多了。至于开发,以前追求的是,给开发人员提供简单,易用,质量有保障的工具,从而提高开发效率。不过现在觉得,这显然还是不够的。 所以我又开始思考,是否可以通过改变组员的分工合作,来提高开发效率呢?
比如,根据开发人员所擅长的技术及其能力,分成两部分,一部分倾向前端开发,重视系统的用户体验,负责完成控制层和展示层的实现,基本理解业务需求,能理解需求文档和理解类图,熟悉前端相关的技术;另外一部分,熟悉后台开发,主要负责具体业务规则的实现,熟练使用后台相关技术(当然我们的框架中会提供比较完备的各种工具,开发人员无需详细了解其设计,例如,我们把RabbitMQ常用的场景封装成一个类,对外提供两个方法,开发人员只需要知道两个方法需要传入什么参数即可,其它相关配置,在项目搭建的使用已经由架构师准备好),实现系统涉及到的对象中的数据及方法即可。两部分的人,同个类图进行沟通,前端的开发人员负责根据需求使用类,后台的负责构建类。如此一来,两者分工明确,发挥各自的技术优势,两者对业务理解的要求也不一样,减少开发人员对需求和设计理解产生的时间成本,两者之间的合作,通过类图,围绕类图,双方可以更好的进行沟通。因为每个人对自己开发的领域都比较专一,事情做起来会更加熟练,代码的质量也会跟着提高,减少测试过程中跟进修改bug花费的时间。简单概括如下:
前端业务开发者:展现层+控制层;【负责用户体验和调用类实现业务控制(不关注业务实现的细节)】
后端业务开发者:业务实现层【负责构建系统相关的类;】
注:前,后端开发者在项目结束总结的时候可以完善基础框架【提供各种基础的方法和公共的组件】
当然,关于该开发模式,并不适合各种开发场景,比如项目很小,一两个人,两天就可以完成的。他比较适合工期比较长,开发人员比较多的场景。另外,该开发模式,是最近才开始尝试的,可能还有很多其它因素没考虑到。写出来,一时分享下自己的想法,二是,如果有大神有好的建议,希望可交流下。
相关文章推荐
- 本文是笔者根据数据库编程经验,利用C++语言的模板、继承、授权、多态等面向对象特性,借鉴命令模式,实现了对象在关系数据中的存储,降低应用系统与数据库之间的耦合,提高开发效率。
- 关于项目进度慢的思考----如何提高整体开发效率
- 关于项目进度慢的思考----如何提高整体开发效率
- 关于项目进度慢的思考----如何提高整体开发效率
- 关于提高Flex开发效率的一个模式设想
- 关于项目进度慢的思考----如何提高整体开发效率
- 关于项目进度慢的思考----如何提高整体开发效率(转)
- 关于项目进度慢的思考----如何提高整体开发效率
- 关于提高Flex开发效率的模式实践结果
- 面向对象开发的模式学习
- ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题
- 关于面向对象和设计模式的一些想法
- 关于提高AlphaBlend效率的思考
- 关于面向对象思想在程序开发中的应用
- ActionScript 3.0 Step By Step系列(五):走在面向对象开发的路上,以类为基础去思考编程问题
- 设计模式实战:用Prototype模式提高系统的开发效率,用DynamicMethod、Flyweight模式提高系统的运行效率
- php 面向对象开发中的观察者模式介绍
- 提高软件开发效率三板斧之二---利用CMP模式
- 提高软件开发效率三板斧之利用CMP模式——转自 博客园 蛙蛙池塘
- 关于软件开发效率的思考