人们如何处理源代码和VCS注释中的亵渎行为。保留还是删除?
像WTF或Arrgggh这样的软语词怎么办?
是不专业,令人反感的东西还是应该摆脱的东西?
grep f.ck
在Linux内核的源代码上执行即可。如果对他们足够好,对我也足够。但是,永远不要在客户几乎没有机会发现它的地方发动任何令人反感的事情。我做了一次,幸运的是我们在最后一分钟设法完成了更新,但这并不有趣。(嗯,实际上是后来的。)
人们如何处理源代码和VCS注释中的亵渎行为。保留还是删除?
像WTF或Arrgggh这样的软语词怎么办?
是不专业,令人反感的东西还是应该摆脱的东西?
grep f.ck
在Linux内核的源代码上执行即可。如果对他们足够好,对我也足够。但是,永远不要在客户几乎没有机会发现它的地方发动任何令人反感的事情。我做了一次,幸运的是我们在最后一分钟设法完成了更新,但这并不有趣。(嗯,实际上是后来的。)
Answers:
应该轻轻地劝阻
..您可能无法知道谁将在源代码的生命周期中看到源代码。
尽管对一个特别复杂或过时的代码感到沮丧是所有工作的一部分,并且希望对此一饱口福,但是在源代码中添加粗话/粗俗/ ASCII艺术/恶作剧/粗话/冒犯性言论既不专业,又根据我的经验,这是个坏主意。有时,撰写评论的工程师会忽略他的评论可能产生的最终影响-这只是我看到的一些问题:
尽管我们所有人都需要一些挫折/娱乐/跳跃的渠道,但IMO并不是源代码。您不会在合同,帮助页面,蓝图或其他专业文档中添加粗话/笑话/冒犯性注释,即使这些文档的阅读频率可能低于源代码。
如果团队负责人对此事全力以赴,那将会很沮丧,所以我说,通过与问题工程师保持沉默的态度来“勉强劝阻”,并提供合适的发泄机制以释放动力,无论是Facebook,即时消息,曲棍球或沙袋。
说注释被编译出来是没有道理的-JavaScript或任何其他动态客户端代码如何?
以下是一些我的现实生活经验,这些经验已经影响了我的观点:
虽然在微软工作,我发现了一个软件工程师不知道正确的拼写“不能” -他错过了O,L和d -和曾与他多久解释他的大部分代码穿插不能使X工作,因为Y人引起了问题Z。他的代码很棒;他的拼写不太好。可以说,此代码的任何后续审阅者(例如,我)都被警告看到该代码中出现大量随机宣誓。这些代码中的一些继续显示给合作伙伴(驱动程序编写者)。想象一下他们对看到这些咒骂的恐惧。理想情况下,授权人应该以口头形式向项目经理咨询(在这种情况下,可能会请Y人参与讨论)或提交消息,但不要在消息源中发信息。
在一家公司中,一个会说外语的人加入了一个主要说英语的团队。他用他的语言写评论,以为没有其他人可以阅读它们。很好,直到Babelfish / Google Translate发布了他的语言的“英语翻译”选项,此时团队的其余成员翻译了一些评论,并对那个家伙对公司所做的肮脏且经常贬损的评论感到震惊,他的团队和一位女性同事。尴尬的。
在另一家公司中,一个人真正被ASCII艺术所吸引,并将各种各样的艺术放入他的源代码中,而未被代码审查者发现(或称赞)。过了一会儿,出于某种原因,他通常以某种标语线住在龙上。后来,威尔士人加入了团队。威尔士的国徽是一条红色的龙,所以这个新家伙最初对照片感到高兴,但后来当一些愚蠢的标语可以被认为是令人反感的时候就冒犯了。是的,需要一些团队负责人进行调解,但这不应该发生。
名称/细节被删除,以保护无辜者。
如果您要出售源代码(即您是组件编写者),则可能不应该包含该源代码。
如果这是一个审慎的问题,那么无论如何,这取决于您。
如果您看到有人写了很多WTF,则可能是您应该与他们讨论他们所遇到的问题的信号。
如果某人将他们的攻击行为指向另一个人的代码,那么他们可能会骚扰那个人,您将面临完全不同的情况。也许他们有合法的投诉,却不知道该如何正确发声。也许他们只是个混蛋。
仅拥有某种内容过滤器是不明智的,开发人员编写的任何内容都很重要,它可以告诉您很多事情的进展。
我在一家财富500强公司中工作,该公司设计,制造和销售具有µControllers内部运行代码的消费类产品。诉讼总是有可能的,要么是希望迅速致富的消费者,要么是声称侵权的竞争对手。因此,我们编写代码和所有注释时要知道,它可能(可能会)在某个时候受到敌对陪审员的审查。这意味着变量和函数名称不应包含煽动性用语,例如KILL_CHILD(int process_id)
。尽管此示例功能的目的很可能是终止子进程,但是如果原告的孩子在使用产品时被杀,敌对的陪审团将如何看待该函数名称?
代码中的注释可能更糟。虽然一个体面的辩护团队可能会处理(从前面的示例中)解释一个子进程是什么以及为什么可能需要终止该子进程,但是几乎不可能针对这样的评论进行辩护:
// The following section of code is REALLY BAD!!! I hope
// it doesn't burn anybody's house down.
诸如此类的副手评论已成为实际法庭案件的决定因素。
在一个相关的话题上,在激烈的诉讼显微镜下,项目的名称也可能令人生厌。您还记得90年代中期科技新闻来源报道“ SATAN在互联网上释放”时,保守派人士的骚动吗?
<rant_mode_off>
综上所述,对于个人项目,您可以自由地执行自己喜欢的代码。
如果这麻烦您,您是头号大佬,我不明白为什么您不能执行有关此事的规则。毕竟,您是这种假设情况下的领导者。
但是,如果它只会打扰您,并且似乎没人在意,也许您应该把它吸干。
我可能不是一个合适的人,因为我经常轻声亵渎。
我认为这主要取决于您的环境的PC(政治上正确)。
如果我为一家西装革履的公司编写代码,我会尽量不要使用亵渎行为,但是如果是出于业余爱好之类的事情,或者我倾向于更自由地表达自己的想法。
在我看来,与我居住和工作的荷兰相比,在美国和其他一些国家,人们的PC(或被困住的人)要多得多。
另外,以下是一些有关亵渎行为的统计信息:http : //andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/
我倾向于同意这可能是非常不专业的,但是每个人都不时在争吵,所以我尽量不要与他人争辩。就是说,代码库往往反映了该小组的整体专业水平,因此,一个充满负担的显式代码库可能反映了一个不专业的小组,可能需要开会才能“对该小组进行一些改进”。同样,如果代码中出现某些趋势,则可能表明该组中需要解决的一般问题(即,您使用的API的问题使开发人员感到沮丧)。
就代码库而言,我通常只编辑相关注释以确保工作安全,然后保留该注释。根据您使用的语言,这始终是一个好主意,因为您永远不知道在客户或客户面前会出现什么。
亵渎的问题之一是文化之间的差异。在美国,无辜的东西往往会“瘫痪”,而在其他国家,您经常可以听到议会讨论中交换的相同语言。
亵渎代码和提交注释非常普遍,可能是因为“没人愿意看到它”视图。我认为,现在大多数组织都将复活节彩蛋定为违法行为,这实际上更为普遍。
我个人认为,面向非客户的内容(例如内部提交材料)并不是什么大问题。
但是,大多数大型跨国公司都是由法律部门和“安全工作场所”以及所有类似的东西经营的,这意味着任何可能侵害至少一个人的事情都是一个问题,也是解雇的潜在原因。我不愿承认,但是我倾向于屈服于那些支付我工资的人的规定。
解决此问题的快速方法是在源代码控制系统上安装亵渎过滤器(作为预提交脚本或常规检查)。
我认为这没关系,只要它不会像扔f炸弹那样失控。我见过一个与我合作的人,在两个字符之间编写脚本,讨论它们各自代表的各种对象。在多行注释中,这两个字符中的30行相互交流。
/ * *伊戈尔:我可以当大众律师吗?*科学怪人:啊,伊戈尔,我将从你的最佳特质中继承下来... * /
这样持续了很长时间。他创建了两个对象,您猜对了:科学怪人检查中的科学怪人和伊戈尔。它实际上非常有创意,但是却浪费时间。我宁愿看到一些WTF或专有名词,也不愿看到两个C#对象之间的剧本...
取决于公司/客户的文化。例如,如果您要开发圣经软件,那么绝对不欢迎使用任何形式的亵渎语。另一方面,游戏开发人员可能不太在意(或走到另一个极端)。
我始终牢记任何注释(在代码或提交中)都应该有所帮助。某些词比其他词更能吸引我们的注意力-肯定会注意到粗话,甚至是软词。将注意力吸引到完全错误的事情上可能很有用,但是您尚无法解决。
也就是说,我不使用专有名词,但偶尔会使用“ Doh!”之类的东西。还是“嗯?” 在精神上并没有太大的不同。如果它使您感到困扰,请与违法者讨论-他/他可能没有考虑过。如果他们告诉您去远足,并且您对此有强烈的感觉,请向经理表示感谢。如果您没有得到经理的支持,那么您将必须学习与之共处或去其他地方。