java开发中的心理学
2007-08-04 13:21
696 查看
高级程序设计语言自问世以来,林林总总加在一起不下一百种,Java能在其中一支独秀,独领风骚,除了"Write once, run anywhere"的优势外,另一个值得关注的是它符合人类心理的需要。Java语言是静态的物,没有程序员开发出应用程序,它是没有价值的。在软件开发过程中,程序设计语言做什么,语言做什么,作为人的程序员做什么,有明确的界面和分工,在工程领域这个界面叫人机工程学,在心理学领域被称作工程心理学,二者含义接近。
在Java开发的最佳实践提倡用完整的单词来表示标识符,即使看起来很长,例如资源管理者表示为ResourceManager。别人一看就能明白含义,界面是不是更友好呢。
写Java语言的人可能都用过C或C++来开发,用C++可能都会了解到匈牙利命名规则,它用前缀表示数据类型,例如,a表示Array,c表示Char,等等。类型前缀还可以组合起来用。前缀的使用也推动标识符缩写的应用,象pDlg用来命名一个对话框指针。缩写规则进一步推广到应用软件开发领域,就是另外一番情景了:我看到过DisctMgr表示折扣管理,还有用RsMgr表示资源管理。应用软件与行业、领域紧密相关,不是所有开发员都很熟悉,不好的缩写,让人去猜测缩写的含义,转移人的注意力,挤占了思考代码逻辑的精力。
心理学研究表明,人的注意力是有限的,人脑同时考虑3个事物是最佳状态,注意4~5个状态会下降,注意7个以上事物是相当困难的。有限的注意力可以理解作资源,在同一时间点,注意力应该得到合理的分配。小时候,老师经常会提醒同学们上课不要开小差,小同学的注意力转移到玩小动作,看窗外的风景,当然不会听老师在讲什么内容了。我小时候是个听话的好孩子,不会开小差,大了反而常开小差。
回到正题,在Java开发中的心理学原理体现在哪里呢?开发软件是一项很复杂的劳动,要设计类、方法,写代码逻辑,写完了要编译、调试,还要理解业务需求。开发本身就很难了,在设计类时,就要努力到达低耦合、高内聚。低耦合,紧密关联的类少了,就不会浪费注意力到别的类上;高内聚,可以把注意力集中在一个类的内部。记忆力越集中,越能产生高质量的成果,为什么优秀的程序员形销骨立的多呢?因为工作太投入,注意力太集中,没有考虑保养身体,过有质量的生活。
用完整的单词,其心理学意义何在呢?整词的含义一看就明白,分配较低的注意力水平就能搞定,可以把更多注意力分配到程序结构,分支、循环之类的,这样不是可以做更多有意义的工作吗?
相对C/C++、PHP等语言来说,Java写的代码更容易理解,虽然有时看起来代码很长,例如Java Bean的Getter/Setter方法,但是它容易理解,有开发工具的支持,程序员还是喜欢用。所以要大力提倡使用整词,象ResourceManager,getResource()等等,慎用缩写,没有把握最好不用。
人的注意力是有限的,项目工期是限定的。从某种意义上看,项目人月也就是注意力与项目工期的乘积。对项目管理者来说,调动开发员的注意力到较高的效率和应用水平,就能缩短项目周期,老板会有奖励的。
在Java开发的最佳实践提倡用完整的单词来表示标识符,即使看起来很长,例如资源管理者表示为ResourceManager。别人一看就能明白含义,界面是不是更友好呢。
写Java语言的人可能都用过C或C++来开发,用C++可能都会了解到匈牙利命名规则,它用前缀表示数据类型,例如,a表示Array,c表示Char,等等。类型前缀还可以组合起来用。前缀的使用也推动标识符缩写的应用,象pDlg用来命名一个对话框指针。缩写规则进一步推广到应用软件开发领域,就是另外一番情景了:我看到过DisctMgr表示折扣管理,还有用RsMgr表示资源管理。应用软件与行业、领域紧密相关,不是所有开发员都很熟悉,不好的缩写,让人去猜测缩写的含义,转移人的注意力,挤占了思考代码逻辑的精力。
心理学研究表明,人的注意力是有限的,人脑同时考虑3个事物是最佳状态,注意4~5个状态会下降,注意7个以上事物是相当困难的。有限的注意力可以理解作资源,在同一时间点,注意力应该得到合理的分配。小时候,老师经常会提醒同学们上课不要开小差,小同学的注意力转移到玩小动作,看窗外的风景,当然不会听老师在讲什么内容了。我小时候是个听话的好孩子,不会开小差,大了反而常开小差。
回到正题,在Java开发中的心理学原理体现在哪里呢?开发软件是一项很复杂的劳动,要设计类、方法,写代码逻辑,写完了要编译、调试,还要理解业务需求。开发本身就很难了,在设计类时,就要努力到达低耦合、高内聚。低耦合,紧密关联的类少了,就不会浪费注意力到别的类上;高内聚,可以把注意力集中在一个类的内部。记忆力越集中,越能产生高质量的成果,为什么优秀的程序员形销骨立的多呢?因为工作太投入,注意力太集中,没有考虑保养身体,过有质量的生活。
用完整的单词,其心理学意义何在呢?整词的含义一看就明白,分配较低的注意力水平就能搞定,可以把更多注意力分配到程序结构,分支、循环之类的,这样不是可以做更多有意义的工作吗?
相对C/C++、PHP等语言来说,Java写的代码更容易理解,虽然有时看起来代码很长,例如Java Bean的Getter/Setter方法,但是它容易理解,有开发工具的支持,程序员还是喜欢用。所以要大力提倡使用整词,象ResourceManager,getResource()等等,慎用缩写,没有把握最好不用。
人的注意力是有限的,项目工期是限定的。从某种意义上看,项目人月也就是注意力与项目工期的乘积。对项目管理者来说,调动开发员的注意力到较高的效率和应用水平,就能缩短项目周期,老板会有奖励的。
相关文章推荐
- java后端的list转成jsonArray返回前端开发
- 微信开发-java篇
- Java Web开发-目录
- 我的Java开发学习之旅------>Java字符编码解析
- Java微信公众平台开发模式+自定义按钮源码
- Java开发中的23种设计模式详解(转)
- 【转】Java开发工具介绍
- java开发人员应该掌握的数据库知识
- Java Web开发中各种数据库连接方式速查表
- JAVA应用开发日志解决方案
- 【双旦献礼】Portal-Basic Java Web 应用开发框架 v3.0.1 正式发布(源码、示例及文档)
- Java RMI网络编程开发之一 JAVA“进程间”通信方式
- Linux下搭建Java开发环境
- 08十大热门IT职位:Java和.NET开发人员居首
- java小游戏开发,完整版 (初学者正在努力中)
- 针对 Java 开发人员的 C# 编程语言(转)
- 阿里开发的Java代码规约扫描eclipse插件安装和使用方法
- 20155314 2016-2017-2 《Java程序设计》实验一 Java开发环境的熟悉(macOS + IDEA)
- 阿里巴巴Java开发规约插件p3c详细教程及使用感受
- Eclipse开发Java程序用Debug调试