8个驯服烂代码的原则:bjdp.org第13次编程道场回顾

原创 2014年02月23日 23:44:27


* 时间:2014.02.23, 2:00-5:45pm

* 地点:北京直真科技技术股份有限公司

* 参加人数:24人

* 活动主题:驯服Trivia烂代码(Java版)

* Java版Trivia未驯服前源代码:https://github.com/wubin28/trivia/tree/master/java

* 伍斌第一次驯服Trivia的源代码:https://github.com/wubin28/TriviaJava

* 伍斌第二次驯服Trivia的版源代码:https://github.com/wubin28/TriviaJava-2nd


* 活动过程:

1. 伍斌介绍编程操练和驯服Trivia烂代码的一些体会

2. 在座匠友用绘图和代码做自我介绍

3. 伍斌现场编码演示驯服Trivia烂代码的一些步骤

4. 在场匠友结对编程驯服Trivia烂代码(每对7分钟)


* 整理出的8个驯服烂代码的原则:

1. 正在被客户端使用的服务端的公共接口不能改

2. 如果没有测试保护,则不能改相关代码

3. 让不能改的公共接口尽量地窄

4. 尽量早地消除重复代码

5. 尽量用整洁的代码替代注释

6. 对于无法修改且“词不达意”的公共接口,要添加what注释

7. 要编写粒度大些的验收级别的测试,比如验收特征测试(Acceptance Characterization Test),来覆盖尽可能大的范围,且与实现细节解偶,有利于方便地进行代码接口实现层面的重构,减少测试编写和维护的数量

8. 尽量多用SonarQube做代码内在质量的静态扫描


* 回顾要点:

- 在重构前,一定要先写测试代码,把要重构的代码先保护好,之后才能重构。

- 为获得最大限度的效果,在做驯服烂代码的结对操练前,各位匠友应该事先预习Trivia烂代码的逻辑。主持人在得知大部分与会者都未预习的情况下,在一开始应该增加一起阅读代码和添加注释的环节。

- 在重构代码时应该要考虑性能(伍斌的观点:在重构代码时,若能先把代码的可读性和可扩展性重构好,那么就能让提高性能的工作更加轻松。)

- 除了消除明显的重复代码,也要消除那些不大明显的重复代码

- 在消除魔法数的过程中,同时也想把魔法数转移到另一个新类中,感觉有些顾此失彼。建议一次只作一件事,即可以先在那个“身兼数职”的原有类中消除魔法数,再把魔法数转移到一个新类中。

- 在测试代码中,创建待测的类的实例这条语句,应该放到@Before里面,使得每个测试运行前,都能得到一个崭新的实例。而不要作为测试类的一个成员变量,以避免不同测试之间共享一个实例而造成相互干扰。


- 了解到SonarQube这个做静态代码内在质量扫描的工具

- 编程操练的形式很好

- 可以考虑以后再办一次驯服烂代码的道场

- 驾驶员和副驾驶介绍思路时声音太小

- 驾驶员敲代码和介绍思路时速度较快,使得副驾驶不了解驾驶员的思路

- 副驾驶刚刚换上时,应与驾驶员做相应的沟通

- 下次编程道场可以请大家自带电脑分头两两结对编程,而不是都轮流共用那台连接投影仪的电脑(伍斌的观点:这两种情况各有利弊,不过我个人觉得后者能让大家更专注,效果会更好)


* 疑问

- 驯服烂代码不知从哪里开始(伍斌的观点:先从区分哪些是不能修改的接口开始。)

- 结对编程的目的是什么?两人如何配合?如果两人想法不同该怎么办?(伍斌的观点:结对编程的目的就是“知识的相互传递”,对于个人能增长技能,对于公司能减少因专职负责某个模块的程序员生病、休假而造成的“单点故障”,让团队更健壮。结对编程中,两人的想法肯定会有所不同,这一点即使在日常不编程的工作中,也会时时碰到。我个人认为,解决方法也和日常碰到的情况一样,即需要掌握良好的沟通方法,比如要摆正沟通的位置:沟通不是为了说服对方,而是为了了解对方。您了解对方越多,您就越能和对方配合好。)


喜欢我今天的文章,不妨点击右上角按钮分享到朋友圈,以广结善缘。无论是否喜欢,都可回复本条微信,我必看必回。


您看到的上面我写的文章,首发于微信公众号bjdp_org。该公众号服务于我创办的bjdp.org公益编程操练社区。在这里,程序员们聚在一起,编程、学习、找乐子;和测试工程师一起结对编写验收测试代码;与产品需求专家一块探讨如何能让软件开发的成果不离谱。程序员、测试工程师和产品需求专家,是密不可分的“三兄弟”。


欢迎在微信上搜索bjdp_org关注北京设计模式学习组。


如果您想看本公众号以往的精彩内容,请回复m

相关文章推荐

二度驯服Trivia烂代码:bjdp.org第13次编程道场即将开始

二度驯服Trivia烂代码:bjdp.org第13次编程道场即将开始 2014-02-20 伍斌_Ben 北京设计模式学习组 伍斌_Ben在春节前第一次驯服Trivia烂代码,断断续续花...

驯服Trivia烂代码:bjdp.org第13次编程道场议程安排

驯服Trivia烂代码:bjdp.org第13次编程道场议程安排 程序员每天都会面临烂代码。如果您能刻意地进行多次驯服烂代码的编程操练,并从中找到自己的解决之道,那么烂代码就不再可怕,而变得...

2014全年bjdp.org编程道场日期安排

bjdp.org公益编程操练社区2014年计划安排10次编程道场,参加者均可免费参与。每次编程道场人数一般限定在15至30人之间。每次编程道场原则上均安排在周日下午2~5点,每次选择的编程操练语言按照...

北京设计模式学习组bjdp.org第7次活动(2013.08.04)回顾会纪要

北京设计模式学习组bjdp.org第7次活动(2013.08.04)回顾会纪要 时间:2013.08.04,9am-7pm 地点:北京龙泉寺(北京凤凰岭风景区内) 参加人数:北京龙泉寺信息中心(20人...

北京设计模式学习组bjdp.org第12次活动(2014.01.10)纪要与下两次活动安排

* 时间:2014.01.10, 6-9pm * 地点:首都信息发展股份有限公司(北京天坛公园西侧) * 参加人数:首信15人,bjdp.org 5人 * 活动主题:C#测试先行实现FizzBuzz游...

终极编程道场(The Ultimate Code Kata)

今天在Coding Horror上看到一篇不错的文章,原文链接:http://blog.codinghorror.com/the-ultimate-code-kata/         或许与你相信...

第一次参加Coding Dojo(编程道场)有感

通过老大介绍,我加入了“北京设计模式学习组”这个群,今天参加了第一次他们组织的活动。         人员到齐后,放眼望去,各种屌丝样(没有恶意)。         首先是主办人伍斌老师讲了创建这个组...

客户应该知道的8个软件开发原则

以下观点来源于国外互联网翻译,并加入实际工作感想: 1.     好的软件一定不便宜 软件开发和别的职业是一样的,需要花大量的时间学习。   实践经验: 正如目前国内很多软件,虽价格低廉,但常...

特别是8个原则!!

特别是8个原则!! 1.引言 渐进明细是项目的特点,但这并不意味着不需要计划。没有计划或者是随意的不负责任的计划的项目是一种无法控制的项目。在软件高技术行业,日新月异是主要特点,因此计划的制定需要...
  • WQ560
  • WQ560
  • 2012年05月22日 09:32
  • 550
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:8个驯服烂代码的原则:bjdp.org第13次编程道场回顾
举报原因:
原因补充:

(最多只允许输入30个字)