0

他是一名优秀的程序员(赢得了一些比赛),但他绝对忽略了格式化。他认为 i, j, k 很漂亮...我希望他不会发现 goto 关键字的存在。

4

14 回答 14

11

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

对鹅有什么好处...

于 2009-02-10T20:13:19.580 回答
9

我告诉我的学生(中学后),他们可以选择写好代码,或者我以与他们编写代码相同的方式编写作业。我告诉他们我会编写以下程序:

  • 接受作业的文本
  • 在同义词库中查找一些单词并将它们替换为晦涩的版本
  • 删除所有标点符号
  • 删除所有空格
  • 将所有内容转换为小写
  • 插入随机空格
  • 大写随机字母

然后他们可以完成任务......嘿,它的“正确”(所有单词都在那里)祝你好运,尽管理解任务是什么。

奇怪的是,投诉在那一刻停止了:-)

我也将它与英语进行了比较。我们使用分节符、大写字母等……作为惯例。当有人选择不遵守约定时,阅读就会变得更加困难。

于 2009-02-28T07:11:27.083 回答
6

告诉他关于 python 的事 :)

于 2009-02-10T20:11:30.083 回答
6

让他维护别人的代码,这些代码是按照他的方式编写的。然后让他维护别人写的风格很好的代码。

于 2009-02-10T20:21:03.383 回答
3

FORTRAN77 和 Python 的组合应该可以解决他的问题。

于 2009-02-10T20:23:07.623 回答
1

代码可维护性

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

于 2009-02-10T20:18:23.203 回答
1

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

于 2009-02-10T20:20:29.983 回答
1

给他一些写得很糟糕的代码,其中有错误,并要求他找出错误。

于 2009-02-10T20:20:58.907 回答
0

好吧,如果他打算以此为生,请解释说,如果他至少不努力遵循团队标准,他将在真正的团队中度过非常艰难的生活。如果他不打算以此为生,请不要担心。

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

于 2009-02-10T20:15:52.880 回答
0

你可能做不到。有些人就是不明白。我在工作和私下都使用自我描述的变量名,没有人告诉我。我在工作中也因使用长且易于理解的名称而受到赞赏。

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

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

PS 有时我会被变量名卡住,因为我不确定这个特定的名字是否符合我在当前项目中使用的常见语言风格,或者这个名字在高级文学语言上的比例如何。自大学第一年以来,使用 bool b1 与 bool IsSomePropertyAvailable 的问题从未出现过。

于 2009-02-10T20:21:30.090 回答
0

我要指出,拥有干净的代码是有组织和聪明的头脑的标志。然而,真正的杀手将是他编写大量代码时。我怀疑你能否说服他,因为他很可能对应用程序的逻辑而不是过程感到兴奋。给他一个严厉的教训需要经验。所以这是我的建议。

  • 给他一个项目,里面满是乱七八糟的无格式代码,让他受苦。
  • 鼓励他从事一个拥有大量代码库的项目,并让他看看他在第 1,000 个源文件之后对自己的变量名的记忆有多好。
  • 于 2009-02-10T20:22:10.370 回答
    0

    我很确定您可以错误地配置代码美化器来呈现如此可怕的输出。混淆器很常见,并且基本上做同样的事情(简短的无用变量名,没有缩进,空白使用不当)。

    给他分配以他的风格执行现有程序并添加微不足道的功能的任务。

    另外,拿他 6 个月或更长时间前编写的代码并给出相同的任务。

    -亚当

    于 2009-02-10T20:42:49.103 回答
    0

    也许他不是无知,也许他只是受到了 Kernighan & Pike 的启发。

    于 2009-02-10T20:45:00.317 回答
    -1

    i,j,k 适用于循环。

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

    foreach ($test as $t) 
    {
    }
    

    美丽 :D

    于 2009-02-10T20:55:50.257 回答