`
阅读更多
   
      程序员必须养成良好的代码习惯
  

      本文作者在经历很长时间的开发后,感叹程序员必须养成良好的代码习惯,希望本文能对大家有所帮助。

      养成良好的代码习惯,就是将代码写的漂亮,执行效率也自然就得到了提升。软件开发中包含太多东西了,需求的、设计的、测试的、管理的、文化的、心里的、沟通的,需要大家自己去琢磨。

      前天在AgileChina2009上听了Fred George的演讲,他说他以前拿自己的代码给Kent Beck看,结果Kent说这代码很垃圾,你去看看我写的Smalltalk best practice patterns吧。然后Fred George就看了这本书并且完全按照书上的要求去做,5年后当他再给Kent看自己的代码时,Kent说很漂亮的代码。

      考虑到Fred比Kent要老,可以看出Fred是非常虚心的,听了Kent的评价不仅没有生气,而且还完全听从了建议。当然这也可能是Kent太出名的缘故,若是我说他的代码不好,或许他就不会这样做了。

      这让我联想到有一次和8x一起面试,8x的手工重构让我很是惊讶。虽然我也看过《重构》,虽然我平时也重构,但是不论从步伐还是安全性上,都相差深远。我读《重构》的时候对如此小步伐的改变是不太赞同的,因为效率比较低。我认为书中之所以把条目分的很详细,每个条目的步骤很小很谨慎,完全是为了可以让支持重构的工具得以实现,对于人来说,保持这样小的步骤太难了,不管是从记忆还是从操作的角度来看。然而8x的表现让我改变了看法,不仅速度并不慢,而且安全性非常的高。回想起我的重构经常出现改错以后没法返回的问题,不禁感叹--差距啊。

      经常在国内的论坛上看到各种讨论设计、架构的帖子,然而每每show代码的时候却发现一塌糊涂。当然他们自己不觉得,可是我觉得很不好。最近 Kent Beck和Robert C.Martin出的两本书《Implementation Patterns》和《Clean Code》都是讨论一些很细节的东西的,如何命名、方法应该要多长、注释怎么写、格式怎么排等等,这些东西早在《The Element of Programming Style》中其实都有对应的东西,只不过语言不同了,细节方面也不同。然而为何这么多年来,一直有人不停的写本质上相同的东西呢?我觉得还是大家不重视,没有养成良好的习惯,自然就需要有人去写这些东西,反反复复的提醒大家。

      这里再一次很惭愧的说,我没有好好去读,也没有按照书中的东西认真去做,总是以为大概了解个概念,知道怎么回事,然后差不多做到了就行了。然而现在想来,却完全不是那么回事。记得XP中有很多非常“极限”的要求,都是“一定”要如何如何,可实际上很多人都不以为然,认为太过激进,实际操作不现实或者不必要,因此在实施的时候,做了一些妥协和变通,最后失败了还说XP不好。当然XP不可能是包治百病的灵丹,在某些情况下确实也不应该用它,但是很多人明明可以从中获益,却因为没有领悟到其中的精髓而早早放弃。

      比如说TDD,看起来与一般的单元测试的不同只是把写测试的工作放在了写代码之前,而Pair Programming也不过就是两个人坐在一起写程序罢了。然而在实际应用中,却会发现TDD并不是那么简单,它带来的好处是你在使用之前完全想不到的,甚至很多都和Test是无关的。而Pair也不简单的就是两个人干一份工,如何根据技能的不同组合Pair,两人如何分工都有很大的讲究,甚至一般的对于Pair目的的理解可能也是错误的。因此要想证明一件东西能不能起作用,首先要完全按照他要求的方式去做,等到你真的把该遇到的问题都遇到了,你才能真正知道它是什么,能做什么,不能做什么,最后才知道它到底能解决什么问题,不能解决什么问题。

      在说回到代码习惯的问题,软件开发中包含太多东西了,需求的、设计的、测试的、管理的、文化的、心里的、沟通的……要想掌握这么多东西是很大的挑战。如何将一件事记住而不忘掉,最好的办法就是将之变成习惯,就像呼吸一样自然,不需要刻意去想就能做到。良好的代码习惯是一个开发人员最基本的技能,使之成为习惯,会获益很多。

      决定在看一遍《重构》和《实现模式》并完全按照其中的要求去做,争取也能在5年之内将之养成习惯。

      原文标题:代码习惯

      链接:http://www.cnblogs.com/wangyh/archive/2009/09/15/clean-code.html
分享到:
评论

相关推荐

    结构代码习惯PDF.rar

    《结构代码习惯PDF》这份资料,正如其名,是一份专注于培养良好编程习惯的指南,尤其针对C++语言。在编程领域,良好的习惯是提升效率、保证代码质量和可维护性的关键。下面,我们将深入探讨这份资料可能涵盖的一些...

    jdk8之后代码习惯汇总

    JDK8 之后代码习惯汇总 从 Java 8 开始,代码写法发生了很大的变化,引入了 lambda 表达式、函数式编程、方法引用等新特性。下面我们将详细介绍这些新特性,并通过实例代码展示如何使用它们。 1. Lambda 表达式的...

    静态测试方法之代码审查(CodeReview)的清单

    代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是Java应用的话,这些建议应该被视作最佳实践。  代码审查可以帮助提高代码质量,避免由于...

    2022 数学建模国赛C题代码

    我在2022年12月时上传过国赛C题省一的获奖论文,具体链接如下https://download.csdn.net/download/weixin_65191557/87281510?spm=1001.2014.3001.5501。...我当时的代码习惯不是特别好,希望大家见谅。

    C++代码规范培训心得

    最近参加了一次关于C++代码规范的培训,我的心得体会颇多,以下我将结合培训内容和个人认识,从代码习惯的重要性、命名规范、代码排版布局、效率优化等方面,详细阐述我在C++代码规范培训中的所学所思。 首先,培训...

    VB代码管家

    同时,这个数据库也可能用于记录用户自定义的代码习惯和偏好,实现个性化编码体验。 【SkinH.dll】是皮肤相关的动态链接库文件,可能意味着VB代码管家支持界面皮肤定制,允许用户根据个人喜好调整软件的外观。这...

    几个写代码的好习惯,对写好代码很用帮助

    在编程过程中,养成良好的编码习惯对于提高代码质量、可读性和维护性至关重要。以下是一些有助于写出更好代码的习惯: 1. **保持代码整洁与一致性**:遵循统一的代码风格和格式,例如,缩进、空格和命名约定。每个...

    四个有害的Java编码习惯

    四个有害的Java编码习惯 程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来...

    AI代码自动补全编程助手.txt

    - 代码补全功能通常基于上下文理解,也就是说,AI会分析前面已输入的代码,然后基于语言的语法规则、以往的编码模式、以及数据库中的代码习惯,推断出最可能的代码片段。这种预测性编码能大幅减少程序员的敲击次数和...

    基于上下文的智能化代码复用推荐.docx

    以及整合更多元化的上下文信息,如开发人员的历史代码习惯、项目需求等。\n\n总结来说,基于上下文的智能化代码复用推荐是软件开发领域的一大进步,它借助大数据和机器学习技术,提升了开发效率,降低了错误率,是...

    1824310824967600922代码截图.rar

    6. **注释与文档**:良好的代码习惯会在代码中添加注释,解释代码的功能和用法。通过查看截图,可以学习如何写清晰的注释来提高代码可读性。 7. **代码风格**:不同的编程社区有不同的代码风格指南,比如PEP 8 for ...

    编写易于调试的VC代码.doc

    在开发C++程序时,尤其是在使用Visual C++ (VC)环境下,编写易于调试的代码至关重要。良好的编程习惯和设计策略可以显著提高代码质量和调试效率。...同时,良好的代码习惯也有利于团队协作和长期的项目维护。

    代码大全全新讲义和良好编程习惯

    "代码大全全新讲义和良好编程习惯"这个主题聚焦于提升编程技能,确保代码的可读性、可维护性和效率。这是一份综合性的学习资料,旨在帮助开发者养成良好的编程习惯,从而提高整体的编程素养。 首先,我们来看"代码...

    C#编码好习惯,格式、代码

    在C#编程中,遵循良好的编码习惯对于提升代码质量、可读性和维护性至关重要。以下是从给定文件信息中提炼出的关键编码规范和最佳实践,它们涵盖了代码结构、注释、异常处理、类型定义等多个方面。 ### 1. 文件与类...

    编程习惯 优雅代码必备

    编程习惯是每位程序员都应该重视并养成的,它们对于编写出优雅、可读性强、易于维护的代码至关重要。本文主要探讨了C/C++编程中的良好习惯,尤其是关于头文件和定义文件的组织结构。 首先,一个典型的C/C++程序通常...

    习惯打卡小程序源码.zip

    习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码习惯打卡小程序源码...

    Code Reading, The Open Source Perspective

    好的代码习惯能够使程序员在编写自己的代码时,避免常见的错误,提升代码的可读性和效率。 总之,这本书为读者提供了一套全面的代码阅读指南,不仅针对开源代码,也适用于任何需要阅读和理解的代码。通过阅读这本书...

    PMD用于根据源代码分析查找不良的编程习惯

    这款工具通过解析代码,寻找不符合最佳实践、可能导致错误或效率低下的编程习惯。它可以帮助开发者在早期阶段发现并修复代码中的不良习惯,从而提高代码质量和可维护性。 PMD的核心功能包括: 1. **规则集**:PMD...

    软件开发实习总结.docx

    在本文中,我将总结我的实习经验,特别强调团队精神、协作能力、文档编写、代码习惯、需求理解、单元测试、学习与成长、以及前期规划等方面的重要性。 首先,团队精神和协作能力是软件开发不可或缺的一部分。在实习...

    替换tab键并删除多余空格

    良好的代码习惯不仅可以提升个人开发的效率,还能在团队协作中扮演重要角色,确保每个团队成员的代码风格一致,减少代码审查和整合过程中的摩擦。今天,我们将深入了解一个C语言编写的实用工具——“替换tab键并删除...

Global site tag (gtag.js) - Google Analytics