- 浏览: 822122 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
程序员应知——破窗与童子军军规
程序员应知——破窗与童子军军规
首先来解释一下这两个词,尽管看起来二者之间没有什么必然联系。
破窗说的是,一个小区,本来干净整洁,没有犯罪事件,大家安居乐业。然而,忽然有一天,一个窗子
被打破了,但是没有人管。接下来,不好的事情接连发生,显示有人乱扔垃圾,接下来是随地大小便,
整个环境变得脏乱差,随之而来的就是打架斗殴事件的出现,最终导致出现犯罪的事件。也就是说,一
件很小坏事儿,如果不加控制的话,也会演变成严重的事件。
童子军军规中有条规定,当你离开一个地方的时候,要让它比你来的时候更整洁干净。这样的话,童子
军扎营的地方会越来越干净。
大家应该看出二者之间的关系了,其实很简单,前者意味着恶性循环,而后者意味着良性循环。
在我们的开发过程中,同样存在着这样的问题。
我在工作的时候,经常会修改别人写的程序,其实这也是作为程序员经常要做的一件事儿。而由于最近
一年多修改的都是国内的软件公司开发的程序,大家也知道在国内开发的过程中,有很多时候,为了赶
进度,对于代码规范的遵守会很差,所以经常会遇到比较乱的程序代码,现象主要体现在这样几点上:
1、最过分的一点,代码没有进行合理的缩进。这种代码一看就是复制粘贴过来的。
2、不合理的命名
3、过长的过程和函数
4、魔法数字,过多的标识弄的人晕头转向。
在无意识的情况下,处理这种代码的方式也和我的心情有关。
如果心情很差的时候,可能是由于业务部门一个劲儿地催促,或者休息不好等等原因,我可能也会不管
不顾,也去复制粘贴一堆代码,然后只要能够解决问题就好,在页面上如果可以侥幸测试通过,就提交
代码,万事大吉。
如果心情平静的时候,这时应该属于平静的阶段,我会注意自己的代码规范,比方说格外编写一个过程
或函数,在需要的地方简单调用,而不是再加长原来的代码。对于自己的代码缩进,也保证一个Tab或者
四个空格的空间。命名必须有意义,且表示的是正确的意思等等。但是不会管原来的代码,让它们继续
乱着去吧,后来人会比较之前的代码和后来的代码的。我可是在自己的代码附近签上自己的名字
了。
如果心情很好的时候,我会清理原来的代码,在修改代码之前先把所有不符合规范的地方修改一遍,比
方说缩进;比方说命名。然后将代码重构,把长过程修改为维护性更好的短过程。一切完毕之后,再去
修改代码,真的是心情越来越愉快,最后修改问题花费的时间也会很少。
回想一下自己的三种情况,抛去中间的不算,第一种正好符合的是破窗理论,而第三种符合的则是童子
军军规。
其实,有些时候真的不能仅仅凭借心情来做事,如何来对待原本可能会有些问题的代码,也是作为程序
员的一种素质吧。试想一下,如果团队中的每个人都按照破窗理论的形式做事,那么用不了多久,系统
就会变得不可维护,这恰恰是陷入了恶性循环;反之如果大家都能够遵守“童子军军规”,那么代码的质
量会越来越高,稳定性和可维护性会越来越高,良性循环会让我们大家每天都有好心情。
经常会有人说,作为程序员一定要有团队精神,但这种精神并不是说说而已的,需要实际的行动来体现
的。而上述的两种做法恰恰也可以反应出一个团队成员是否具备良好的团队精神。
遵从破窗理论的成员,就是没有顾及整个团队的利益,只顾自己的进度和工作量,不仅不改善代码,反
而不断地让代码中的问题增多,这样怎么能说是有团队精神呢?
而遵守童子军军规的成员,他们是把整个系统的代码都看成是自己的代码,自己的利益是与整个系统的
质量相关联的。他们努力改善所看到的有问题的代码的质量,表面看来对自己没有太大的好处,反而有
时候可能会让自己的进度稍稍后延,但是如果整个团队都这么做的话,那么在不久之后就会体会到优质
的代码给整个团队带来的好处。他们正是具备了非常不错的团队精神。
所以,想要做一个优秀的程序员,应该遵守童子军军规,而不是将破窗情况越变越严重。
发表评论
-
Ext常用问题的总结
2010-10-30 10:48 1098scripts/ext/resources/css/ext ... -
扩展Ext中的组件
2010-10-30 10:45 993http://extjs.org.cn/node/89 ht ... -
EXT 的继承
2010-10-30 10:42 1108Ext提供了这样的一个实用函数 Ext.extend ... -
Mysql日期和时间函数大全
2010-10-29 17:48 966Mysql日期和时间函数大 ... -
Java字符集编码与转码
2010-10-29 17:32 1923Java字符集编码与转码 Java字符的c ... -
java字符操作及转码
2010-10-29 17:28 1568import java.util.*; import ... -
如何将一个字符串最快速的倒序输出
2010-10-29 17:26 2467import java.util.*; public ... -
生成随机数 不重复的随机抽取(完美版本)
2010-10-05 10:49 1688随机数相关: import java.io.FileInp ... -
java线程学习总结
2010-10-03 18:18 1155java线程学习总结 1.线程中一些基本术语和概念 1 ... -
Java线程总结
2010-10-03 18:16 872Java线程总结 首先要理解线程首先需要了解一些基 ... -
j2ee是什么?
2010-10-02 09:32 1385j2ee是什么? J2EE Java2平台企业版 ... -
Struts2.0的概述,总体总结
2010-09-30 15:09 1308Struts2.0的概述,总体总 ... -
关于Hibernate的工作原理总结
2010-09-30 08:49 1201关于Hibernate的工作原理 ... -
Jboss Weblogic Websphere 等服务器的区别
2010-09-29 18:27 1625Jboss Weblogic Websphere 等服务器的区 ... -
精通struts2的ognl表达式
2010-09-29 18:22 1191精通struts2的ognl表达式 Struts2 ... -
OGNL表达式语言介绍
2010-09-29 18:16 836OGNL表达式语言介绍 OGNL介绍 OGNL是Ob ... -
websphere,weblogic,tomcat区别
2010-09-29 18:10 1546websphere,weblogic,tomcat区别 ... -
事务的基本概念
2010-09-29 17:54 1054事务的基本概念 面试常问 1. 事务定义 事务( ... -
使用java 实现九九乘法表 面试常问
2010-09-29 17:36 1319使用java 实现九九乘法表 面试常问 public ... -
数据库连接池的工作机制 面试常问
2010-09-29 16:44 2003数据库连接池的工作机制 面试常问 当J2EE服务器 ...
相关推荐
《程序员突击——Tomcat原理与Java Web系统开发》源码 作者根据多年的Java Web开发经验,精心编写了本书。按照读者的学习规律,本书在介绍Java技术的基础上,循序渐进地介绍了如何在最新的Tomcat上开发整合各种Java ...
黑马程序员——Android移动开发源码
【Java程序员必备——比较全的Java面试题】 Java编程语言作为全球最受欢迎的开发语言之一,其面试题库广泛且深入,涵盖了基础语法、面向对象、集合框架、多线程、网络编程、I/O流、数据库操作、设计模式等多个方面...
绝对详细的Linux指南,从Linux基础知识开始,直到高级编程,不仅适合Linux程序员,也适用学习Linux的朋友
在程序员的备考过程中,C语言和数据结构是两个至关重要的领域。C语言是基础,而数据结构则是构建高效算法和程序设计的关键。本压缩包包含了针对这两部分内容的习题,旨在帮助考生强化理解和实践能力。 C语言是面向...
### 优秀程序员应知的关键素质 #### 一、踏实的工作态度 成为一名优秀的程序员,首先要有踏实的工作态度。这意味着在工作中需要做到低承诺、高实现。具体来说,就是在承诺任务完成的时间和质量时要保守估计,确保...
这是一些c语言开发实例,能完善自己的编程思想,让你步入编程员的世界
这是一个chm格式的中文 C++编程思想 ,看起来效果不错,可供C++开发人员参考,值得珍藏!
无论是Objective-C语言还是Swift语言,其都有非常巧妙的设计思想与丰富的语法特性。在编写程序时,编程语言是最基础的工具,工具是否用的顺手会直接影响到所编写程序的效率与质量。还有很多时候,一种场景我们知道...
程序员晋升.doc————电子版_doc版
程序员之路——一个老程序员对刚上大学的学弟学妹的忠告.
"程序员实用算法——sourceCode"这个主题涵盖了各种在实际开发中经常遇到的算法,通过源代码的形式来展示这些算法的实现。下面将详细介绍一些重要的算法类型及其应用。 1. 排序算法:包括快速排序、归并排序、冒泡...
C~C++程序员实用大全——C~C++最佳编程指南.pdf(3)
【程序员之路———关于代码风格】的探讨主要集中在代码风格的重要性、代码行极限、缩进方式、折行原则以及空格和空行的使用。这些规范对于任何程序员来说都是提高代码可读性和团队协作效率的基础。 1. **代码行...
《程序员面试宝典——经典》是一本专门为准备进入IT行业或者寻求职业晋升的程序员量身打造的面试指南。这本书深入浅出地解析了面试中常见的技术问题和面试技巧,旨在帮助读者更好地理解和应对面试挑战。以下是一些...
《程序员职业小白书——如何规划和经营你的职业》是一份为初入IT行业的程序员量身定制的指南。这本书深入浅出地介绍了如何在快速发展的IT领域中,制定个人职业规划,提升技能,以及如何有效经营自己的职业生涯。以下...
C~C++程序员实用大全——C~C++最佳编程指南
《程序员的羊皮书——程序员必备》是一本旨在帮助程序员提升个人素养与专业技能的书籍。这本书不仅仅关注编程技术本身,而是将重点放在了程序员如何更好地融入职场、提高工作效率和团队协作能力上。"做人"在这里指的...
C_C++程序员面试宝典——第17章_思维拓展,大家共分享