首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 数据库 第二书店 程序员

培养软件开发嗅觉


程序代码和鼻子的关系其实不大,之所以用嗅觉这个词是因为大家都这样用,本来应该用感觉这个词,毕竟程序设计需要调动人体的很多器官协同工作。

其实一直以来我都觉得嗅觉是不需要培养的,它应该是一种本能,就像我的小孩闻到酸的东西自然就会表现出奇怪的表情。当我看到不舒服的代码,自然而然就会难受、流汗、浑身不自在。那结果是你需不需要去洗澡的问题而不是你闻得到闻不到的问题了。如果能容忍汗流浃背的感受,大可以不去洗澡而让臭汗爬满背脊。看起来文章的标题应该换成“培养洗澡的习惯”。讨论软件开发嗅觉不是我发明的,已经有很多前辈谈过了。主要是这段时间维护一个系统的时候着实让我流了不少的汗。然而湖南这几天因为天气原因停水停电多日,我也没有洗澡有多日了。哎!

软件开发嗅觉是分层次的一个概念,对于恶臭可能大家都能闻得到,对于可能引发霉变的气味就不是人人都闻得到的了。所以,可以把软件开发嗅觉分为代码层次的、设计层次的、项目层次的,这两个东西没有严格的界限。代码层次的嗅觉主要关心代码的整体表观,不涉及到深层的逻辑结构上的关系。而设计嗅觉主要是架构或者逻辑方面的东西。项目层次的涉及到软件团队的管理、软件过程的设计、软件配置、质量管理等。所以,软件开发的嗅觉不只是代码,还有界面、配置、部署、过程等方面。如《GUI设计禁忌》一书实际上就是锻炼我们界面设计上的嗅觉。

代码嗅觉是最基本的能力,对于写代码的为主的程序员而言是一项基本功。美观的代码让人看着很舒服,觉得是一件艺术品。缩进和空行没有做好,看得人很容易找不着北,摸不清程序的流程结构。如果到处是常量和写死的文件路径等,可以想象这个软件有多糟糕,直接影响到的是软件的扩展性和可维护性。大段大段相似的代码,动辄上千行的函数和过程,对人脑而言是绝对挑战。要克服这些问题,一是要形成良好的代码格式化习惯,不要为一时之快偷懒。另外,要学会平衡软件的变与不变性,将变化的东西缩减和集中起来,把抽象做到一个灵活的平衡点上。在每次Ctrl + C/V的时候就思考一下,需不需要为此而进行一次抽象。说到底,代码嗅觉还是不需要培养,需要培养的是勤奋的工作态度。

设计层次的嗅觉是在一定的经验积累的基础上形成的,它是在长期的代码重构的过程中慢慢发展起来的一些逻辑体系的集合。所以,要培养设计层次的嗅觉,关键是形成良好的代码重构习惯,对于已有的系统和软件结构多做细考,看看能不能采用另外的方式以更加优雅的途径解决问题。具体实施代码重构的时候,一定要有一个明确的重构方向。而重构的手段和步骤就是需要自己解决的了。如果重构不是小范围的(如涉及到大的框架性的),则重构方法论上需要慢慢的体会,尽量将事情控制在人脑可以操作的范围内。

项目层次上的嗅觉就更不好说了,因为事情一旦上升到看不见摸不着的地步我们就似乎很难把握。而且,这方面的东西没有绝对的正确与否的评判标准,但时间总会给我们一个相对残酷的毫无情面的结论。但不管怎样,一些基本的东西还是可以很容易的嗅到。比如用到几乎淘汰的系统软件,或者依赖于特定的技术。还有像进度和质量方面没有安排,采用天马行空式的管理。或者集中开发阶段客户还在提出需求等,这些都反映出了项目层次上的味道。要清除这些异味,对于软件过程的规划需要有一定的计划性。不要因为麻烦或者着急就冒着危险急进。

说来说去,总之不要养成偷懒的习惯,今天勤快一点明天就能少做一点。



他们设置了哪些标签:


开发兴趣 培养软件开发嗅觉 项目管理

谁收藏了这个网址:


villa123收录

使用标签:项目管理,时间:2008-2-1 14:26:17 | 相关网摘

程序代码和鼻子的关系其实不大,之所以用嗅觉这个词是因为大家都这样用,本来应该用感觉这个词,毕竟程序设计需要调动人体的很多器官协同工作。

其实一直以来我都觉得嗅觉是不需要培养的,它应该是一种本能,就像我的小孩闻到酸的东西自然就会表现出奇怪的表情。当我看到不舒服的代码,自然而然就会难受、流汗、浑身不自在。那结果是你需不需要去洗澡的问题而不是你闻得到闻不到的问题了。如果能容忍汗流浃背的感受,大可以不去洗澡而让臭汗爬满背脊。看起来文章的标题应该换成“培养洗澡的习惯”。讨论软件开发嗅觉不是我发明的,已经有很多前辈谈过了。主要是这段时间维护一个系统的时候着实让我流了不少的汗。然而湖南这几天因为天气原因停水停电多日,我也没有洗澡有多日了。哎!

软件开发嗅觉是分层次的一个概念,对于恶臭可能大家都能闻得到,对于可能引发霉变的气味就不是人人都闻得到的了。所以,可以把软件开发嗅觉分为代码层次的、设计层次的、项目层次的,这两个东西没有严格的界限。代码层次的嗅觉主要关心代码的整体表观,不涉及到深层的逻辑结构上的关系。而设计嗅觉主要是架构或者逻辑方面的东西。项目层次的涉及到软件团队的管理、软件过程的设计、软件配置、质量管理等。所以,软件开发的嗅觉不只是代码,还有界面、配置、部署、过程等方面。如《GUI设计禁忌》一书实际上就是锻炼我们界面设计上的嗅觉。

代码嗅觉是最基本的能力,对于写代码的为主的程序员而言是一项基本功。美观的代码让人看着很舒服,觉得是一件艺术品。缩进和空行没有做好,看得人很容易找不着北,摸不清程序的流程结构。如果到处是常量和写死的文件路径等,可以想象这个软件有多糟糕,直接影响到的是软件的扩展性和可维护性。大段大段相似的代码,动辄上千行的函数和过程,对人脑而言是绝对挑战。要克服这些问题,一是要形成良好的代码格式化习惯,不要为一时之快偷懒。另外,要学会平衡软件的变与不变性,将变化的东西缩减和集中起来,把抽象做到一个灵活的平衡点上。在每次Ctrl + C/V的时候就思考一下,需不需要为此而进行一次抽象。说到底,代码嗅觉还是不需要培养,需要培养的是勤奋的工作态度。

设计层次的嗅觉是在一定的经验积累的基础上形成的,它是在长期的代码重构的过程中慢慢发展起来的一些逻辑体系的集合。所以,要培养设计层次的嗅觉,关键是形成良好的代码重构习惯,对于已有的系统和软件结构多做细考,看看能不能采用另外的方式以更加优雅的途径解决问题。具体实施代码重构的时候,一定要有一个明确的重构方向。而重构的手段和步骤就是需要自己解决的了。如果重构不是小范围的(如涉及到大的框架性的),则重构方法论上需要慢慢的体会,尽量将事情控制在人脑可以操作的范围内。

项目层次上的嗅觉就更不好说了,因为事情一旦上升到看不见摸不着的地步我们就似乎很难把握。而且,这方面的东西没有绝对的正确与否的评判标准,但时间总会给我们一个相对残酷的毫无情面的结论。但不管怎样,一些基本的东西还是可以很容易的嗅到。比如用到几乎淘汰的系统软件,或者依赖于特定的技术。还有像进度和质量方面没有安排,采用天马行空式的管理。或者集中开发阶段客户还在提出需求等,这些都反映出了项目层次上的味道。要清除这些异味,对于软件过程的规划需要有一定的计划性。不要因为麻烦或者着急就冒着危险急进。

说来说去,总之不要养成偷懒的习惯,今天勤快一点明天就能少做一点。

yanshijia01收录

使用标签:培养软件开发嗅觉,时间:2008-2-2 10:11:13 | 相关网摘

培养软件开发嗅觉 - Span Zhang(张友邦)的专栏 (分形艺术,摄影,软件开发,生活休闲) - CSDNBlog

weiguochuli收录

使用标签:培养软件开发嗅觉,时间:2008-2-2 14:03:03 | 相关网摘

对我有启发

tree_ch收录

时间:2008-2-2 15:45:13 | 相关网摘

BlueSkyInMyEye收录

时间:2008-2-3 17:21:48 | 相关网摘

helloworldnet收录

时间:2008-2-3 22:29:19 | 相关网摘

daoyuly收录

时间:2008-2-4 10:07:38 | 相关网摘

GoodM收录

时间:2008-2-7 21:17:09 | 相关网摘

chjiangsh收录

时间:2008-2-13 8:40:06 | 相关网摘

ruanchao收录

时间:2008-4-8 20:42:36 | 相关网摘

singsing05收录

时间:2008-4-9 19:07:45 | 相关网摘


网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
Copyright © 2000-2008, CSDN.NET, All Rights Reserved