2001年在delphibbs做“首届Delphi编程竞赛”活动(http://www.delphibbs.com/delphibbs/dispq.asp?lid=650664)的时候,曾就代码的规范性与品质问题与大家进行过讨论,摘录一些言论如下:

=========================

3. 我们公司有个程序员,现在是项目经理。他原本是做图形程序开发的,我看过它的一个工具的代码,OHHHH,我当时差点没有昏倒。——它的代码做得就象方块,每一行几乎都一个样子,似乎都在不断重复。但是,这些代码的运行效率居然比我见到的所有图形开发包都快!

所以,我绝对同意“一个真正优秀的方案可能代码很多,很精巧,也很复杂,但绝对在效率、速度上非普通方案可比”、“大道深处又至简,一个非常出色的方案往往可以化复杂为简单,化腐朽为神奇,达到代码即方案,代码即解释,恍恍乎游刃有余”和“最出色的代码不是代码本身,而是代码体现出来的出神入化的思维和境界。到达这个境界,代码多少已经不再重要了”这样的观点。

4. 代码的规范性我深有体会。我们公司现在正在展开的也是一个叫“代码格式化规范”的动作。

但我要说的是一个小故事,我的一个组员总是在说我的代码他看不懂,这看不懂那也看不懂;而另一个组员呢,将我一个写了两年的项目那个去看了一个多月,说懂了。前一个组员总是说我的代码不“规范”,不“格式化”,用了太多的技巧,不用标准的写法;而后一个组员却什么也不说。两个组员最大的不同是:前一个组员只有两年的编程经验,而后一个,有十年的编程经验。

如果,如果你用Delphi来写一个“操作系统级程序”,那么,你能用到的“标准的写法”可能没几个,你可能必须用各种各样的技巧,各种各样离奇的思想。这不是一般人能够想到的做到的。有兴趣的人可以去看看QString这个字符串处理单元,那绝对是不好读的代码,也绝对精炼,效率也绝对高。但可能绝对“不标准”、“不规范”。

我并不是反对“代码格式化”,我只是说,我们在这里开展一个竞赛,重点并不是要去格式化代码,我们的主旨是“写出好的思想”和“好的代码”。那些格式化中存在的各种各样的注释和格式化用的空格,自然有工具去过滤掉它,你不必关心它们影响你的代码字节数。

5. 这个竞赛的确是在“鼓励提高个人能力”,但绝对没有“忽视团队精神”的意思。哈哈。

我们一直忽略了这点,没有提出来说,算是我的工作失误。其实中国现在的“程序高手”很多,但真正懂得“软件工作”和组织“团队开发”的人才之又少。事实上我现在也正在学这个,正在带开发组,正在从最小的“团队”做起。——我自认还做得非常非常差。印度培养出来的程序员象一个个标准大小的方块,任意多块放在任意位置都是有用的,但缺乏灵魂;中国培养出来的程序员象一个个钉子,放哪里打都好用,灵气十足,能力十足,但一大堆钉子放在一起,你的手碰都不敢碰一下。

但中国的程序员在国外却是极好的。因为人家懂得如何组织钉子开发,而不是只懂得如何将方块“积木”在一起。

不要因为中国没有好的项目管理人员,就要求所有的程序员全变成方块,这是舍本而逐末的事。

6. 好的雕刻师必须先是好的木匠,艺人必须先是匠人。

=========================

最后这句“艺人必须先是匠人”,我后来还在《Delphi实现可执行文件之源码详解》中引用过:

=========================

必先是匠人,之后才会是艺人,再之后才会是艺术家。程序员就是程序员,如果不静下心来做代码,好高骛远则终将一无所成。

志存高远而脚踏实地,此实地者,源码也。

转载于:https://www.cnblogs.com/java0818/archive/2005/12/04/2144594.html

代码规范性与品质问题~相关推荐

  1. 对代码规范性的一点切实感受

    之前在学校的时候,写的代码基本都是自己看.自己用,没有协同开发的问题,也不用接着别人的代码继续开发,所以就没有认识到代码规范性的重要性. 去企业之后,很多时候都是在现有项目的基础上进行继续开发.来新浪 ...

  2. Closing curly brace does not appear on the same line as the subsequent block - 代码规范性问题

    最近为了规范化代码风格,项目组内启用了VSCode插件eslint,了解eslint的同学都知道,它是在 ECMAScript/JavaScript 代码中识别和报告模式匹配的工具,给出一些代码规范建 ...

  3. PHP代码规范性检测

    安装 wget -c http://static.phpmd.org/php/latest/phpmd.phar mv phpmd.phar /usr/bin/phpmd chmod +x /usr/ ...

  4. Java——如何评估Java代码的规范性和合理性?

    Java代码的规范性和合理性是确保代码可读性.可维护性和可扩展性的关键因素.以下是一些常用的准则和技巧,可以帮助您评估Java代码的规范性和合理性: 遵循命名规范:Java命名规范要求使用驼峰命名法, ...

  5. 代码规范+设计模式落地之路

    欢迎关注方志朋的博客,回复"666"获面试宝典 | 前言 刚刚与同事开了一个分享会,笔者分享了一些了代码设计模式相关的内容. 以及复盘了一下项目中有些复杂的业务场景,为什么没有很好 ...

  6. c++ doxygen 注释规范_[代码规范]Go语言编码规范指导

    本规范旨在为日常Go项目开发提供一个代码的规范指导,方便团队形成一个统一的代码风格,提高代码的可读性,规范性和统一性.本规范将从命名规范,注释规范,代码风格和 Go 语言提供的常用的工具这几个方面做一 ...

  7. 伪代码书写规范_C++代码书写规范(推荐新手程序员)

    代码就是程序员的面子,无论是在工作中在电脑上写程序代码还是在面试时在纸上写演示代码我们都希望写出整洁,优雅的代码.特别在工作中当我们碰到需要维护别人的代码,或者是多人参与一个项目大家一起写代码的时候, ...

  8. 如何提高go代码覆盖率_如何通过静态分析提高iOS代码质量

    随着项目的扩大,依靠人工codereview来保证项目的质量,越来越不现实,这时就有必要借助于一种自动化的代码审查工具:程序静态分析. 程序静态分析(Program Static Analysis)是 ...

  9. 代码规范 设计模式落地之路

    - 1 - 前言 与同事开了一个分享会,笔者分享了一些了代码设计模式相关的内容. 以及复盘了一下项目中有些复杂的业务场景,为什么没有很好的应用到设计模式. 业务虽然肯定保密的,但是抛开项目,业务层面, ...

最新文章

  1. Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)
  2. codeforces-73C. LionAge II
  3. sagemaker+deeplens学习
  4. 利用 Python 分析了某化妆品企业的销售情况,我得出的结论是?
  5. (mac)阿里云ECS服务器配置过程
  6. 函数-函数进阶-装饰器
  7. OpenGL超级宝典 纹理(一)
  8. mysql数据库总结_MySQL数据库优化-总结
  9. Linux命令大全(常用的命令解析)
  10. 参考TLC5615基于verilog HDL实现SPI时序
  11. 3月4日 与柳传志面对面(谁是这个时代的思想家)
  12. IDEA 2021一键修改文件后缀名方法
  13. eDairy-我的白日梦
  14. CLion中回退和前进的快捷键
  15. linux的虚拟文件系统四(文件系统理论)
  16. C# winform程序调用Console控制台办法
  17. 【全文检索】sqlite-fts4和pgsql的全文检索对比
  18. 红队免杀培训第一章-不可执行的shellcode
  19. C#编程,byte[]字节数组的复制
  20. Delphi中的编译期函数Dec,Inc,Odd,Pred,Succ,Ord,Chr,Low,High,Sizeof【转】

热门文章

  1. 如何重装计算机操作系统,自己如何重装笔记本电脑操作系统呢?
  2. 萨默尔机器人_沣东新城王寺街道《民法典》企业宣传活动走进西安萨默尔科技...
  3. 2010年计算机专业怎么样,关于2010年计算机专业考研
  4. java 异或_Java之超级基础且实用的知识点
  5. oracle user_scheduler_jobs,Oracle 定时任务dbms_scheduler
  6. uefi 嵌入式Linux,面向嵌入式平台的高级UEFI开发环境.PDF
  7. java2018笔试基础题_java基础笔试题
  8. Python——字符串大小写转化
  9. python文件关键行数_Python计算大文件行数方法及性能比较
  10. 点云深度学习的Pytorch框架