2017-11-29 15:40:38 redxun_cn 阅读数 3461
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

1. 敏捷开发平台简介

红迅JSAAS敏捷开发平台是广州红迅软件有限公司面向合作伙伴以及有IT运维团队中大型企业提供新一代的企业级的数据IT一体化的业务管理平台工具,它基于流行的JAVA开源技术上构建,扩展容易,学习成本低,可快速构建企业的一体业务管理中心,即满足企业以下的管理需要。

  1. 统一主数据管理
  2. 统一业务单据管理
  3. 统一业务流程管理
  4. 统一组织架构管理
  5. 统一数据门户
  6. 统一数据移动审批
  7. 统一数据报表管理
  8. 统一业务运营管理
  9. 统一知识文档
  10. 统一对外协同
  11. 统一对内协同

它将是您的企业在移动互联网下实现对企业的运营数据管控的得力助手。

适合应用场景

  1. 需要打通内部各系统,实现内部统一业务审批如EIP系统
  2. 建立全新的业务管理系统,如Oa,客户关系管理,合同管理,项目管理,成本控制管理
  3. 需要与ERP打通进行所有业务单据的审批,如销售订单、采购订单、合同订单审批,
    同时可在移动端、微信单进行同步审批及消息推送。
  4. 需要与用友NC、U8、U9、金蝶、顶捷等ERP进行数据单据整合,并且需要流程统一管控。
  5. 需要类似零售行业,实现与内部业务与外部供应商信息联动业务协同处理
  6. 需要实现类似政府公文的业务管理
  7. 需要有一块快速自定义的平台框架适应企业或单位的业务变化
  8. 需要构建企业内部的ERP系统

适合企业或单位

  1. 已有团队,需要建立企业内部平台运营
  2. 尚未有团队,需要全新建立企业IT运营团队
  3. 有新的信息化系统需求,含中大型国企
  4. 有开发小团队,尚未有成熟的开发平台
  5. 有业务项目,需要快速交付

采用红迅快速开发平台,可保证企业类的系统信息化的项目可按时按质交付,保证可观收益。

快速开发平台包括:

2. 应用框架技术

红迅JSAAS敏捷开发平台采用流行Spring轻量级框架,并且结合大量成熟的开源框架,满足企业级的开发与运营的需要。

  1. Spring Core核心容器
  2. Spring  MVC 4
  3. Spring AOP
  4. Spring Security
  5. Groovy动态脚本语言
  6. MiniUI前端JS框架
  7. Jquery javascrip库
  8. JPA、MyBatis Or JDBC数据持久层框架
  9. Maven版本控制
  10. Log4j Java XML API
  11. Scheduling Quartz定时任务
  12. Alfresco Activiti 5
开源技术框架详细介绍
JSAAS平台框架使用开源技术汇总
后端框架
1 Spring基础框架 spring-security-core 3.2.3 RELEASE
2 spring-security-web
3 spring-webmvc 4.1.2 RELEASE
4 spring-jdbc 4.1.2 RELEASE
5 spring-core 4.1.2 RELEASE
6 spring-orm 4.1.2 RELEASE
7 spring-jms 4.1.2 RELEASE
8 ORM框架-Hibernate JPA hibernate-entitymanager 4.3.6 Final/hibernate-jpa-2.1.api
9 ORM框架-MyBatis mybatis-spring 1.2.2
10 mybatis 3.28
11 任务调度 quartz 2.2.2
12 消息管理 Apache Active MQ 5.10
13 流程引擎 activiti-engine 5.18
14 activiti-spring 5.18
15 activiti-modeler
16 Office文件读写POI poi 3.10.1
17 报表引擎 Jasper Report 6.2
18 缓存读写 redis 2.9.0或memcached 1.5
19 JSON序列化 fastjson 1.2.32/json-lib 2.4
20 邮件引擎 javamail 1.4.4
21 XML读写 dom4j 1.6.1
22 模板引擎 freemark 2.3.18
23 JSP标签库 JSTL 1.2
24 规则与动态脚本引擎 groovy 2.3.0
25 日志库 log4j 1.2.15 slf4j 1.7.5
26 Http客户端 Httpclient
27 数据库连接池 druid 1.0.26
28 其他工具类 apache commons-dbuils 1.4 ,common-io 2.4,commons-lang 2.6等
前台库
1 JQuery jquery-1.6.11
2 MiniUI组件 mini-ui 3.7
3 Ueditor 1.4.3
4 CodeMirror代码编辑器
5 echart 3.7.1
手机端
1 Vue 2.0x/YDUI Touch

 

3.业务功能定制与在线配置

平台提供简单易用的并且功能强大的代码生成器配合开发人员来进行功能开发,以保证用户基于平台上快速构建所需的功能。满足您在不同的业务场景下的数据展示与应用的开发需要,实现真正上的业务的运营需求。

3.1. 代码生成器生成多层架构代码

mul-tiplelayer

  1. 支持不同层次的代码分层,让开发人员分工合作。
  2. 支持对外配置化的Restful WebService的配置你化需要
  3. 支持不同的数据库,如MySql,Oracle,SqlServer,Db2或国产的关系数据库
  4. 支持多种不同的客户端,如PAD,PHONE,PC

3.2. 在线的主数据及单据维护管理

系统提供在线的主数据单据配置,用户可在平台上通过大量使用不同的组件及数据类型,可映射至系统平台中,实现对主数据的可视化配置及管理,如下所示,在线配置项目的基本信息及其维护管理界面,同时手机端与微信端同样也可以实现这些数据的查询与管理。

主数据维护管理

系统允许开发人员或业务管理人员实现对以上的多种主数据的管理,可配置以下系统功能:

  1. 配置子系统
  2. 配置菜单
  3. 配置功能按钮
  4. 配置打印报表
  5. 配置移动端数据
  6. 配置数据权限
  7. 配置子系统、菜单、按钮的权限

3.3. 多种系统风格的支持

系统支持多种风格的子系统、菜单、功能列表的数据展示风格,可满足企业对UI的美观要求

高雅风格

平民风格

经典风格

 

3.4. 子系统与功能菜单在线配置

平台提供多个子系统统一集中管理,支持不同的功能面板配置,支持菜单下的功能按钮的配置与管理,让您的应用像积木一样,越建越好,并且越来越协同。

 

4.灵活组织架构管理

平台提供了灵活的组织架管理,可支持通过API直接从外部组织架构获得人员与部门数据来实现业务,也支持从其他组织架构源,如HR用户中心,AD或LDAP组织架构中心获得用户数据。JSAAS平台同时也提供了灵活强大的用户组织架构构建数据工具,可以满足企业的各种复杂的业务架构的运营需要。它通过组、用户、关系三大组织架构要素来支持组织的复杂运算。如默认中系统支持以下特性:

  1. 系统支持不同类型的机构,如平台可以给企业内部组织,外部供应商,经销商组织协同使用。
  2. 支持自定义的不同用户组,如部门、角色、岗位、职务、项目、销售区域等
  3. 支持自定义用户的多种业务关系,如汇报、上下级、销售汇总关系等
  4. 支持用户与组的多种关系定义:如主负责人,汇报关系人,部门领导等。

【组织架构管理】


角色授权

  1. 平台提供全面的功能权限管理,包括访问页面、数据、资源权限,有效满足不同企业、单位对数据权限的不同要求。
  2. 提供基于角色控制,可控制访问资源页面、功能按钮,过滤不同部门、不同分公司、不同组织的业务数据。

 

5. 业务单据管理

每个企业在运营过程中都会有不同的业务单据数据,需要进行录入、流转、归档、决策分析等。JSAAS敏捷开发平台是一个强大的单据管理平台中心,它提供了大量的可视化及编程式的工具,支持业务运营人员设计与部署满足企业运营需要的数据处理流程。

5.1.表单的可视化设计工具

表单的中的设计工具支持丰富的控件,可用于不同的应用场景下使用表单,支持可视化的工单配置,也支持编程式的工单配置管理。编程式的工单可保证能实现复杂的表单数据展示。 表单工具支持大量的常用数据展示控件,如:

  • 支持的控件类型有:
  • 文本控件
  • 复选控件
  • 复选列表控件
  • 单选择列表控件
  • 下拉列表控件
  • 日期控件
  • 月份控件
  • 时间控件
  • 编辑型按钮控件
  • 按钮控件
  • 自定义查级联查询控件
  • 多行文本控件
  • 富文件控件
  • Office控件
  • 下拉树控件
  • 自定义查询对话框控件
  • 用户选择控件
  • 部门选择控件
  • 组织架构选择控件
  • 子表控件
  • 图片上传控件
  • 附件上传控件
  • 组框控件
  • 日期相减控件
  • 金额大小转换控件
  • 子表数据统计控件
  • 条件展示的div
  • 隐藏域字段控件
  • 审批意见控件
  • 审批历史展示控件

业务表单方案

通过绑定表单方案及对表单的数据处理,可提供灵活的在PC端与手机端展示的建单功能。如:

5.2.单据数据列表设计工具

平台提供强大的数据列表生成功能,可以实现数据的普通列表展示,导航分类列表展示,树型数据展示。业务人员仅需要学会SQL语法,通过以下单据数据列表的工具,配置数据源、列表展示的表头、查询的字段、功能按钮及表单代码编辑。通过配置完成后,其可以展示以下的功能界面:

工具配置过程:

1.自定义SQL定义数据

2. 自定表头

3.自定义功能按钮

4.自定义查询条件

5. 一键生成PC端与手机端源代码及界面

同时也支持多种数据展示风格,如下左右导航树数据展示:

同时支持志生成列表的功能同时兼容手机端录入数据的界面,保证PC与手机功能一致。

红迅的业务单据满足实现企业级的单据应用的需求,它能满足:

  • 单据管理功能配置化及授权访问
  • 单据数据权限控制的控制访问
  • 单据按钮权限控制访问
  • 单据的数据的导入与导出
  • 单据的多种打印模板
  • 单据的流程配置及审批
  • 单据的统计报表制作
  • 单据流程的业务分析与管理

6.BPMN2中国式流程支持

JSAAS平台支持非常强大的流程服务,特别是中国特色的流程审批服务,包括:

  • 流程串行、并行审批
  • 子流程的审批
  • 流程版本变更
  • 流程的自由流程
  • 流程的人员变更处理
  • 流程任务的分发与汇总
  • 流程定义的会签
  • 流程的催办
  • 流程超时跳过
  • 流程的工作日历
  • 流程表单的在线配置
  • 流程分支的配置处理
  • 流程的组架构整合
  • 流程表单的权限配置控制
  • 流程消息通知
  • 流程的回退与追回
  • 流程的抄送与阅读控制
  • 流程表单的模板打印等

多种流程开发工具集的支持

流程在线定义、表单自定义配置、查询设计、列表设计、表单方案设计、流程方案设计、组织架构设计、数据字典、选择对话框设计、数据源设计、流水号设计、流程授权设计等,可以满足各种流程的业务扩展需求。

流程在线定义

平台整合Activiti Modeler Designer,支持丰富的BPMN2的元素语法,可描述简单与复杂的流程业务需求,为企业、机关单位制作完善的业务流程提供了完好的支持,结合平台本身的表单与流程解决方案工具,让流程业务落地变得简单。

bpm_designer_800

流程方案配置

提供组装流程业务的解决方案的管理,把流程定义、审批人员、流程表单、审批时的事件及交互脚本调用等组装起来,实现真正意义上的BPMN的流程业务规则。如审批时,执行写入其他数据库的操作。支持各种事件的脚本交互处理;同时可让平台扮演流程管理中心,支持第三方平台的流程应用调用。

 

待办任务处理

任务干预

提供用户多种途径对正在运行的流程实例进行干预处理,防止流程人为出错后,系统有效提供手段进行人工纠正。

7.手机审批

通过在手机端进行模板配置,无需要进行功能开发,即可实现手机上进行待办处理,大大方便企业的管理人员。

8.报表管理

平台提供流行的在线报表管理功能,客户可线下进行报表设计,设计完成后,上传配置即可在线报表查看,并可配置于公司首页、部门首页或个人的首页、菜单等,展示风格可根据报表模板来定,同时实现在线报表展示及导出。

report-design

上传后的报表展示

report

9. 基础服务支持

邮件服务

  1. 平台整合开源的邮件服务器,邮件服务器可独立部署也可嵌入式部署,但邮件量比较大时,建议分开部署处理,平台可以在线收发邮件,邮件可为内部邮件、也可为外部邮件。
  2. 邮件账号合并系统中的人员管理的账号,有效实现一号统一,邮件密码可与系统登录的密码不一致也可一致

文件附件管理

  1. 平台中大量的文件、附件、图片均需要进行统一的管理,系统对每个账号的附件上传的文件的类型、大小、访问安全提出严格的控制
  2. 提供文件全文索引管理,有效提高附件的搜索速度

支持在线的文档预览

内部消息通知管理

平台提供内部的短消息的收发处理,可有效在系统内进行消息的通知。结合后面外围的即时消息,可有效实现消息的即时收发。

短信消息管理

  1. 平台整合流行第三方短信网关,通过发送短信XML至网关,以达到有效给相应的人员推送短信消息
  2. 平台整合腾讯的信鸽云推送,可有效实现免费的消息推送

微信公众号

平台提供不同的微信开发管理功能,包括订阅号、微信公众号、企业号的菜单自定义、消息自动回复、企业公告等功能,为现在的企业的微营销带来便捷的体验。

企业微信

平台实现了企业微信的账号及用户组织架构同步,为流程的消息通知开通实时的企业微信通知服务。

数据交互处理

平台提供方便的数据映射及接口开放的功能处理,通过JSON\XML\JMS\WebService等数据格式有效实现数据接口处理。

自定义PORTAL

支持栏目模板自定义,支持门户布局配置,支持不同风格的部门、单位、个人的首页门配置。

其他基础功能工具

如菜单管理、数据字典管理、系统参数管理、系统访问日志管理、系统流程号管理,数据源管理,自定义SQL管理,任务调度管理,平台的工作日历,系统开发文档管理等。

 

10.SAAS功能的支持

平台可根据参数配置,是否打开SAAS的功能支持,一旦打开,即支持同一套应用同时提供给多个租户使用,默认采用以下的第二种方式SAAS的应用支持

layer6

 

支持多企业在线注册及使用

11.如需了解深层的技术与项目交流,请联系:

  • QQ: 1361783075

2010-10-23 11:49:00 qyongkang 阅读数 485
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

(本文来自《程序员》杂志0912期)http://www.programmer.com.cn/1310/ITPUB个人空间 v2Bu+j-u Y.sy%A
ITPUB个人空间&r0Y;F~ v;J!k,l%v
ITPUB个人空间FTd/kY&?

     一些敏捷团队在实施敏捷开发中忙于编码、忙于Unit Test、忙于沟通、忙于Build等,虽然也有编码审核阶段,但大都浮于表面,流于形式,效果不佳。本文结合实践,介绍笔者对敏捷开发中CodeReview的理解和相关经验。


j5~,a i@0

 

文/陈序明黄彦军

 

敏捷发中Code Review的目的及内容

做任何事情,首先要清晰为什么要做,才能有目标和动力把事情做得更好,Code Review 也是如此。只有清晰明确了敏捷团队进行CodeReview 的动机,才能以此为方向开展后续工作。下面我们推荐的敏捷开发中常见的Code Review的目的:

ITPUB个人空间 E,~3[ ~C x7|!b(e

 

设计合理性Review

在笔者的另一篇文章中《敏捷开发中的架构设计》谈到,敏捷开发中崇尚Code is design,对开发人员提出了比以往更高的要求,即需要开发人员不断地重构出合理的设计。所以敏捷开发中的Code Review也需要承担一部分“结对设计”和“设计把关”的职责。

这部分的Code Review 包括:设计的合理性(如实现方法,数据结构,设计模式,扩展性考虑等),是否存在大量重复代码和其他组件是否有重复的代码,包结构设计是否合理等。

笔者了解的一些项目中, 进行敏捷开发后, 提高了开发效率, 但是设计的质量却下降了。如RepeatYourself 的现象(特别是跨组件之间的Repeat Yourself 现象);更有甚者,在笔者看到一个某银行的应用中(不是国内的),数据库连接和操作是直接在JSP中写SQL语句。

像这些Bad Design 的例子还是很多的。这些在重构的时候应该由开发人员解决。但考虑到不同开发人员之间技术功底不一,很有必要在CodeReview阶段进行Review和讨论。

 

 

 

互为Backup

这是很容易被忽略,但是又很重要的一个Code Review的目的。

我们知道,敏捷开发中强调高质量的代码胜过详细的文档,所以某种程度上来说Code is Document。敏捷开发中的代码承担了一部分Document的职责,即传递技术的作用。

Code Review 中,Review 的开发人员了解代码的设计和实现,传递了技术,开发人员互为Backup,方便后期的维护,也减少了项目风险。

ITPUB个人空间 Y z-/p,`9N

 

 

分享知识、设计、技术

这也是很容易被忽略的一个很重要的目的。敏捷开发是一个中央集中控制到个体发挥积极性的过程,中央集中控制的优点就是有统一的视图和控制,经常开大会,开长会,这样知识和经验也较容易集中。敏捷开发中,分散在两个Scrum Team的开发人员之间,如果没有好的机制,相互沟通也会相对较少,造成知识和好的经验无法在整个团队传播。

笔者参加的项目中就碰到了类似情况, 当时我们整个团队分成三个Scrum Team,其中一个Scrum Team负责一个Eclipse 工具的开发, 其中用到的一些功能和知识在其他ScrumTeam上以前都有涉及过。当时负责开发的同事非常优秀而且能力突出,但由于不知道其他 Scrum Team同事有这方面的经验,没有很好地分享以往好的经验和知识,以至于最后导致浪费了一些学习的成本。

Code Review是一个学习和享受的过程,一个开发人员的能力有限,而Code Review正是这样的一种机制,让好的知识、设计在团队中分享,实现整体团队的成长和整体的效益最大化。

ITPUB个人空间 [/y*M)^l{

 

代码可读性

如上所说,敏捷开发中强调高质量的代码胜过冗余的文档,所以Code某种程度上是Document。敏捷开发中,代码的要求不止是能运行功能正确的代码,而是有了更高的要求,即Codefor maintenance。

可维护的代码,需要清晰,可读性强,这里可读性代码检查不是指代码格式(代码格式可以通过工具检查出),而是指代码语义。在笔者的文章《软件可消费性设计》中有一些这方面的讨论和建议。

ITPUB个人空间OBVoPn^-@x

 

 

 

Code中的“地雷区”Review

代码中的逻辑,除了业务逻辑,还应该包括技术逻辑。技术逻辑就是实现逻辑, 比如数据库连接打开是否忘记关闭,是否正确使用线程,Exception 处理,密码是否加密存储等。

我把这些最常出现错误的地方,而且是测试不容易发现的地方,称为Code中的“地雷区”。这些“地雷区”在Code Review 中是值得花费一些时间进行维护和检查的。

建议,在整个团队中维护并共享“地雷区”注意事项列表,以及统一的处理方式和机制。并在编码和Code Review过程中都按照团队的最佳实践进行。


rS5Qq;m'HvT3N0

 

 

 

发现代码中的业务逻辑错误

业务逻辑指的是代码开发的功能是否符合业务需求,如一个加法函数,检查其是否真的实现了加法的功能。

笔者了解的一些敏捷团队中,把发现代码的业务逻辑错误当做目标和内容,但往往效果都不是很好,基本都是从形式上泛泛检查一番。原因有两个:

1.业务逻辑的检查是从需求到代码的全方位检查,需要花费大量时间,投入产出比失衡。

2.业务逻辑的检查和业务需求紧密关联,已经超出了检查人员的能力范围(一般Code Review是开发人员,不是业务人员)。

笔者认为,发现逻辑错误,不应该是Code Review 的目的和内容。应该是Unit Test,功能测试,集成测试的目的。从投入产出比考虑,不应该花费太多时间在Code Review 阶段去进行逻辑错误检查。


1y&[QH![B7pOe0

 

 

 

敏捷开发中不推荐的CodeReview的目的及内容

下面还有一些常见的Code Review目的和内容被很多团队广泛使用,但作者认为这些并不是敏捷开发中的主要目的和内容,团队应该把时间花费在重要的目的和内容上,而不应该投入精力在下面的这些Code Review目的和内容上。

ITPUB个人空间(a6J.y} {8/M O

 

 

 

发现性能问题

有些团队把性能问题,也作为CodeReview的目的和内容之一,然后提出一些如String应该使用StringBuilder,而不能使用+,类似这样的看似有用其实无用建议。

笔者认为,性能问题是需要量化的衡量和精确定位, 很难通过CodeReview检查出来。而一些粗浅的性能问题可以通过一些工具方便地扫描出来,而无须花费时间去进行Code Review。

如图1是RAD V7.0 (IBM Rati onalApplication Developer) 中的SoftwareAnalyzer工具带有的Performance检查:

 

图1 RAD Software Analyzer中的Performance检查

图1 RAD Software Analyzer中的Performance检查

所以笔者认为,开发人员提交的代码,需要是经过工具检查后的代码。而代码审核人员则无须花费时间在性能相关的Code Review 上。具体的性能问题交给性能测试。

ITPUB个人空间&G!V9Ptf

 

 

 

发现开源的授权法律问题

开源软件也可以借助一些检查工具, 统一通过工具扫描, 无需在Code Review 阶段花费时间。

ITPUB个人空间wz%a[)X%V|?-s

 

 

其他问题,如国际化,J2EE BestPractice等

这些问题开发人员可以在提交代码之前通过工具发现和解决, 不是Code Review 阶段的职责和目的,也无须花费时间去处理。

像FindBugs 和RAD 这样的工具就具备类似的代码检查功能,如RADV7.0 中的Software Analyzer 工具带有如下的检查功能:

 

图2 RAD Software Analyzer中检查规则列表

图2 RAD Software Analyzer中检查规则列表

1.设计原则(5):用于面向对象编程的设计原则的规则。

2.全球化(47):基于全球化编码最佳实践的规则,有助于确保代码在局部环境中正确地运行。

3.J2EE 最佳实践(32):基于最佳的 Java™ 2 Platform EnterpriseEdition( J2EE)开发实践的规则,以及支持瞄准 IBM® WebSphere® 服务的Web 项目的规则;

4.J2EE 安全性(17):验证代码符合 J2EE 技术安全性需要的规则;

5.J2SE 最佳实践(71):基于最佳的 Java™2 Platform Standard Edition(J2SE)开发实践的规则;

6.J2SE 安全性(9):验证代码符合 J2SE 技术安全性需要的规则;

7.命名(2):关于 Java 代码中命名约定的规则;

8.性能(26):加强在 Java 应用程序中提高性能和减少存储器足迹的建议的规则;

9.私有 API (3):定位那些不属于 Java 代码的 API 的规则。


o(DWC0ZY&kQ2ig"d0

 

 

 

敏捷开发中如何开展CodeReview

在清晰明确了敏捷团队进行CodeReview 的目的和内容后,下面介绍如何有效地开展Code Review。


%/i*i2Y6R5y/uo0

 

 

 

沟通、协作、互助、学习的团队氛围

Code Review 中,Review 人员和开发人员不是对立的关系,而是互助、沟通、协作和学习的过程。团队形成互助、互学的气氛,既能互相增长团队的知识和经验,还能把产品做得更好。

Code Review协作过程:

a)先由代码的开发人员向检查人员进行大体的介绍,包括设计思想、数据结构、程序代码结构介绍等。

b)双方进行讨论、交流。

c)检查人员单独进一步进行CodeReview,并记录Review结果和建议。

d)由检查人员和开发人员一起,检查人员反馈Code Review结果,并和开发人员一起讨论改进方法,重构。

e)最后把可重用的Code Review的经验总结编码规范,或者记录到“地雷区”中。便于整个团队复用经验。

 

图3 Code Review是沟通、协作、互助和学习的过程

图3 Code Review是沟通、协作、互助和学习的过程

开展以上过程可以以开发人员为主,辅助以工具。但无须规定系列的文档、流程、Check List 等,这反而会影响开发人员的积极性。

Code Review 是发现问题的过程,同时也是学习和交流过程。需要是灵活、自由、主动的态度,而不是行政上的控制和规章流程。笔者建议:和敏捷开发的核心思想一致,让团队明确Code Review 的思想、作用和目的内容后,充分发挥个体的积极性和学习分享的动力。随时随地地进行CodeReview,讨论,重构,改进。


+~cJV-D:ZU0w.r @0

 

 

 

增量式Review

大家都知道,软件开发中存在长鞭效应,即一个问题越在后期发现造成的影响会越大,Code Review 也是

如此,如图4所示:

 

图 4 Code Review中的长鞭效应

图 4 Code Review中的长鞭效应

软件的开发过程中, 应该阶段性地进行CodeReview,而不是等到所有代码都开发完毕后再做一次性的Code Review。那时如果发现问题,造成的改动成本比增量式的检查来的大得多。

笔者了解的一些开发团队,他们在软件开发完毕,并测试后,才临时确定Code Review的人员,然后再安排半天左右的时间进行Code Review。结果尽管发现一些结构或设计方面问题,但由于修改成本大,也无法进行改进。

正确的方式是,在早期就参与设计开发过程,抱着互助、沟通、协作、学习的思想,阶段性的参与讨论、学习并贡献自己的意见。具体Review的频率、次数则可以由开发人员抱着主动、积极的态度,按照敏捷的思想自己去把握决定。

ITPUB个人空间4A@-^6] rG)vY

 

 

 

利用工具进行Code Inspection

有很多的工具可以辅助CodeReview :

1.如代码格式检查Checkstyle 工具,检查如过大的类、太长的方法和未使用的变量等这样违反编程规范的问题。

2.RAD中的Software Analyzer工具,可以基于规则进行国际化、J2EE最佳实践、性能、安全等检查。3.CSAR,用于扫描代码检查开源软件等。

4.JDepend,可以检查包依赖关系。

5.CPD工具,Eclipse 的 PMD 插件提供了一项叫做 CPD(或复制粘贴探测器)的功能,用于寻找重复的代码。

6.Eclipse 的Metrics 插件,提供了很多有效地查出代码复杂度的功能。

辅助以工具和自动化流程,能花很少时间轻松完成很多基本的CodeInspection 工作。让团队有更多的时间和精力去做更重要的Code Review。


[)O0S!UAV#I//%T5h Jf.Q0

 

 

 

持续自动化Code Inspection

工具检查可以由开发人员自行检查并修正, 但一种更可持续的做法是自动化的集成工具进行CodeInspection,可以通过自动化脚本在每日进行Build 前进行扫描,并呈现报告给相应人员。


,|dgR*Io%U0

 

 

 

Code Review协作工具

为了快速有效地进行人工CodeReview协作,可以使用诸如Jupiter这样的工具辅助进行。可以帮助开发人员有效管理Code Review任务、问题、建议等。


"i@_a2I&D0

 

 

 

总结

Code Review 的核心是:互助,沟通,协作,学习的过程,这是一个美妙而享受的过程,是跨越需求分析、架构设计、编码等各阶段的过程。敏捷团队应该统一达成 Code Review 对产品、对团队、对个人的巨大好处的共识,发挥出个体的积极性,相信会改变“流于形式”的现状,发挥CodeReview巨大的威力。

ITPUB个人空间}x*?~H#`J9L
(本文来自《程序员》杂志0912期)http://www.programmer.com.cn/1310/
N1mM}+Q.MG,V0ITPUB个人空间&C{ D E;v e7O?k

2013-12-12 16:49:39 sjtucong 阅读数 541
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

软件开发的项目经理通常需要权衡使用什么样的高效工具、如何制定项目进程计划表等等的关键因素。敏捷工具的合适选用对开发项目起到推波助澜、事半功倍的效用!


1. Jira/Jira Agile

JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。


环保服务公司Comanco的项目经理Astrid Byro说Jira是公司分布式技术团队的天赐之物,因为这个技术团队分布在卡塔尔、德国和英国,使用Jira Agile可以让项目经理随时随地的看到项目开发的代码、配置和文档,以及测试和审查的即时结果。

2. Axosoft OnTime Scrum

Axosoft OnTime Scrum能够帮助开发团队管理待办事项、产品发布和模拟项目冲刺。这款基于HTML5特性的工具提供创建图表和管理仪表板的功能,随着工作时间的走动,它可以追踪代码特性并修复bug。除此之外,HTML5也是Axosoft OnTime Scrum平台的一部分,兼具一些其它有用的协作工具,例如Wiki和bug追踪器。


负责咨询和图形设计的软件公司Envoc在两周的迭代周期就是使用的Axosoft OnTime平台。Envoc CEO Calvin Fabre说:“我们很高兴也很愿意成为OnTime的倡导者。”

3. LeanKit

LeanKit使用一个基于云基础的whiteboard来称述组织流程。每一个图卡代表工作项目,并且提供状态更新选项。团队使用LeanKit就可以看到工作负载分布,也能导出历史数据。


电邮营销公司Emma在跟踪各种团队工作程序的时候遇到了困难,于是开始启用全公司的LeanKit帐户,Emma操作分析师Kat Amano说道:每个人都可以登录LeanKit,只需要看一眼就能看到正在发生的一切。

4. Microsoft Visual Studio Team Foundation Server

TFS(Team Foundation Server)是 Microsoft应用程序生命周期管理(ALM) 解决方案的核心协作平台。不论在本地还是在云中,TFS均可支持灵活的开发实践、 多个IDE和平台,并为您提供有效管理整个IT生命周期的软件开发项目所需的工具。


Columbia Sportswear公司的技术服务总监Brian Summers说:“我所有的团队成员都在使用TFS来协调日常工作和开发项目之间的事情。”

5. Telerik TeamPulse

Telerik TeamPulse旨在帮助团队管理各种各样的需求和bug,和Microsoft的TFS共同提供双向同步服务。


软件开发经理Damien Coyle说:“公司员工根据自身不同的角色来使用Telerik TeamPulse:客户通过反馈门户与TeamPulse进行互动;产品经理通过访问待办事项来优先处理事项;项目经理计划迭代次数(冲刺)和跟踪分配的工作;开发人员查看任务板、完成工作;这一切都离不开Visual Studio和TFS一体化集成。”

6. Rally Platform for Agile Lifecycle Management

这是一种基于云技术的敏捷生命周期管理平台,在无数个团队里扩展使用,带有自定义页面、还能够自定义显示面板的功能,以达到自动化控制各种开发流程。


出售户外用品的网站Backcountry.com一直在使用Rally来管理软件产品和IT操作团队。网站项目管理总监Keith Klundt这样说到:“我们管理所有的工作类型,包括软件开发项目和操作,以及维护服务请求。软件产品团队使用Scrum来维护产品,使用Rally来模拟销售库存产品。”

7. Planbox

Planbox通过burndown图表来跟踪监视项目的进程,同时结合客户的反馈信息,这项工具所针对的人员是相对较广泛的。


PetFlow.com网站将对Planbox的使用从技术团队扩大到了营销团队。网站的项目经理Garroch Neil说:“我们正在逐步的采用敏捷开发方法,但是像这样的改变不是一天就能完成的。我们把Planbox的迭代当作是一个回顾性评价工具,目前仍然在使用优先队列系统,但是每两周迭代结束的时候,我们就得回顾一下完成了多少工作,检查一下bug、特性和优化等等等。”         (编译/薛梁  责编/付江)

此外,由CSDN联合微软共同举办的“TUP第三十期:移动开发大趋势:跨平台的挑战”活动于2013年11月7号举行,敬请报名参加。届时专家们将会现场深入剖析如何通过Visual Studio结合Xamarin利用C#语言去构建跨平台的移动应用,并与大家进行深度沟通。

2018-01-03 16:46:40 u013604967 阅读数 190
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

 

 红迅JSAAS敏捷开发平台是红迅软件推出的一款快速业务构建平台工具,它适合软件开发商、合作伙伴或存在IT运维团队的中大型企业用来解决企业信息化的需求,如同Excel那样轻便、易用,可收集业务数据、统计数据、审批数据等。它平台基于JAVA开源技术上构建,扩展容易,学习成本低,可快速构建企业的多种应用平台,如一体业务管理心、 统一主数据管理、业务单据管理、业务流程管理、组织架构管理、数据展示门户、数据移动审批、数据报表管理、业务运营管理、知识文档、对外协同、对内协同以及快速开发其他业务系统。

它是一款让开发人员喜欢的开发利器,快速+易用+功能强大,满足你在企业应用在PC、APP、微信端的快速开发需求,让企业应用开发变成一件快乐的事。

 

适合应用场景

 

  1. 需要打通内部各系统,实现内部统一业务审批如EIP系统
  2. 建立全新的业务管理系统,如Oa,客户关系管理,合同管理,项目管理,成本控制管理
  3. 需要与ERP打通进行所有业务单据的审批,如销售订单、采购订单、合同订单审批,
    同时可在移动端、微信单进行同步审批及消息推送。
  4. 需要与用友NC、U8、U9、金蝶、顶捷等ERP进行数据单据整合,并且需要流程统一管控。
  5. 需要类似零售行业,实现与内部业务与外部供应商信息联动业务协同处理
  6. 需要实现类似政府公文的业务管理
  7. 需要有一块快速自定义的平台框架适应企业或单位的业务变化
  8. 需要构建企业内部的ERP系统
  9. 想使用开源activiti流程引擎与表单实现企业内部管理

适合企业或单位

 

  1. 已有团队,需要建立企业内部平台运营
  2. 尚未有团队,需要全新建立企业IT运营团队
  3. 有新的信息化系统需求,含中大型国企
  4. 有开发小团队,尚未有成熟的开发平
  5. 有业务项目,需要快速交付


 

他提供在线的代码生成器,线下的代码生成器,可快速构建企业级的应用。

 

  • JSAAS应用云平台

专业的企业管理应用开发平台,帮您快速实现满足企业现场的实际用户化的需求应用。同时可以实现多租户的业务管理。

 

  • 丰富的应用及管理模板

 

从日常OA的应用至销售、人事、生产管理,每个部门都可以使用通用的个性化模板,你可以直接安装使用,也可个性化调整。

 

  • 强大的表单配置

 

用户完全可以自己在线DIY业务表单,并且实现对表单的数据管理。

 

  • 数据列表配置

 

 

 

 

 

 

 

  • 轻松构建应用

JSAAS平台提供单据、流程、报表等一系列的可视化工具,不需要编写代码,轻松实现开发与自定义PC、微信、APP端的应用。

 

 


 

 
 
 
 
 

 

  • 首页门户定义展示管理

通过配置及管理首页门户,实现对数据的获取与展示。为个人、部门、公司等提供个性化的首页门户展示管理。

 

 

  • 强大的BPMN2的流程规则定义

 

平台采用标准的Acitiviti BPMN2流程引擎,实现灵活式的中国审批流程操作,如会签、回退、抄送、沟通、加签等。

 

  • 灵活、可扩展的业务规则

 

通过表单计算逻辑、表单校验规则、业务间关联的逻辑、流程流转规则、报表计算逻辑等统一实现规则设计、扩展、调用、监控管理。挂接至流程业务上,实现业务的灵活处理。

 

  • 强大的业务组装能力

 

通过流程、组织架构、单据及权限控制、数据接口调用等实现了实现具体的业务及数据交互处理。

 

  • 灵活与强大的开发与集成能力

JSAAS提供开发者在线的编码、在线调试、线下代码生成与扩展,可帮您快速实现业务的深度扩展。结合平台提供的大量适配器与丰富的API,让数据随流程实现多业务间的无缝穿透。

 

 

快速了解

http://www.redxun.cn/?p=5088(在线快速建单)

http://www.redxun.cn/?p=5090 (在线快速实现单据管理)

http://www.redxun.cn/?p=5091   (在线组装业务流程审批)

 

 

部署免费包

https://pan.baidu.com/s/1slMEDLb

密码:pb84

 

若想更进一步学习了解,可发送联系方式

电话与邮件至1165655130@qq.com,即可获取eclipse的工程项目源代码

 

在线演示:

http://www.redxun.cn:8020/saweb/login.jsp

 

user:admin

pwd:1

 

2017-12-25 09:56:00 admin_root1 阅读数 44
  • SCRUM敏捷开发视频教程

    SCRUM敏捷开发视频教程,该课程为你分享SCRUM敏捷开发,理解敏捷的本质,认识中国IT行业对敏捷的挑战,学会让敏捷落地的实用招数。 嘉宾介绍:张传波 1. 创新工场创业课程(敏捷课程)讲师 2.软件研发管理佳实践顾问(曾任华为某团队研发顾问) 3. 中国敏捷联盟《ADBOK》(敏捷开发知识体系)项目组成员 二十年软件开发、软件设计、需求分析、项目管理、部门管理、公司管理及过程改进等经验,亲历“无数”项目,涉猎建筑、通讯、互联网、电力、金融、制造业、政府等领域,熟悉软件生命周期的全部过程

    10428 人正在学习 去看看 CSDN讲师

1.1 jira说明

  JIRA是Atlassian公司出品的项目与事务跟踪工具,被广泛应用于缺陷跟踪、客户服务、需求收集、流程审批、任务跟踪、项目跟踪和敏捷管理等工作领域。

  JIRA中配置灵活、功能全面、部署简单、扩展丰富,其超过150项特性得到了全球115个国家超过19,000家客户的认可

1.1.1 前期准备

#准备

echo "10.0.0.1 mirrors.aliyuncs.com  mirrors.aliyun.com"  >> /etc/hosts
yum clean all  &>/dev/null
mkdir -p  /application/  
mkdir -p  /server/tools/
cd /server/tools

# 安装 jdk

wget http://10.0.0.1/apache/tomcat/jdk-8u60-linux-x64.tar.gz
tar xf jdk-8u60-linux-x64.tar.gz -C /application/
ln -s /application/jdk1.8.0_60 /application/jdk
sed -i.ori '$a export JAVA_HOME=/application/jdk\nexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH\nexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar' /etc/profile
source /etc/profile
yum install mariadb-server -y 
systemctl start mariadb.service 
systemctl enable mariadb.service 
history

1.1.2 系统环境说明

[root@jira tools]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@jira tools]# uname -a 
Linux jira 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@jira tools]# getenforce 
Disabled
[root@jira tools]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)

java环境说明

[root@jira tools]# java -version
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

1.1.3 创建数据库

mysql
create database jira default character set utf8 collate utf8_bin;
grant all on jira.* to 'jira'@'localhost' identified by 'jira';
exit

1.2 安装配置jira

1.2.1 下载jira

           https://www.atlassian.com/software/jira/download

wget https://downloads.atlassian.com/software/jira/downloads/atlassian-jira-software-7.2.2-x64.bin
# wget http://10.0.0.1/apache/apps/atlassian-jira-software-7.6.0-x64.bin

# 修改权限

chmod 755 atlassian-jira-software-7.6.0-x64.bin

1.2.2 安装jira

[root@jira tools]# ./atlassian-jira-software-7.6.0-x64.bin 
Unpacking JRE ...
Starting Installer ...
十一月 24, 2017 7:05:22 下午 java.util.prefs.FileSystemPreferences$1 run
信息: Created user preferences directory.
十一月 24, 2017 7:05:22 下午 java.util.prefs.FileSystemPreferences$2 run
信息: Created system preferences directory in java.home.

This will install JIRA Software 7.6.0 on your computer.
OK [o, Enter], Cancel [c]
o
Choose the appropriate installation or upgrade option.
Please choose one of the following:
Express Install (use default settings) [1], Custom Install (recommended for advanced users) [2, Enter], Upgrade an existing JIRA installation [3]
1 
Details on where JIRA Software will be installed and the settings that will be used.
Installation Directory: /opt/atlassian/jira 
Home Directory: /var/atlassian/application-data/jira 
HTTP Port: 8080 
RMI Port: 8005 
Install as service: Yes 
Install [i, Enter], Exit [e]
i

Extracting files ...
                                                                           

Please wait a few moments while JIRA Software is configured.
Installation of JIRA Software 7.6.0 is complete
Start JIRA Software 7.6.0 now?
Yes [y, Enter], No [n]
y

Please wait a few moments while JIRA Software starts up.
Launching JIRA Software ...
Installation of JIRA Software 7.6.0 is complete
Your installation of JIRA Software 7.6.0 is now ready and can be accessed
via your browser.
JIRA Software 7.6.0 can be accessed at http://localhost:8080
Finishing installation ...

1.2.3 修改程序

# 先将 jira 停止

[root@jira ~]# /etc/init.d/jira stop

  程序下载地址: https://page00.ctfile.com/fs/15323800-217438995

unzip jira7.3.zip 
cd jira7.3/
\cp ./* /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
# 启动jire

# 启动jira

[root@jira ~]# /etc/init.d/jira start

1.3 web界面访问

  http://10.0.0.212:8080/

1.3.1 web界面安装

选择自己设置

 

选择数据库为mysql,填写好之前的mysql,先进行测试,然后点击下一步

 

数据库设置比较慢,耐心等待。

 

生产密钥

 

将密钥复制过来

 

配置完管理用户后点击完成

 

安装完成

 

1.4 创建第一个项目

 

   至此基本的使用就介绍完了。 

1.5 参考文献

https://www.ilanni.com/?p=12119
https://zh.wikipedia.org/wiki/JIRA
https://baike.baidu.com/item/JIRA/6608817?fr=aladdin

 我的博客即将入驻“云栖社区”,诚邀技术同仁一同入驻。

 

没有更多推荐了,返回首页