Formatting 如何向高中黑客解释缩进和冗长的变量名是好事?

Formatting 如何向高中黑客解释缩进和冗长的变量名是好事?,formatting,coding-style,children,Formatting,Coding Style,Children,他是一名优秀的程序员(赢得了一些比赛),但他完全忽视了格式。 他认为我,J,K漂亮…我希望他不会发现goto关键字的存在。告诉他python:)以他的“风格”编写一些代码,然后让他阅读并向您解释它在做什么 什么对鹅和所有人都有好处……好吧,如果他打算以此为生,那么就解释一下,如果他不努力遵守团队标准,他在一个真正的团队中会过着非常艰苦的生活。如果他不打算以此为生,别担心 您还可以确定是否有他崇拜的人。如果有,那么他们很有可能遵循标准。代码可维护性 高中时我也不在乎的东西:)写一堆“他的”代码,让

他是一名优秀的程序员(赢得了一些比赛),但他完全忽视了格式。 他认为我,J,K漂亮…我希望他不会发现goto关键字的存在。

告诉他python:)

以他的“风格”编写一些代码,然后让他阅读并向您解释它在做什么


什么对鹅和所有人都有好处……

好吧,如果他打算以此为生,那么就解释一下,如果他不努力遵守团队标准,他在一个真正的团队中会过着非常艰苦的生活。如果他不打算以此为生,别担心

您还可以确定是否有他崇拜的人。如果有,那么他们很有可能遵循标准。

代码可维护性


高中时我也不在乎的东西:)

写一堆“他的”代码,让他找到一段特定的代码。

给他一些写得很糟糕的代码,里面有一个bug,让他找到bug

让他维护别人按照他写的方式编写的代码。然后让他维护其他人编写的风格良好的代码。

你可能做不到。 有些人就是不明白。 无论是在工作中还是在没有人告诉我的私人场合,我都使用自描述变量名。我在工作中也因为使用了长而易懂的名字而得到了一些赞赏

如果一个家伙既不是为了他自己也不是为了你的项目,那么你就是那种人。给他看一些关于源代码风格策略的文档。解释为什么这很重要

在您有了一些经验并了解了这是如何以及为什么有用之后,您就开始使用正确的命名约定。没有经验,这只是一种抽象的说法


另外,有时我会被变量名所困扰,因为我不确定这个特定的名称是否符合我在当前项目中使用的通用语言风格,或者该名称在高级语言中的比例如何。使用bool b1与bool IssomeProperty的问题自大学第一年以来从未出现过。

我想指出,拥有干净的代码是思维有条理和智慧的标志。然而,真正的杀手将是当他编写大量代码时。我怀疑你能否说服他,因为他很可能对应用程序的逻辑而不是过程感到兴奋。要给他一个严厉的教训需要经验。下面是我的建议

  • 给他一个满是杂乱无章、命名不好的代码的项目,让他受苦

  • 鼓励他在一个有大量代码库的项目上工作,让他看看在第1000个源文件之后,他对自己的变量名的记忆有多好。
  • FORTRAN77和Python的组合应该能帮他解决问题。

    我敢肯定,你可能会误解一个代码美化器来呈现如此糟糕的输出。模糊处理程序很常见,并且基本上做相同的事情(短而无用的变量名,没有缩进,不好地使用空格)

    给他一个任务,以他的风格接受一个现有的程序,并添加一个琐碎的功能

    另外,拿他6个月前写的代码,给同样的任务


    -亚当

    也许他并不无知,也许他只是受到克尼汉和派克的启发。

    i,j,k适合循环

    我个人更喜欢在迭代中使用1个字母的变量

    foreach ($test as $t) 
    {
    }
    
    漂亮:D

    我告诉我的学生(专上)他们可以选择写好代码,也可以选择我以他们写代码的方式写作业。我告诉他们我将编写以下程序:

    • 记下作业的内容
    • 在同义词库中查找一些单词,并用晦涩难懂的版本替换它们
    • 删除所有标点符号
    • 删除所有空白
    • 将所有内容转换为小写
    • 插入随机空白
    • 将随机字母大写
    然后他们就可以有任务了。。。嘿,这是“正确的”(所有的单词都在那里)祝你好运,理解作业是什么

    奇怪的是,投诉在这一点上停止了:-)


    我还把它比作英语。我们使用段落分隔符、大写等。。。作为惯例。当有人选择不遵守惯例时,阅读就会变得更加困难。

    他会及时了解到,你无法在10公里以上的代码库中编写或维护这样的代码。10K线路很小,也许这就是竞争的原因。从来不会超过1k行。这可能会奏效,但如果他真的那么好,他可能不会有真正的问题。那么你刚刚强化了他的观念。格式化确实对个人有帮助,但真正的好处是对团队和维护编码人员。@EBGreen,根据我的经验,当人们能够阅读凌乱的代码时,这是因为他们有一个内部模型来描述正在发生的事情,语法元素只是暗示到该模型中。向他们扔一些他们没有心理模型的乱七八糟的东西,这并不那么容易。我同意这通常是正确的,但是那些已经看了很久垃圾的人通常会在那些没有看过垃圾的人之前看到玉米。脚本儿童通常精通快速查看另一个儿童代码并摸索它。第二步很好,但在启蒙的道路上不应该是必需的。;-)@康拉德,有些人比其他人更需要一记重击。那只会教会他缩进。它不会强制使用冗长的变量名