ソースコードでの冒とくの処理[終了]


34

ソースコードとVCSコメントの冒fanにどのように対処しますか。保持または削除しますか?

WTFやArrggghのようなソフトな表現はどうですか?

職業意識のない、攻撃的な、または肩をすくめるようなものはありますか?


15
ケースバイケースで...コメントは開発者の性格にとっての道です。N種類のパーソナリティを処理する必要があるのと同じように、開発者のパーソナリティを出血させるN種類のコメントも処理する必要があります。IM、メール、口頭でやり取りする際に、冒とくを使用して特定の開発者にどのように対処しますか?
アーロンマクアイバー

10
コメントで冒とく的な表現をしないように、前にJr.開発者に言わなければなりませんでした。私見それは非常に専門的ではありません。同僚やクライアントの前で誓わないなら、なぜコメント/コードで誓うのですか?そして、同僚やクライアントの前で誓うなら...私よりもはるかにゆったりとした仕事環境があります。:)
ティアナ

4
@ティアナ:私の最後の職場では、私たちは少し人種差別主義者でさえありました!あなたはそれを呼び出すことができれば。政治的な正しさは、日ごとにお互いを見ている同僚の間ではひどいものだと思います。人種差別主義者の冗談を1日10時間会う人に話すのは怖いですか?それから再び、私はボリビアに住んでいます。アメリカにはもっと多くの訴えがあり、訴えているという考え方があります。

4
@Anna Lear:スパイシーな冗談を言ったとしてデンマークで訴えられる人はいません。しかし、米国...それは、あなたがどのような雰囲気で働いているかという問題です。米国は、あらゆる小さなことを監視するHRドローンにより大きな重みを持っています。

10
grep f.ckLinuxカーネルのソースコードを実行するだけです。彼らにとって十分であれば、私にとっても十分です。しかし、顧客がそれを発見できる可能性がわずかでもある場所に攻撃的なものを決して配置しないでください。私は一度やったことがあり、幸運にも最後の最後で更新を行うことができましたが、面白くありませんでした。(まあ、実際はその後だった。)
biziclop

回答:


41

そっと落胆すべきです

..その生涯にわたって誰がソースコードを見ることになるのか、おそらく知ることはできません。

特に複雑なコードや古いコードに不満を感じ、それについて口を閉ざすことは仕事の一部ですが、ソースコードにexp語/暴言/アスキーアート/悪意のある冗談/攻撃的な発言を入れることは専門的ではなく、私の経験では悪い考えです。時々、コメントを書いているエンジニアは、彼のコメントが持つ可能性のある結果に気付かない-ここに私が見た問題のほんの一部があります:

  • オープンソース/サンプルコードとして一般に公開されているコードの多数のexp辞。
  • 味の悪いジョークは、一部のチームメンバーに深刻な犯罪を引き起こし、結果として産業裁判所になります。
  • 実際に人種差別主義者/性差別主義者/性差別主義者であり、人々が解雇されたという使い捨ての発言。

私たちは皆、フラストレーション/楽しみ/ジャピングについてのアウトレットを用意する必要がありますが、ソースコードはこれを行う場所ではありません、IMO。契約書、ヘルプページ、設計図、またはその他の専門的なドキュメントには、ソースコードよりも頻繁に読まれない場合でも、exp辞/冗談/攻撃的なコメントを入れません。

チームリーダーがそれについて重くのしかかる場合、動揺することになるので、問題のあるエンジニアとの静かな言葉で「厳しく落胆」し、Facebook、インスタントメッセージングなど、蒸気を発散させる適切な通気メカニズムを提供しました、エアホッケーまたはパンチバッグ。

コメントがコンパイルされていると言うのは何の防御策でもありません-JavaScriptやその他の動的なクライアント側コードについてはどうでしょうか?

ここに、私の意見を形作った実際の経験のいくつかを示します。

  • マイクロソフトで働いているときに、あるソフトウェアエンジニアが「できなかった」という正しいスペルを知らなかったことがわかりました。彼はo、l、dを逃し、コードの大部分に長い間説明できませんでした。 Y人が問題Zを引き起こしているためXを機能させます。彼のコードは素晴らしかったです。彼の綴りはあまりよくありませんでした。言うだけで十分ですが、このコードのその後のレビュー担当者(たとえば私)は、コード内に多数のランダムな誓いを見ることに驚いていました。このコードの一部は、パートナー(ドライバーライター)に表示されるようになりました。宣誓を見る彼らの恐怖を想像してください。暴言は、理想的にはプロジェクトマネージャーに口頭で(この場合、Yが議論に引き込まれる可能性があります)、またはメッセージをコミットする必要がありますが、ソースではありません。

  • ある会社では、外国語を話す個人が主に英語を話すチームに参加しました。彼は自分の言語でコメントを書き、誰も読むことができないと考えました。Babelfish / Google Translateが彼の言語の「英語へ」オプションをリリースするまで、これは問題ありませんでした。その時点で、チームの残りのメンバーはいくつかのコメントを翻訳し、会社について行った不潔でしばしば軽rog的なコメントにapp然としました、彼のチームと女性の同僚。ぎこちない

  • 別の会社では、ある人が本当にASCIIアートに夢中になり、あらゆる種類のアートをソースコードに入れました。しばらくして、何らかの理由で、通常はなんらかのタグラインを付けて、彼はドラゴンに住んでいました。その後、ウェールズ人がチームに加わりました。ウェールズの国章は赤いドラゴンであるため、新しい男は最初は写真に喜びを感じていましたが、馬鹿げたタグラインの一部が不快と解釈されると気分を害しました。はい、チームリーダーの調停が必要ですが、これは起こりません。


無実の人を保護するために名前/詳細が削除されました。


1
私はあなたの欠陥追跡システムの冒fanも奨励されるべきではないと付け加えます。冒とくを削除するためにコメントを編集するよう提出者に要求する立場にあったので、これはスーパーバイザー/チームリーダー/マネージャーがいるのに好ましい立場ではないと言うことができます。特に彼らが拒否するとき。
すぐに

@quickly_now、その状況をどのように処理しましたか?

もう一度尋ねました。その人が再び拒否したとき、私はそれらを消毒するために自分でコメントを編集しました。私はこれがカウンセリング/懲戒のプロセスを経る価値があるとは思いませんでしたが(ステップ#1は解雇につながります)、私は自分が見つけてやったことも上司に報告しました。私たちは皆、繰り返されない限り、それがさらに進むことはないと同意しました(そして、繰り返されませんでした)。楽しくない。[さらに、関係者の別のメンバーから不敬なコメントが報告されたことを追加する必要があります。それが解決するのが私の問題になりました。上級職に余分な$ !!!の価値がない場合があります!]
すぐに

「しかし、馬鹿げたタグ行のいくつかが攻撃的であると解釈される可能性があるとき、それは気分を害しました。」あなたはウェールズ人であるため、ドラゴンの写真に腹を立てるには、非常に深く邪魔されている人でなければなりません。
マイルラウト

24

ソースコードを販売している場合(つまり、コンポーネントライター)は、おそらくそこにあるべきではありません。

それが慎重さの問題なら、それなら何でも、それはあなた次第です。

もし誰かがたくさんのWTFを書いているのを見たら、多分それはあなたが彼らが抱えている問題について彼らに話をするべきだという兆候かもしれません。

誰かが攻撃を他の人のコードに向けている場合、彼らはその人に嫌がらせをしている可能性があり、対処するためのまったく異なる状況があります。おそらく彼らは合法的な苦情があり、それを適切に発声する方法を知らないのでしょう。おそらく彼らはただのジャークです。

何らかの種類のコンテンツフィルターを用意するだけでは賢明ではありません。開発者が書いたものは何でも重要であり、どのように進んでいるかについて多くのことを教えてくれます。


1
爆発的な負荷のソースコードを販売しないことについてのポイントについては+1。コードは、配信される前にそのようなコメントがないか徹底的に検査する必要があります。
FrustratedWithFormsDesigner

2
あなたがHTML開発者であれば、失礼なコメントは間違いなく良い考えではありません。:)
biziclop

@biziclop。これは、HTMLができる限りイライラさせられるため、残念です。ソースの冒とくの割合については、@ jinxのリンクをチェックしてください。Javascriptが最初に結び付けられているように見えます(これに偶発的なJavascriptの偶発的な縮小が含まれているかどうかはわかりません)
ピーターターナー

jenkinsで実行する単純なコンテンツフィルターには、次の問題がありました。void pushItem(...
sal

17

私は、社内で開発されたコードを実行するµControllerを持つ消費者向け製品を設計、製造、販売するFortune 500企業で働いています。すぐに金持ちになることを望んでいる消費者から、または侵害を主張する競合他社によって、訴訟は常に可能性があります。このため、私たちはコードとすべてのコメントを、それがいつか敵意のあるunder審員の監視の対象になる可能性がある(おそらく)知識を使って記述します。つまり、変数名や関数名には、などの暗黙の用語を含めるべきではありませんKILL_CHILD(int process_id)。この例の関数の目的は子プロセスを終了することですが、原告の子が製品の使用中に殺された場合、敵対的なju審員はどのようにその関数名を見るでしょうか?

コード内のコメントはさらに悪化する可能性があります。まともな防衛チームは、おそらく子プロセスとは何か(前の例から)と、なぜ終了する必要があるのか​​を説明できますが、次のようなコメントに対して防御することはほとんど不可能です。

// The following section of code is REALLY BAD!!!  I hope
//  it doesn't burn anybody's house down.

そのようなオフハンドのコメントは、実際の裁判の決定要因となっています。

関連するトピックでは、激しい訴訟の顕微鏡下でプロジェクトの名前がとんでもないこともあります。テクノロジーニュースソースが「SATAN Unleashed On The Internet」と報じた90年代半ばの保守派グループの騒動を覚えていますか?

<rant_mode_off>

とはいえ、個人的なプロジェクトの場合は、コードで好きなことを自由に行うことができます。


1
この「非営利」行為の最も危険な側面を指摘したことに対して+1。私が働いていたF500が買収しようとしていた会社のソースコードをレビューする「デューデリジェンス」チームで働いてきました。私たちはあなたが言及した理由でこの種のものを探しました、そして、それは誰が継続的な雇用を提供され、誰が合併が完了したときにそうしなかったの違いを作りました。具体的には、大企業(深いポケット)は、嫌がらせや敵対的な労働環境の訴訟を引き継ぐために中小企業を購入しないため、購入者は購入が完了すると解雇/冗長化されます。
kloucks

5
KILL_CHILDはばかげた例です。そして、「そのようなオフハンドのコメントが実際の裁判の決定要因となっている」という引用を見たいと思います。(STFUとしてだけ言っているのではありません...引用を本当に読みたいです。)
ウォルフガー


1
「つまり、変数名と関数名には、KILL_CHILDのような暗黙の用語を含めるべきではないことを意味します」これは私がこれまで読んだ中で最も愚かなことです。
マイルラウト

9

それがあなたを悩ませ、あなたが本部長であるなら、私はなぜあなたがこれについてのルールを実装できなかったのかわかりません。あなたこの仮説的な状況で、結局のところリーダーです。

しかし、それがあなただけを悩ませ、他の誰も気にしないようなら、たぶんそれを吸い込むべきです。


ここにあります:私は物を「吸い上げない」。
gnasher729

7

私は軽度の冒とくをよく使うので、私は尋ねるのにふさわしい人ではないかもしれません。

私はそれがあなたの環境がどのようにPC(政治的に正しい)であるかに主に依存すると思います。

スーツとネクタイの会社のためにコーディングする場合は、冒とく的な表現を一切使用しないようにしますが、趣味のプロジェクトまたは何かのために使用する場合は、心をより自由に話す傾向があります。

アメリカや他のいくつかの国では、私が住んで働いているオランダに比べて、PCの方がずっと多い(つまり立ち往生している)ように思えます。

追加のボーナスとして、コード内の冒onに関する統計を以下に示します。http//andrewvos.com/2011/02/21/amount-of-profanity-in-git-commit-messages-per-programming-language/


1
セクターに依存していると思います-金融などの圧力の高い環境では、説明文が一般的です。
-JBRウィルキンソン

また、「営利」とみなされるものにも大きく依存します。リンクされた記事のように、「lol」と「rofl」が冒fanとして選択されましたが、私たちのほとんどはそれらをそのように分類しないと思います。
11

PCについてではなく、言語の適切な使用についてです(PCでなくても、冒proを使用しないことを選択できます-深く攻撃的で失礼でありながら、冒proを使用しないことができます)。ほとんどすべてが誰かに不快感を与えるので、不当な攻撃を与えないという点で考える必要がありますが、私たちのほとんどは、行がどこにあるかを知っており、一般的に言葉が間違っていることを誓います。この領域での拘束が便利です-あなたは、人々が注意を払うないとき、あなたは、多くの場合、多くを誓うか、しない場合は...
Murph

6

私はそれがまったく専門的でない可能性があることに同意する傾向がありますが、誰もが時々カッシングするので、私は他人に対してそれを保持しないように努めます。とはいえ、コードベースはグループ全体のプロ意識を反映する傾向があるため、明示的な負荷の高いコードベースはプロではないグループを反映する可能性があり、グループに「何らかの磨きをかける」ために会議が必要になる場合があります。同様に、コードに特定の傾向が現れた場合、それはグループ内の解決する必要がある一般的な問題の指標になる可能性があります(つまり、使用しているAPIには開発者をいらいらさせる問題があります)。

コードベースに関しては、通常、関連するコメントを編集して、作業しても安全になるようにし、そのままにしておきます。使用している言語によっては、クライアントまたは顧客の前に何が表示されるか分からないため、これは常に良い考えです。


3
+1、興味深いことに、私は特定の機能/ライブラリーのフラストレーションを追跡するために、expい出現のパターンを使用することを考えていませんでした。
FrustratedWithFormsDesigner


5

これは非専門的、攻撃的、または肩をすくめるようなものですか?

おそらく3つすべて...あなたの視点に応じて。

特定の状況で人々が「カラフルな言語」を使用して自分自身を表現することは人間の本性です。一部の文化では他の文化よりも多く、一部の人々は他の文化よりも多くなっています。しかし、その傾向は普遍的です。

もし私があなただったら、あなたが同僚に不人気にならない限り、私はそれを肩をすくめるでしょう。

ただし、ソースコード/ VCSコメントが組織外に公開された場合、ビジネスが顧客を怒らせるのは悪いことであるため、経営陣はより強力な方針をとることができます。


ここで重要なのは「特定の状況で」、つまり適切で許容可能な場合です。コメント(コードまたはコミット)は実際に受け入れられる場所ではなく、したがって適切ではないことを示唆するのが妥当だと思います。
マーフ

5

冒fanに関する問題の1つは、文化によって異なることです。米国では、罪のないものは「ブリープアウト」する傾向がありますが、他の国では、議会の議論で交換された同じ言語を聞くことができます。

コードや冒頭のコメントの冒とくは非常に一般的で、おそらく「誰もそれを見ない」という見方のためです。私は、ほとんどの組織がイースターエッグを非合法化するようになったことが実際に一般的になったと思います。

個人的には、非顧客向けのもの(内部コミット資料など)はそれほど大きな問題ではないと思います。

ただし、ほとんどの大規模な多国籍企業は法務部門と「安全な職場」などで運営されています。つまり、少なくとも1人に不快感を与える可能性のあるものはすべて解雇の問題および潜在的な原因です。私はそれを認めたくないが、私は私の給料を払う人々の規制に屈する傾向がある。

この問題の簡単な解決策は、ソース管理システムに冒fanフィルターをインストールすることです(事前送信スクリプトまたは定期チェックとして)。


2
自動冒proフィルタの提案に同意する必要があります。第一に、スカンソープの問題に遭遇するリスクがあります。第二に、スティーブンCが言うように、冒とくは別の問題の症状である可能性が高く、それを禁止しても魔法のように修正されません。
スコット

2
冒涜フィルタについては+1、「clbuttic間違い」(避けることが重要であるthedailywtf.com/Articles/The-Clbuttic-Mistake-.aspx
rjzii

冒fan的なフィルタは機能しません。彼らは無害なものをブロックし、悪いものを乗り越える傾向があります。また、簡単に回避できる傾向があります。
11

cntd。私は自然写真フォーラムの司会をしています。管理者が冒fan的なフィルタをインストールすることを決定した場合、ビーバー、人々のペットの猫、鳥などに関するすべての議論は検閲されます。再び削除される前に、ユーザーはフィルターを回避する方法を開発し始めました。ビーバーを撃つための旅行について話すことができない場合(おっと、1つの短い文に3つの悪い単語)、代わりにsh.oo.t be.ave.rsへのtr.ipについて話します。キャッチするにはあまりにもstu.pi.d(禁止された別の単語)である。
11

「不適切なフィルタの多くはがらくただから」という冒fan的なフィルタを避けるという議論は、スパムフィルタやSQLサニタイザなどを避けるのと同じくらい理にかなっています。正規表現のみを使用する場合、SOLです。
ウリ

3

そこに爆弾を落とすような制御不能でない限り、大丈夫だと思います。私が働いている人が、それぞれが表すさまざまなオブジェクトについて議論する2人のキャラクターの間でスクリプトを書くのを見てきました。これら2人のキャラクターが30行程度互いにやり取りしている複数行のコメントがありました。

/ * * igor:私は自分自身を公開マッサージ師にしますか?*フランケンシュタイン:ああ、イゴール、私はあなたの最高の特性を継承します... * /

このように長い間続きました。彼は2つのオブジェクトを作成しました、あなたはそれを推測しました:いくつかの健全性チェックの一部としてのフランケンシュタインとイゴール。実際には非常に創造的でしたが、時間の無駄です。私はむしろ、2つのC#オブジェクト間の脚本よりも、いくつかのWTFまたはexp語を見たはずです...


それは面白い。非生産的だが面白い。
ポールネイサン

@ポール:ハ!申し訳ありませんが、あまり生産的ではありませんが、コードを調べながらこの1日を見るのはばかげていました。
ノードガイノードガイ

2

会社/クライアントの文化に依存します。たとえば、聖書ソフトウェアを開発している場合、どんな形のin辞も間違いなく歓迎されません。一方、ゲーム開発者はそれほど気にかけないかもしれません(または他の極端に行きます)。

私は常に(コードまたはコミットの)コメントが役立つはずだと心に留めています。特定の単語は、他の単語よりも注意を引く-let辞、ソフトバラエティであっても、間違いなく注目される。単純に間違っているものに注意を喚起することは有用かもしれませんが、まだそれを回避する方法はありません。

つまり、私はexp辞を使用しませんが、ときどき「Doh!」のようなものを使用します または「ハァッ?」それは精神的にあまり違いはありません。気になる場合は、犯罪者と話し合ってください。彼らがあなたにハイキングをするように言って、あなたがそれについて強く感じているなら、マネージャーにラングを上げてください。マネージャーからサポートを受けられない場合は、マネージャーと一緒に暮らすか、他の場所に行くことを学ぶ必要があります。


申し訳ありませんが、「聖書ソフトウェア」とは何ですか?(ここでは英語のネイティブではありません)。
ルーク

2
聖書はキリスト教の教義が書かれている場所です。聖書ソフトウェアは、クリスチャンがさまざまな翻訳のテキストを横断的に調べ、特定の文章について学者が言ったことを調べ、一般的にテキストを研究するために使用できるソフトウェアです。ある経典は、「腐敗したコミュニケーションがあなたの口から出ないようにする」ことについて話します。呪いも同様に歓迎されない他の宗教的なアプリケーションがあると確信しています。
ベリンロリチュ

3
クリスチャンは、実行可能ファイルを逆アセンブルして、ソース内の呪い語を検索しますか?

えーと、コメントはコンパイルされないので
、うまくいき

5
それで、もし聖書ソフトウェアを書くなら、聖書の中のわいせつなものをすべて検閲すべきですか?
ウーブル

1

さて、私はあなたがこのようなコードについて他に何を言っているのか正確にはわかりません:

tocommit = (n + (COMMITSIZE/PAGESIZE) - 1) & ~(COMMITSIZE/PAGESIZE - 1);

このコードは、私が最近最適化しようとしてきた、非常に粗い本物のコードベースから引き出されました。(コードはオープンソースなので、ここで雇用主の秘密を明かすことはありません。)


3
火と磁石でその雌犬を殺します!

1

他の人が言ったように、それは職場と誰がソースコードを見るかに依存します。

ソースコードを販売していた場合、リリースされたバージョンのみの2番目のリポジトリがあり、新しいバージョンが提供するものの説明以外のチェックインコメントは許可されません。私が日々やっていること、そして私のすべての失敗は、クライアントではなく、私と私のチームの間にあります。

現在、私のビルドサーバーは、OMG、WTF、クラッジ、混乱、およびTODOコメントを、現在実行中のクリーンアップのメトリックとしてレポートします。これらはプロセスの一部です。


1

オープンソースソフトウェアに冒とくが見られ、それを取り除きたい場合は、プッシュバックの可能性に備えてください。3行のバグレポートを書くだけでなく、受け入れられることを期待してください。冒とく的で差別的な言葉がなぜ悪いのかを説明する小論文を書き、反論を先取りします。


0

個人的な好みの問題だと思います。そのようなものは本当に私を気にしませんので、私はおそらくそれを残すでしょう。問題のある領域がコードのどこにあるのかについてのヒントさえ教えてくれるかもしれません。

彼らはあなたを悩ます?あなたがこの質問をしているという事実から、私は彼らがそうしていると推測しています。その場合、それらを削除するか、何が間違っているかについてより適切なコメントに整理します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.