本文转载至:http://www.zhoudev.com/?p=19
文章只针对有一定语言基础的人。
写本文的原因,其实很简单:团队的代码质量实在是太差了,而我又是一个在代码方面有很强洁癖的人,所以经常免不了大动肝火的去喷人。而喷人是很不好的,所以就有了这篇文章。
团队的代码质量差,主要表现在以下几点:
- 可读性:函数命名随意,实现逻辑混乱,代码格式不统一。。。
- 可靠性:程序运行很难稳定,bug百出。。。
- 维护性:代码逻辑没有层次,混成一团,很难维护改进
- 移植性、重用性:许多人写的代码,只能各自使用,很少有能共享的功能性代码
- 高效性:很少从算法、资源占用、执行效率等角度去考虑,经常导致服务器负载过重
那么我们改进时,就可以从以上几点出发。
总结了一下自己以前的经验,主要有以下几点:
- 提高自己的程序语言基础。对于许多新手程序员来说,只是简单的学会了该语言,知道一些简单的用法。但是实际编程的时候,许多写法、用法不标准。举一个很常见的例子:许多人刚刚学c++,java等面向对象编程的语言时,虽然知道了类、知道了类一般都有“多态”的特性,但是他们还是经常会用“类型判断”去判断某个对象是属于哪个类的实例、然后强制转换、再调用方法。却完全忽略可以用多态来避免这种丑陋的实现!
- 熟悉语言规范。如果不知道自己所学的语言还有规范,那么建议你现在去查找。说个简单的规范,Java的类名要取得有意义、首字母要大写。再比如:一个函数只实现一个功能。再比如一个复杂的:连续的if else条件判断最好不要超过10个。
- 培养自己严谨的逻辑思维能力。我们写程序,至少都会在脑海里走一遍程序的流程。如果流程走通最后却出现bug,那么就是流程的某个细节我们没有考虑到!有的时候,我们总是自认为自己已经考虑的非常全面了,其实不然。同样举一个例子:对一个集合,写个for循环按照一定的条件删除里面的元素。其实这里面隐藏了一个“集合在动态变化”的陷阱。比如说,将第一个元素删除了,如果集合的数据结构是将第二个元素移动到第一个元素上,那么,第二个元素就遍历不到了。所以,有时候,我们看似很简单,觉得逻辑非常正确的代码,可能就潜伏着陷阱。
- 熟悉所用语言的API。学一门语言,其实不只是学语法,学语义。更重要的是学基本的API类库。因为你实际编程的时候,自己所写的代码其实很少,大部分都是用的别人的API,将许多API的功能穿起来,才是自己实现的功能。用好的API,能增加代码质量、提高代码可读性、减少代码bug、减少工作量。就比如说堆栈这个数据结构,程序员基本都知道,但是大部分人可能都不能实现一个正确的堆栈API。
- 熟悉了解一些数据结构、算法。平常写程序时,或多或少都要接触一些常用的数据结构,比如说链表、map等,了解它们的原理对于那些没学过数据结构的人来说很重要。很多时候,一个简单的功能被实现的超级复杂的原因就是没有使用简单清晰的数据结构。
- 掌握一些编程思想、设计模式,这会让你的代码更加具有结构性、条理更加清晰!比如说,面向接口的编程思想,能让你的代码易于修改、易于扩展。如果更进一步,站在架构的角度去考虑。
- 多看高手代码,读一些优秀的开源代码,看一些经典的书籍。比如说《Effective C++》、《Effective Java》、lucene的源码。这些会让你提升巨大,只有了解到高手眼中的世界,才能有成为高手的可能!
- 代码重构。多回顾之前写的代码,进行一个系统性的整理。因为我们起初开发,不是面面都能想到,许多新东西是不可避免的,这就意味着可能会导致一些逻辑混乱。在开发完成后,多回顾回顾,寻找能改进之处,这也是一种进步。
- 即时缺少高屋建瓴的能力,我们也应该多从全局的角度去考虑整个工程的代码的层次、模块、架构等问题点。可以尝试着进行功能点拆分、接口交互设计等工作。
- 为自己的代码添加测试用例。可能因为懒惰,许多程序员基本都不会为自己的代码添加测试用例,这其实是一个不好的习惯。即时是有测试人员的团队,添加测试用例对你的好处也是显而易见的。
- 至于从团队的角度,可以考虑建立以下几点:完整的规范、执行流程、review机制和辅助工具。由于本篇文章主要针对的是个人,就不展开。工具方面,可以考虑开源的ReviewBoard。
个人的代码质量提上来,团队的水平才能提上来,公司的效率才能提升。其实最主要的是,个人的层次、境界才能提升!
相关推荐
【程序员写不出好代码的原因分析】 在IT行业中,程序员们总是期望能写出高效、优雅的代码,但在实际操作中,却常受各种因素干扰导致无法达成目标。...克服这些障碍,有助于提升整个开发团队的代码质量和项目成功率。
在IT行业中,编程是程序员日常工作的核心,而代码的质量直接影响到软件项目的成功与否。...通过深入研究和实践这些知识点,程序员可以提高代码质量,提升团队协作效率,确保软件产品的稳定性和可靠性。
"提高程序员面试代码质量" 程序员在职业生涯中难免要接受编程面试。有些程序员由于平时没有养成良好的编程习惯,在面试时写出的代码质量不高,最终遗憾地与心仪的公司和职位失之交臂。因此,如何在面试时能写出高...
9. **持续进步**:好的程序员有成为更好的自己的决心,不断学习和实践,他们的代码随着经验积累而不断提升。 10. **面试和招聘**:评估程序员能力不应仅依赖于基础理论和面试,而应包括实际编程和重构任务,以更...
通过阅读和实践《程序员面试金典》中的代码,你可以全面提升自己的编程技能,为面试做好充分准备。在学习过程中,不仅要理解代码的功能,还要尝试自己动手实现,以此加深理解,并能灵活应用到实际问题中去。
7. **单元测试**:遵循TDD(测试驱动开发)原则,为每个新功能编写单元测试,确保代码质量。JUnit是Java中的常用单元测试框架,应熟练掌握其使用。 8. **代码审查**:定期进行代码审查可以发现潜在问题,提高团队...
《C/C++程序员实用大全代码》是一份涵盖了1500个实例的宝贵资源,旨在帮助程序员深入理解和熟练运用C和C++这两种编程语言。...通过实践这些代码,你将更深入地理解C/C++的内在逻辑,从而提升编程效率和代码质量。
团队成员之间可以共享记事本中的代码片段,通过讨论和评论来优化代码,共同提高代码质量和工作效率。云同步功能让程序员不受地点限制,无论在家、办公室还是途中,都能够随时随地访问和更新代码笔记。 个性化设置则...
对于代码质量,短视的偷懒思维可能导致暂时的效率提升,但长远来看,低质量的代码会引入更多的bug,需要更多时间去排查和修复,甚至可能需要重构整个系统。相反,投入时间和精力编写高质量的代码,虽然初期可能会...
标题 "你是合格的程序员吗?—合格程序员应该具备的12种能力" 指向了一个讨论...文件"解决问题,创造力及个人知识管理.ppt"可能进一步深入探讨了这些关键能力,提供了具体的指导和建议,帮助程序员提升自己的专业素养。
通过目录,我们可以预见到书中可能包含如代码质量、代码审查、版本控制、项目管理等相关章节,这些都是软件开发过程中不容忽视的重要环节。 总的来说,《代码大全》是一本全面介绍代码编写和程序设计的宝典,无论是...
"黑马程序员毕业设计资料,代码,数据库设计论文等" 这个标题表明这是一份来自“黑马程序员”教育平台的资源集合,主要用于帮助学生进行毕业设计。其中包含了项目代码、数据库设计相关的论文等内容,适用于计算机科学...
通过以上这些策略,程序员不仅可以提升自己的技术能力,还能增强职场竞争力,逐步实现职位晋升。记住,德才兼备是在职场上获得认可的关键,同时保持谦逊和开放的心态,不断学习和成长,才能在程序员的道路上走得更远...
《Delphi程序员代码编写标准指南》是一份针对使用Delphi编程语言进行软件开发的专业文档,旨在规范和提高代码质量,确保程序的可读性、可维护性和可扩展性。这份指南详细阐述了在使用Delphi编写代码时应当遵循的最佳...
这本书的内容广泛而深入,旨在提升程序员的编程素养和代码质量。以下将详细阐述其中的一些核心知识点: 1. **代码可读性**:《代码大全》强调了代码的可读性是衡量代码质量的重要标准之一。书中教导程序员如何通过...
《程序员编程艺术系列之程序员编程艺术》是一本...通过阅读《程序员编程艺术系列之程序员编程艺术》,程序员可以系统地提升自己的编程技能,了解并实践编程中的艺术性,从而在实际工作中编写出更高效、更具美感的代码。
使用JUnit或其他测试框架的源代码,可以展示如何编写和执行单元测试,确保代码质量。同时,如果涉及持续集成工具如Maven或Gradle,可以了解项目构建和自动化测试流程。 通过深入研究这些源代码,疯狂Java程序员...
总的来说,“程序员表白心形页面”是一个集HTML、CSS和JavaScript等技术于一体的创意项目,它展示了程序员如何用代码传递情感,同时体现了Web开发的艺术性和技术性。这样的实践不仅能够锻炼程序员的技能,也能为他们...
ChatGPT使用场景之提升代码质量:很多人都会担心,现在AI的发展这么快,初级程序员会不会很容易被取代,毕竟AI都能帮我们写代码了。一方面,它提醒我们需要提升自己,尽快让自己成长起来才是正道。而ChatGPT,就是一...
在IT行业中,程序员是软件开发的核心,他们使用各种工具来提高生产力、提升代码质量并确保项目的顺利进行。标题“程序员的必备工具”暗示了我们将会探讨一些程序员日常工作中不可或缺的资源和应用程序。描述中提到这...