在接下来的文章里我会讲到如何提高代码质量,会讲到一系列措施和工具,比如codereview、重构、findbugs、敏捷等等,这些东西对代码质量非常有用,但取决你是否行动了,你和你的团队是否具有强烈的代码质量意识,如果没有强烈的代码质量意识,这一切就像是在看我这个小丑在上演一场杯具,过往云烟,看过了就忘记了。学习一项技术很容易,但是学习一种意识,或者说改变一个人的习惯,很难!
诚然,意识和习惯是自身的觉悟,要改变的确很难,更何况众口难调,那我为什么要写这篇文章呢?我自己多少也有一些迷茫,大的环境是浮躁的,要改变就要付出代价。
============================================================================
当你跟别人合租房子时,你会主动把厨房打扫干净吗?如果是你自己的房子呢?
当你要写一份给自己看的心得是,你会把它写得很漂亮很有深度吗?如果早知道这份心得会抄送给全部门看呢?
当你在修复一个bug时,你是否会首先确定这个bug的来源,如果是自己发现的?能解决就解决,不能解决或者太麻烦就这样吧,反正别人也没发现;如果是QA部门发现的?尽量吧,实在不行就推迟解决;如果是客户反映的,而且被领导盯着的?全力以赴,加班加点的干。
当进公司第一天写代码,是否有种要把自己的代码打造成完美的冲动?是不是敲入的第一字符不是代码而是自己的名字?是不是连一个变量名,怎么写注释都要纠结半天?不过一年之后呢?当你团队没有任何质量改进时,你是否还会这样严格要求自己?
主人翁精神
当你的努力能立马换来客户的赞扬,老板的赏识,更重要的是产品质量的日趋稳定,我们是不是有很大的成就感?我们是不是为自己的负责的产品或项目更加感到骄傲和自豪,我们需要这样的人,这种人会主动去干一些事情,最大的发挥程序员的生产力和创造力。
拥有主人翁精神的人会把自己发现的问题及时解决掉,但是要树立这种精神,会牵扯很多管理方面的科学,小而精悍的团队正是主人翁精神最大的受益者,它们会把自己的产品和项目上升到人生的高度,它们能立马看到它们负责的产品改进的效益,这是一个持续改进过程,良性的循环。
激励机制
我坚信,程序员是一个伟大的职业,它们在代码的世界里任意驰骋,构建属于自己的罗浮宫,我不知道有多少人认为程序员最大的成就感来源于它所负责的软件被用户所认可、被广泛的使用,但至少我是如此。
程序员希望被认可,不是通过悦耳动听的歌声,不是通过优美的诗歌,而是通过通宵达旦坐在电脑边日夜奋战编出来的代码,我们需要通过codereview得到同事和老板的认可,需要通过可运行的程序得到客户的赞扬,试问,如果连这些基本的途径都不具备,我们还有什么方式来表达我们心中的成就感?第一次挫败,第二次不会再像第一次那么努力和认真了,如果第二次也挫败,那么第三次,我们写代码还有什么期待?
问题所有化
大家有没有这样的经历?
发现有人早已经解决相同的bug;某些bug再次复现时,自己已经忘记了当初是怎么解决的;我们依赖其他的团队成果,他们改变了实现方式,但并未告知我们,等到QA部门发现问题并费了半天时间追查到底是什么原因时,才发现是这个原因。
每次我发现一个很诡异很复杂很有趣的问题并解决之后,就会发邮件全组告知,还可以在周例会上一起讨论更加完美的解决方法,我之所以这样做,一方面是让大家有个印象,另一方面是留一个记录,更重要的是,在这个过程中,大家一起讨论,一起出谋划策,不但彻底解决了这个问题,而且也提高了团队整体对项目代码的熟悉程度。
其实,最最重要的原因是,每当我觉得这就够了,我做的已经够多了,准备忍耐着不共享不舒服的煎熬时,我会对自己说,你要写一份心得发给全组哦,更加完美的解决这个问题吧。
团队代码质量氛围,破窗效应
相信大家小时候都发出过“豪言壮志”什么的吧,说什么要改变世界,可是绝大多数都是被世界所改变了。不是我们不坚持,只是长大之后才发现当时的幼稚,也发现了,人和社会是分不开的,我们经常在受别人的影响,也经常无意中影响着别人,特别是我们程序员。
我时常在想,如果从一开始,代码风格命名规则是严格统一的、每个字符都是通过了codereview的、单元测试覆盖率是100%的,谁还敢不按规范出牌?写bad code很容易,写good
code就很难,只要有一个人不按规范出牌,规律就会向着破窗效应发展。
========================================================================
snake1987同学总结的很好:
1.决定这个项目的人就是一个注重代码质量的人,项目紧?没事,他顶着,有破窗份子?没事,他处理(或许是通过影响,多数人影响少数人)
2.在1的前提下有三种情况
a.新项目,从0开始,那太简单了,一切按正规来办
b.已经进行了一段时间的项目,这也简单,重构,每个人都要参与
c.如果是已经维护了很久的项目呢?外企过来的同事说了一个很好的例子:外聘,该外企请了几个很专业的人来把代码一点点地重构了,然后带着以前那伙人扎扎实实培训了一通
希望那些以时间为借口但对软件质量和代码质量又要求很高的管理者或者项目经理应该好好看看这段话。
分享到:
相关推荐
通过对比不同版本的代码,我们可以看到软件开发过程中的问题修复、功能增强、代码优化等过程,这有助于我们了解软件工程的生命周期,提高代码质量意识和项目管理能力。 此外,研究源码还能帮助我们学习如何编写...
通过改正这些错误,考生可以加深对C语言规范的理解,掌握调试技巧,并提高代码质量意识。 程序编程题是考查考生独立编写程序解决问题的能力。题目通常会给出具体的功能需求,要求考生根据需求写出完整的程序。这类...
通过改错题,考生可以学会如何识别和避免常见的编程陷阱,同时也能提高代码质量意识。 "编程题"、"改错题"和"填空题"这三个子文件夹代表了不同类型的习题集,考生可以根据自己的薄弱环节进行有针对性的练习。"编程...
在软件工程领域,软件bug是衡量产品质量的重要指标。...通过不断改进流程、加强团队建设、提高代码质量意识和责任心,才能有效避免bug的出现,确保软件产品的稳定性和可靠性,最终实现商业和技术上的双重成功。
- 参与代码审查和讨论,提高代码质量意识。 - 建立自己的开源社区声誉,提升个人品牌。 总结来说,thedevsaddam-task是一个专注于任务管理的开源项目,使用Go语言实现,提供了一种便捷的终端解决方案,帮助开发者在...
6. **改错题**(改错tu.pdf):这类题目主要训练识别和修正代码错误的能力,错误可能涉及语法错误、逻辑错误、资源管理(内存泄漏)等问题,通过这类练习,学习者可以提高代码质量意识。 7. **判断题**(判断tu.pdf...
代码评审是指同行之间相互审查代码的过程,有助于发现潜在的问题并提高代码质量。重构则是对现有代码进行优化,改善其结构而不改变功能。 1. **代码评审**: - 开展定期的代码评审会议,鼓励团队成员提出意见和...
首先,提高代码质量的关键在于提升程序员的意识。程序员应该了解什么是高质量的代码,并掌握编写高质量代码的技巧。这可以通过定期的培训和学习实现,使程序员在编程技能上得到提升,同时促进个人和团队的发展。高...
3. **培养团队成员的质量意识**:教育团队成员重视代码质量和可维护性的重要性,鼓励他们遵循最佳实践。 4. **定期重构**:定期对代码库进行重构,消除重复代码,改进代码结构,提高代码的可读性和可维护性。 5. **...
使用代码规范与代码审查工具可以提高代码质量、减少bug的产生和提高开发效率。 代码规范与代码审查是软件工程中的重要组成部分。遵循代码规范和进行代码审查可以提高代码质量、减少bug的产生和提高开发效率。同时,...
质量教育的目的在于提高员工的质量意识和素质,通过培训和日常工作经验,帮助员工理解和重视质量,形成良好的工作习惯。这涵盖了对工作流程的严格遵守,对设备和物料的妥善管理和使用,以及采用正确的方法和技术进行...
5. **持续改进文化**:一个具有质量意识的组织会鼓励员工持续学习和改进,例如通过定期的代码审查、用户反馈分析、故障报告和解决来提升产品和服务的质量。 6. **质量指标与度量**:在IT中,质量可以通过各种指标...
它不仅能够提升代码的可读性,使团队成员之间的协作更加顺畅,还能有效减少错误,提高代码质量。尤其对于大型项目和团队合作,良好的代码规范是必不可少的。本主题将深入探讨C++的高质量代码规范,以及如何实施和...
通过定期的质量培训、分享会和案例学习,可以提升团队的整体质量意识,形成一种追求卓越的文化。 其次,质量管理工具在实际操作中扮演着不可或缺的角色。例如,版本控制系统如Git可以帮助团队协同工作,追踪代码...
2. **提高质量意识**:在项目早期就强调质量的重要性,使团队成员从心理上重视代码质量,从而产出更高质量的软件。 3. **调整团队和个人目标**:将质量目标纳入个人和团队的工作考核,通过奖励机制激励团队成员提高...
1. **提高代码质量意识**:提醒用户注意可能过时的代码,鼓励他们寻找替代方案或参与项目的更新,以确保依赖的代码库始终保持最新。 2. **提升安全性**:长时间未更新的存储库可能含有已知的安全漏洞,插件的提醒...
在Java开发中,实现代码覆盖率测试对于提高代码质量和发现潜在缺陷至关重要。本文将详细介绍Java代码覆盖率测试的概念、实现方法、工具使用以及如何解读和提高覆盖率。 代码覆盖率测试是提高Java应用程序质量的重要...
1. 规范性:遵循一定的编码规范可以提高代码的可读性和可维护性。例如,在HTML中,正确地闭合标签,使用语义化的标签,如`<header>`、`<nav>`、`<section>`等,能帮助开发者更好地理解和维护代码。CSS方面,使用选择...
总之,Sonar和相关的辅助工具如Jupiter为开发者提供了一套全面的代码质量管理方案,它们可以帮助团队在早期发现和修复问题,减少后期维护的成本,同时也有助于提升团队的编码规范和代码质量意识。对于任何希望提高...