《驯服烂代码——代码内在质量的改善之道》写作大纲之一:选题思路和读者对象

本人计划在2013年撰写《驯服烂代码——代码内在质量的改善之道》一书,恳请各位关注驯服烂代码的朋友审阅下面的写作大纲,看看如何写才能帮到日夜加班奋战在烂代码之中的人们。望不吝赐教,多谢!

选题思路

本书主旨是通过可运行的实战案例代码来讨论改善Java代码内在质量的心法和手法。

本书属于国内原创直接讨论“驯服烂代码”题材的图书,而该题材的图书在市场上目前是空白。虽然有不少相关主题的英文经典著作,但是很多中国程序员英文阅读能力不足,造成很少有人阅读英文技术书籍。另外英文经典的中文译本固然很好,但西方式的思维方式不适合国人口味,如英文code smell翻译成“代码的坏味道”虽然很贴切,但是直接用在中国团队中,效果并不好,很多中国程序员对“代码的坏味道”视而不见。因为中国人的体味不如老外重,不像老外那样天天喷香水,对“坏味道”有很大的忍耐性,造成中国人意识到代码内在质量问题的严重程度。从在百度搜索“烂代码”的结果看,网络社区的有关驯服烂代码的中文技术文章十分稀少,且知识不够系统。

直接讨论“驯服烂代码”的国外图书:
* 2004.10.02, Working Effectively with Legacy Code by Michael C. Feathers
* 2007.11, 《修改代码的艺术》刘未鹏译, 人邮图灵
间接讨论“驯服烂代码”的国外图书:
* 1999.07.08, Refactoring: Improving the Design of Existing Code by Martin Fowler, Kent Beck, John Brant and William Opdyke
* 2010.04, 《重构》熊节译, 人邮图灵
* 2003.09.06, Refactoring Workbook by William C. Wake
* 2011.06, 《重构手册》黄湘情、 张波,科学出版社
* 2004.08.15, Refactoring to Patterns by Joshua Kerievsky
* 2010.12, 《重构与模式》杨光、刘基诚译,人邮
* 2013.01, 《重构与模式(修订版)》杨光、刘基诚译,人邮
* 2006.05.26, Refactoring in Large Software Projects: Performing Complex Restructurings Successfully by Martin Lippert and Stephen Roock
* 1998.04.03, AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis by William J. Brown, Raphael C. Malveau, Hays W. "Skip" McCormick and Thomas J. Mowbray
* 2007.05.31, xUnit Test Patterns: Refactoring Test Code by Gerard Meszaros
* 2009.10.25, Refactoring: Ruby Edition by Jay Fields, Shane Harvie, Martin Fowler and Kent Beck
* 2010.04, 《重构(Ruby版)》机械
* 2010.11.19, Rails AntiPatterns: Best Practice Ruby on Rails Refactoring (Addison-Wesley Professional Ruby Series) by Chad Pytel and Tammer Saleh
* 2009.10.25, Refactoring in Ruby by William C. Wake and Kevin Rutherford
* 2006.03.13, Refactoring Databases: Evolutionary Database Design by Scott J Ambler and Pramod J. Sadalage
* 2008.08.29, Refactoring SQL Applications by Stephane Faroult and Pascal L'Hermite
* 2009.04.20, Professional Refactoring in C# & ASP.NET (Wrox Programmer to Programmer) by Danijel Arsenovski
* 2011.06, 《代码重构(C#&ASP.NET版) 》潘立福、 权乐译, 清华
* 2010.07.26, Refactoring with Microsoft Visual Studio 2010 by Peter Ritchie
* 2008.04.07, Professional Refactoring in Visual Basic by Danijel Arsenovski
* 2012.12.13, Refactoring HTML: Improving the Design of Existing Web Applications by Elliote Harold
* 2008.08.11, Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
* 2010.01, 《代码整洁之道》韩磊译, 人邮
* 2004.07.07, Code Complete: A Practical Handbook of Software Construction, Second Edition by Steve McConnell
* 2011.10, 《代码大全(第2版)》, 金戈译, 电子工业
* 1999.10.30, The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
* 2011.01, 《程序员修炼之道:从小工到专家》, 马维达译,电子工业
* 2011.05.23, The Clean Coder: A Code of Conduct for Professional Programmers (Robert C. Martin Series) by Robert C. Martin
* 1999.10.07, Programming Pearls (2nd Edition) by Jon Louis Bentley
* 2008.10, 《编程珠玑(第2版)》, 黄倩、 钱丽艳, 人邮图灵
* 2009.10.22, Growing Object-Oriented Software, Guided by Tests by Steve Freeman and Nat Pryce
* 2002.11.18, Test Driven Development: By Example by Kent Beck
西方相关内容的经典作品固然优秀,但是也有其水土不服之处。如经典作品《修改代码的艺术》,首先该书未针对中国程序员讨论代码命名的问题,而中国程序员英文写作能力不足造成代码的英文类名、方法名和变量名令人费解是个老大难的问题。另外该书没有可运行的实战案例,可能因为该书主要针对具有若干年开发经验的中高级程序员而写,代码示例基本是点到为止,且没有代码可供下载,但是大量的中国程序员是开发经验较少的初级程序员, 他们需要一个手把手的的教程和一个可以运行的实战案例去学习。第三该书没有针对中国程序员特有的专业精神问题进行讨论,作为软件开发主力军的中国80、90后程序员由于家庭和教育的问题,普遍缺乏程序员应有的专业精神。另一本经典作品《重构》缺少讨论驯服烂代码的关键步骤:确定修改点、找到测试点和解依赖。
中国软件开发目前的现状是软件开发的浮躁心态严重,造成中国软件产品代码内在质量偏低,进而导致软件产品外在质量较低,程序员加班改bug已经成为常态。
浮躁心态的第一个表现是:片面追求财富和市场的中国教育和娇生惯养的独生子女家庭让中国80、90后程序员普遍缺乏程序员应有的专业精神。昔日的中国著名程序员在狂飙突进的中国经济的增长下纷纷放弃编码做高管,深刻影响了中国年轻的程序员,“现在做技术,将来做管理”成了很多程序员的共识。
* 严援朝在开发第一个中文操作系统CCDOS后,创办四通利方。
* 王江民在开发杀毒软件后,创办江民科技。
* 鲍岳桥在开发UCDOS后,创办联众游戏。
* 王志东在开发国内第一套实用Windows 3.0汉化系统“北大中文窗口系统BDWin 3.0”后,创办四通利方信息技术有限公司和新浪网。
* 王永民在开发王码五笔后,认北京王码电脑总公司总裁。
* 廖恒毅在开发“中文之星”和拼音加加后,任佳软公司副总经理。
* 袁红岗在开发适合小型企业使用的财务购销存一体化软件KINGDEE 2.7后,创办金蝶财务软件。
* 求伯君在开发金山WPS后,创办珠海金山电脑公司。
中国何时才能出现像下面这样的程序员呢: 出生于1961年,从23岁开始做程序员,39岁做软件咨询师, 43岁做公司董事,49岁做首席科学家,从50岁(即2011年1月) 开始至今在Facebook做程序员, 开发和优化一个用于处理消息传输的C++的服务器。 他就是发明极限编程XP和测试驱动开发TDD的美国程序员Kent Beck。研究Kent Beck在LinkedIn上简历,能发现: 1)他编了35年程序,其中作为专业程序员编了24年程序; 2)他仅仅精通Java/Smalltalk和Eclipse,正在学习Rails, Erlang和REST。 3)已经51岁的他目前身兼数职:Facebook程序员、 ThreeRivers程序员、Iterate首席科学家、JUnit总监。 Kent是程序员专业精神的典范。
浮躁心态的的另一个表现是:重流程工具运用,轻代码内在质量。敏捷软件开发在国内成为2012年度热词,但是国内软件开发行业 推广敏捷宣言的理念时,恰恰更重视流程、工具和bug统计报表, 而不重视“可工作的软件”的基石:代码内在质量。
纵观前景,重视代码内在质量是提高中国软件产品质量的必由之路。首先,从2007年开始以《修改代码的艺术》和《重构》为代表的与驯服烂代码相关主题的图书在中国相继被翻译出版,表明中国软件开发行业已经意识到代码内在质量的重要性,并开始学习西方的经验。第二,代码内在质量是因,代码外在质量是果。软件是由代码构成的,代码的内在质量直接决定了软件产品的外在质量。 要想提高软件产品的外在质量,代码的内在质量的提高是必由之路。第三,未来几年热门的IT技术如大数据、云计算和移动应用的发展都离不开高内在质量的代码作为坚实的基础。最后,中国软件开发行业的高、中、基层人士最终会认识到,减少软件的bug,加快软件开发的进度,摆脱经常加班改bug和项目经常延期的阴影, 最根本的做法就是提高代码内在质量。
读者对象
本书所面向的读者对象初步可以划分为:
(1) 第一类读者:软件开发新手、长期从事低水平重复工作的软件开发老手、软件开发基层项目经理、Scrummaster、架构师、对测试驱动开发感兴趣的人,可以阅读:第一篇 明道、第二篇 知行、第三篇 优术。
(2) 第二类读者:富有经验的软件开发老手、软件测试基层经理、软件开发产品经理、软件开发和测试的中层及高层管理者,可以阅读:第一篇 明道、第三篇 优术。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值