【转】敏捷咨询工具箱(一)──读书写代码活动

本文介绍了如何通过系统阅读权威书籍、实施测试驱动开发(TDD)、制定详细读书计划以及建立代码展示活动,来帮助开发团队系统地学习并掌握C语言,消除盲点,增强编程自信,同时学会使用TDD进行开发。

发表于Infoq http://www.infoq.com/cn/news/2010/12/qac-agile-tool-box-reading

只要功夫深,铁杵磨成针

──宋·祝穆

在我们咨询过程中,遇到一些开发技术很薄弱的团队,大部分人只会通过复制和粘贴的方式写代码,然后花费大量的时间进行修改和调试。有些开发人员还只是刚刚从 学校毕业,几乎没有什么开发经验。面对这样的团队,如何教他们使用敏捷开发方法?如何教他们测试驱动开发?如何教他们简单设计呢?

如 果连一门语言还没有完全吃透,还如何谈测试驱动开发和简单设计呢?这是一个很大的挑战。我回想起自己学习新语言的方法。前些时间我自学了SCALA语言, 看完了《Scala程序设计:Java虚拟机多核编程实战》,但还是觉得很多概念没有吃透,然后我就把书合上,然后把书上所有的例子独立写了一遍,这时才 能感觉自己是学了一门语言。于是我用同样的方法来训练这个团队:

一、找一本合适的书。

如果要快速吃透一门语言,最快的方法就是找一本好书,系统的把一门语言学习一遍,扫除语言的盲点。我们如何选择一本合适的书呢,我总结了三个条件:

  1. 选择国外大师的权威著作,这些大师应该有深厚的开发经验,这样可以从书上学到很多编程和设计的最佳实践。
  2. 书不能太厚,最好在200-300页左右,足够介绍完一门语言的常用特性和最佳实践。那些面面俱到的的厚砖头一般适合做参考手册。
  3. 书上的例子一定要经典,这样比较适合练习。

因为团队主要使用C语言,我就在Google上搜索了一下“C书籍推荐”,找到了很多网友推荐的Top C语言书籍。通过我几天的阅读和筛选比较之后,最后我为大家选择了《C程序设计语言》这本书,完全符合上面的三个条件。如果你是使用的其它编程语言,可以参考下面的读书列表:

二、具体的读书计划

选 择书之后,就要有一个具体可行的读书计划,这样大家能有节奏的一步一步把书读完。因为大家都有一些C语言基础,所以我们把读书活动安排为每天的家庭作业, 每周读完2章。我们的验收标准是:在不看书的情况下用TDD实现每章全部的例题(这个后面会有详细的介绍)。下面是我给大家制定的读书计划:

时间内容
第一周第1章 导言
第2章 类型、运算符与表达式
第二周第3章 控制流
第4章 函数与程序结构
第三周第5章 指针与数组
第6章 结构
第四周第7章 输入与输出
第8章 unix系统接口

三、光看不练假把式

有了书,有了读书计划,当然这个还不够。这个活动的重点就是要写代码。这是读书写代码活动的验收条件。要求每个人在不看书的情况下,把书上的例题改造成测试驱动的代码。一章所有例题都改造完了,才算是把这章读完。比如:Hello World 的例子

#include
main()
{
printf(“hello, world\n”);
}

要求把这个例子改造成测试驱动的代码。改造之后代码分别为:
测试代码:

TEST(test_case_name, test_greetings) {
EXPECT_EQ(“hello, world”, greetings());
}

业务代码:

char[] greetings()
{
return (“hello, world”);
}

通过这样的训练,每个人不但可以系统的学习一遍C语言的知识,并且可以锻炼如何用TDD进行开发。

四、闭环──代码展示

如 何保证每个人可以完成写代码活动并且达到预期的效果呢?我们搭建了一个Subversion,让每人把自己的代码提交上去。我们每天早上会有一个代码展示 活动。准备一个投影仪,每个人花3-5分钟展示和讲解自己的代码,然后集体鼓掌表示认可,然后其他的同事提出问题和改进建议。这样有三个好处:

  • 让每人分享自己的代码和经验,这是对每人的认可和鼓励
  • 一个互相学习的氛围; 通过展示可以学习一下其他同事是怎么写代码,怎么写测试
  • 互相督促,如果没有完成代码,这时候就没有任何东西可以展示了

我们坚持了一个月之后,这个活动结束了。每个人都感觉很好,系统的把C语言掌握了一遍。一些有经验的一个开发人员也觉得,系统的学习之后消除了C语言的很多盲点。现在对C语言编程更有信心了,并且还学会了如何做TDD开发。

标题基于Python的汽车之家网站舆情分析系统研究AI更换标题第1章引言阐述汽车之家网站舆情分析的研究背景、意义、国内外研究现状、论文方法及创新点。1.1研究背景与意义说明汽车之家网站舆情分析对汽车行业及消费者的重要性。1.2国内外研究现状概述国内外在汽车舆情分析领域的研究进展与成果。1.3论文方法及创新点介绍本文采用的研究方法及相较于前人的创新之处。第2章相关理论总结和评述舆情分析、Python编程及网络爬虫相关理论。2.1舆情分析理论阐述舆情分析的基本概念、流程及关键技术。2.2Python编程基础介绍Python语言特点及其在数据分析中的应用。2.3网络爬虫技术说明网络爬虫的原理及在舆情数据收集中的应用。第3章系统设计详细描述基于Python的汽车之家网站舆情分析系统的设计方案。3.1系统架构设计给出系统的整体架构,包括数据收集、处理、分析及展示模块。3.2数据收集模块设计介绍如何利用网络爬虫技术收集汽车之家网站的舆情数据。3.3数据处理与分析模块设计阐述数据处理流程及舆情分析算法的选择与实现。第4章系统实现与测试介绍系统的实现过程及测试方法,确保系统稳定可靠。4.1系统实现环境列出系统实现所需的软件、硬件环境及开发工具。4.2系统实现过程详细描述系统各模块的实现步骤及代码实现细节。4.3系统测试方法介绍系统测试的方法、测试用例及测试结果分析。第5章研究结果与分析呈现系统运行结果,分析舆情数据,提出见解。5.1舆情数据可视化展示通过图表等形式展示舆情数据的分布、趋势等特征。5.2舆情分析结果解对舆情分析结果进行解,提出对汽车行业的见解。5.3对比方法分析将本系统与其他舆情分析系统进行对比,分析优劣。第6章结论与展望总结研究成果,提出未来研究方向。6.1研究结论概括本文的主要研究成果及对汽车之家网站舆情分析的贡献。6.2展望指出系统存在的不足及未来改进方向,展望舆情
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值