对于这一讨论的前提我们首先要知道什么是代码规范。

  在这个问题上我同意一篇参考文章的观点——代码规范不仅只编码风格。编码风格仅是代码规范的一个方面,除了编码风格,代码规范还包括函数返回值等其他方面。在我们日常的学习与工作中,我们常说的是编码风格。编码风格通常说的是缩进、空格的使用、注释、命名习惯等主题。有很多位计算机学院的老师都有经常提醒我们要有一个好的编码风格,因为在未来的工作中,我们不仅要自己码代码,同时会有很多时候维护别人已经写好的代码。如若自己的编码风格和他人的编码风格有很大差异,就会让人就像在看天书。

  论点1:这些规范都是官僚制度下产生的浪费大家的编程时间、影响人们开发效率, 浪费时间的东西。

  反驳:首先我们先抛开计算机的范畴来看官僚主义中的规范。规范不仅是官僚主义制度下的东西,更是社会所不可缺少的。如若一个社会缺少法律规范人们的行为,那么社会会犯罪横生;如果一个家庭缺少道德的规范,那将不难见到违背伦理的现象。所以说规范在社会中虽然是需要人们花心思花精力去注意的事物,同时他能保障社会高效地运转。然后我们把规范引入计算机代码的范畴。想一想:如果每个人写的代码风格都有很大的差异,那么我们都只能读懂自己的代码,团队协作的效率将及其低下。而如若大家能有一个大致的而并非强制的代码规范,我们在进行团队开发的时候,交流起来将变得更容易。这正好印证了一句经典的话:一个人走得快,一群人走得远。有了代码规范,虽然自己的编码风格有所拘束,但在我们进行大的团队开发中,是不可或缺的。

  论点2:我是个艺术家,手艺人,我有自己的规范和原则。

  反驳:首先为我们计算机领域中还有这种艺术心态的人们感到由衷的欣慰。这一论点的表达情绪让人觉得十分强势:我就是有自己的规范和原则,我和其他人不一样,我写的是艺术!然而对于这样的想法,我想在软件开发中,他是一名画家,很有可能绘出一幅经典的艺术绘画,让人心旷神怡。但绝不可能是一名优秀的建筑师,建起高楼大厦。在小软件的开发中,这类人也许会游刃有余,但他们自己的代码规范和原则终究会影响他们的团队协作能力。他们会很难融入大软件的团队开发当中。而如今的人们更喜欢多元,多功能的事物。所以我认为与团队软件开发背道而驰的单人开发者,虽然在软件开发中也许会很享受,但还是难以跟上信息时代的主旋律。

  论点3:规范不能强求一律,应该允许很多例外。

  支持:如果这句话仅是代码规范有例外,大家也许会普遍同意,但是我认为就算加上频度词而改为有很多例外我也认为并不为过。列举几个场景:1.我要为团队开发的软件进行测试,我自己写一个测试程序;2.我现在在用的这个软件,我想根据个人需求给他添加一些小功能。在这俩个场景中,我们所写的代码都会只有自己看到,同时我们也是一个人在进行这项工作,此时我认为我们使用自己喜爱的编码风格去完成这件事情。在我们的学习和工作中,团队协作是重要的,但是我们也会有很多情况下需要短时间内写出一个自己需要的只会自己用的程序,我认为在这种情景下,写自己喜欢的风格的编码,自己写得舒服高效,以后自己再回看这些代码也不感到困难。

  论点4:我擅长制定编码规范,你们听我的就好了。

  反驳:不禁要感叹说这句话的人,好厉害的样子= =。编码规范应该是适应大多数人的,而不是由一人制定而另其他人服从的。而且在团队开发中,也不应该有这么强势的不容讨论的言辞。这句话好像封建社会时的君主专制,已经落后现在的民主社会很久了。

最新文章

  1. 2000条你应知的WPF小姿势 基础篇<34-39 Unhandled Exceptions和Resource>
  2. ST算法
  3. Android系统性能调优工具介绍
  4. 洛谷P2746 [USACO5.3]校园网Network of Schools
  5. gitlab一键安装 (转)
  6. Java 集合系列08之 List总结(LinkedList, ArrayList等使用场景和性能分析)
  7. Int16, Int32, Int64 范围
  8. 界面原型Axure
  9. Logwatch的配置与使用
  10. windows对象分类
  11. 如何把本机Sql Sever数据库转移到虚拟主机sql数据库
  12. gitignore忽略规则
  13. js获取当前时间并实时刷新
  14. Foundations of Game Engine Development Volume 1 Mathematics (Eric Lengyel 著)
  15. 【.net】未能加载文件或程序集“System.Web.Mvc, Version=5.2.2.0
  16. 使用nginx实现负载均衡的配置
  17. std::set
  18. Oracle_PL/SQL(8) 动态sql
  19. php faker 库填充数据
  20. java集合之Link的比较

热门文章

  1. Git永久删除文件和历史记录
  2. macOS平台安装metasploit
  3. HTML 中点击<a>标签,页面跳转执行过程
  4. Pandas 库中excel的读写方法介绍
  5. Java设计模式之九 ----- 解释器模式和迭代器模式
  6. Scala 上下文界定
  7. P1218 [USACO1.5]特殊的质数肋骨 Superprime Rib (数论—素数 + DFS)
  8. RMAN 数据库克隆文件位置转换方法
  9. docker安装与卸载
  10. python代码在linux服务器一般的开头