誰かのコードのスペル/文法関連の間違いを指摘すべきですか?[閉まっている]


106

同僚のコードを確認しているときに、関数名のスペルミスや、関数名と変数名の「doesUserHavePermission()」ではなく「doesUserHasPermission()」のような文法エラーに遭遇しました。

これらを彼に指摘する必要がありますか?


3
英語が第二言語ではない場合、その人が実際に英語で助けを求めていることに注意するかもしれません。一部の人々は、構造化された思考を表現できないこと、適切な英語ができないことを知って満足しています。英語が彼らの母国語なら、はい、悪い文法は問題だと思います。
宮坂

31
はい。間違ったつづりのAPIを使用していると、本当にイライラします。それは山火事のように広がります。そのため、できるだけ早く修正することをお勧めします。

9
@Rei:英語が母国語であるかどうかは、プロフェッショナルな環境では無関係です。それが彼らにとってそれほど悪くはないが、言い訳にならなければ、彼らは同じ基準を守るべきです。
トーマスボニーニ

4
@Rei、私が宣伝していると思う多くのプログラミングの仕事には、まさにこの理由で母国語の習熟度が必要です。要件、設計、仕様、および構築について議論できることは、ソフトウェア製品全体にとって非常に重要です。
スティーブンフルラニ

回答:


205

スペルミスと文法エラーのあるコードは維持できません

  • 人々は悪い文法を覚えていないので、書かれていたはずの関数を呼び出そうとします。それがバグの発生方法です。

  • コードのつづりがわからない場合、コード内の何かをgrepできません。

  • 文法/綴りを作るほとんどの人はそう一貫しないので、命名が一致しない多くのバグを導入します。これは、使用前に変数を明示的に宣言する必要のない言語では特に問題となります。新しいスペルを導入でき、コードが失敗したことを知らせるためにコードが中断することがないためです。

これらの問題を修正することは、教訓的ではありません。また、主に他の人の知性、リテラシーなどの意見によって必要とされることもありません(それは大きな副作用です)。それは、高品質で保守可能なコードを記述することです


7
+1誰かの気持ちを控えることが重要な場合もありますが、コードレビューの場合は...キャッチした場合、コメントするのは公正なゲームです。私の会社では、コードレビューにるつぼを使用しています。これにより、すべてのレビューでキャッチされたことを確認でき、レビュー担当者はそれを欠陥ではなくスタイルとしてマークできます。
opello

15
+1-スペルや文法の誤りがAPIに侵入すると、再び抜け出すことはほぼ不可能になります。私の代わりに「アクティビティ」の「Avtivity」を記述すること3年の大半を費やし、それは常に物理的に傷つけるそうします。
ジョンボード

7
良くも悪くも、良いプログラミングの実践は、多くの場合、非常にペダリーに似ています。さらに、Referrer元のHTTP仕様でつづりを間違えた人を見つけて、彼を足首で蹴りたいと思います。...もちろん、それはおそらく、バーナーズ=リーだったので、私は後で罪悪感を感じるだろう
Malvolio

2
@Stephan Furlani:それが私がやろうとしていたポイントです。それは私たちが所有していないAPIの一部でした。修正することはできませんでした。修正するプロセスはugくて長すぎて、誰もそれをいじりたくありませんでした。
ジョンボード

2
@John Bode、ラッパー関数を作成したはずだと思います:) C#にはそのための巧妙なトリックがあります(名前を忘れました)。
ジョブ

38

はい、間違いなく。名前が文法的に正しい場合、名前を覚える方が簡単です。名前文法の間違いを思い出そうとすることは、まったく別のことです。


29

正式なコードレビューの欠陥として指摘しないでください。代わりに、リストをマークアップして、プライベートに彼/彼女と話してください。「ねえ、私は気づいたこと、そしてこの種のことを本当に軽lookしている人々に出会ったので、プログラマは不注意でずさんなように見えると思う」と、それについてできるだけ外交的にしてください。

これが顧客に表示されるコードである場合、絶対に修正する必要があります。好むと好まざるとにかかわらず、それはあなたの会社の評判を反映しています。

あなたが与えた例では、私はそれがUserHasPermissionとして始まったのではないかと疑っています、そして他の誰かがローカル練習はUserBlahBlah()ではなくdosUserBlahBlah()であると彼に言いました、そして彼は文法の変更を見落としました。


12
他人の認識に関するものだと言うことは重要ではないように思われます。正直なところ、彼らはコードの維持と構築を難しくしています。
HedgeMage

5
@HedgeMage:このようなことに関する私の個人的な経験では、一部の人々は自分自身を批判していると感じるものについて非常に気が進まないということです。さらに悪いことに、あなたが批判しているように見える人が経営者に愛されている場合、本当にい政治的影響があります。(はい、これを証明するための傷跡があります。)そして、コードが機能している限り、文字通りこの種のことを気にしていない組織を見てきました。私の個人的な気持ちは、穏やかに行けば、他の頭痛を最小限に抑えて、あなたがそれを修正する可能性が高くなるということです。
ジョンR.ストローム

12
@ジョン私は確かに、悪い仕事の状況はそのような卵殻の上を歩く必要があることを強制することができますが、そもそもそれ問題であれば悪い状況です。とても自我のある人(そして彼らの陰謀を許す職場文化)は、ビジネスを始めるのに良くありません。
HedgeMage

6
ほとんどの成熟したプログラマーは批判をよく受け入れます。結局、それはピアレビューの目的です(そして、私たち全員がコードレビューを行いますよね?)、コメント、関数名などのスペルと文法を批判することはまったく問題ありません。組織全体で。
すぐに

6
ここでHedgeMageに同意する必要があります。コードレビュー中にこのような間違いを指摘できない場合(特に質問の例のように客観的に間違っている場合)、より大きな問題が発生します...
Dean Harding

10

自分で変更してください。

コードの「所有権」が問題にならない環境にいることを願っています。ソース管理でプロジェクトにアクセスできる場合は、自分で修正してください。特定の同僚が同じタイプの文法やスペルミスを一貫して犯しているのを見たら、それを指摘したいかもしれませんが、それはあなたの関係、その人がネイティブの英語話者であるかどうか、そして彼らの一般的な受容性に依存します。しかし、あなたがそれをすることにしたかどうかにかかわらず、静かに行って修正を行ってください。特にメソッドシグネチャまたはパブリックプロパティでタイプミスを見つけた場合は、常にこれを実行します。時々、コメントのタイプミスを修正する誘惑に抵抗することさえできませんが、それは私だけです:)


5
そして、3番目の男のコードを壊したことがわかります。。あなたはちょうどあなたが最初の男のチェックをすべての後にそれを得ることができないときは、できるだけ早く固定物事のこれらの種類を取得する必要があります
デヴィッド・ソーンリー

コードの一部を修正すると「他の人の」コードが壊れるのではないかと心配していて、伝える方法がない場合は、スペルよりも大きな問題があります。
コーネルマッソン

@CornelMasson:そうでもない。これは、API設計の重要な部分です。
軌道上の軽度レース

6

私はネイティブ言語が英語ではなく、実際はオランダ語である開発者であり、誰かが私に文法やスペルミスを指摘してもまったく気にしません。そのようにして、私は常に英語を上達させ続けることができます。そして、すべてのソースコードのすべての間違いを修正することは確かに難しくありません。単純なPerlスクリプトを簡単に記述して、フォルダー内のすべてのファイルをループすることができます。おそらくsedでもできますか?知りません。

だから、私は間違いなく他の誰かのコードの文法やスペルミスを指摘しますが、それは私が言っていることが正しいかどうかが絶対に確信している場合のみです。


6

ここで、HTTPプロトコルのHTTPリファラーヘッダーが「リファラー」としてスペルミスであったことに言及する価値があると思います(そして、私たちはそれと共に生きなければなりません/私たちはそれと共に生きることを学びました)。


10
そして、そのようなことを二度と見たくありません。
デビッドソーンリー

4

私は、文法の誤りがあるコードは維持できないと言っている他の回答に同意します。

また、いくつかのことを追加します。

  • コードは、英語を上手に話せない人や、英語が母国語ではない人によって書かれていることがよくあります。レビューするコードに文法上の誤りがある場合、これは同僚がこのエラーを行ったことを意味するものではありません。たぶんそれはウェブサイトからの単なるコピー&ペーストだったのでしょう。
  • 英語が同僚の母国語ではない場合、この間違いについて英語で話すのは良い考えかもしれませんし、非常に悪い考えかもしれません。フランスから来た私は、私が英語で犯す間違いについての発言をいつでも歓迎します。一方で、文法の間違いについて話すと本当に怪我をする人がいることを知っています。
  • ジョン・R・ストロームが言ったように、決して公にしないでください。ほとんどの人はこれに本当に悩まされます。

11
「たぶんそれはウェブサイトからの単なるコピーアンドペーストだった。」次に、それをコピーする人が問題を見つけて修正する必要がありました。そのままコピーしてエラーを残すのは、自分で書いてエラーを作成するのと同じくらい悪いか悪いです。「自分が犯す文法の間違いについて話すと本当に傷つく人が何人かいることを知っています。」ビジネスでは、全員が共通の目標を達成するために協力し合う大人や同僚として振る舞うべきです。問題を提起する人はタクトを使用する必要があり、批判を受けた人はそれを受け入れ、そこから成長する必要があります。
ティンマン

3
私はプロとして、私たちは大人として振る舞うべきであり、これを個人的に受け止めないことに100%同意します。しかし、絶対に指摘して修正する必要があります。はい、タクトを使用する必要があり、個人に応じて必要に応じてアプローチする必要があります。ただし、問題を完全に回避することが推奨される環境にいる場合は、おそらくそれを離れる時間です。これは、汚染された環境を指します。
マークフリードマン

任意のスペルエラーは、シンプルなGoogle検索で確認することができます
JoelFan

2

スペルチェッカーが組み込まれたIDEを使用することをお勧めします。IntelliJ IdeaはJavaプログラムに対して素晴らしい仕事をします。関数の名前だけでなく、たとえば、ユーザーに表示される例外メッセージにも、キャッチする厄介なタイプミスが多くあります。タイプミスでいっぱいのメッセージを生成するプログラムは、それほど自信を刺激しません。


0

私がするのは

  • プログラムの使用に影響します
  • プログラムの精度に影響します
  • 著者が修正されることを希望していることを明確に知っています。

補足として、関数名が文法を持つのに十分な長さである場合、おそらく長すぎます。与えられた例では、関数userHasPermissionを呼び出して、次のように「文法」をコードに移動します。

if userHasPermission() ...

1
ただし、この場合userHavePermission()は間違っているので、文法ミスの可能性はまだあります。
ディーンハーディング

しかし、それはまさにポイントです!! userHasPermission()は、文法〜または〜のためにブール値を返すことを意味します。これは、ユーザー許可を設定することを意味する場合があります。(Officerにはブリッジがあります::ユーザーには許可があります)。まだあいまいです。
スティーブンフルラニ

Qのサンプル名が不必要に長いことに同意しますが、「長すぎる」一般化について警告します。この場合、概念はより少ない単語で表現できるため、短くする必要があります。しかし、「長すぎる」とは何ですか?文字または単語の制限はありますか?
LS

0

これは私のプロジェクトでもたくさん起こります(ヘブライ語、ロシア語、アラビア語を母国語とする人々が住んでいます)が、より高いレベルでも-しばしば辞書が翻訳として作成したものであるあいまいな用語を使用するコードを見ます著者が念頭に置いていたもの、そして彼らが意味することとは何の関係もない

個人的には、頻繁に発生し、プロジェクトに参加する前からコードを書いていた可能性のある多くのチームメンバーが、それを無視する傾向があります。

ただし、以前に記述されたコードまたはコメントと同じファイルでいくつかの作業をコミットし、それらにタイプミスがある場合は、あまり作業ではないという理由だけで修正します。


0

ゴールデンルールが適用されます

あなたが彼らにあなたにさせるだろうように、他の人にしてください。

私は他の人にこの種のものに背を向けてほしいので、他の人を助けます。優雅で協力的であることは、あなたに有利に働くことができます。


2
曖昧さのために-1-質問者に何をアドバイスするかわからない。
HedgeMage


2
私はそれに精通しています。明らかに馬鹿げていることに加えて(アリスの扱い方がボブの扱い方だと信じる理由はありません)、それは本当の問題、つまり良いコードの作成から気をそらします。確かに、私はそれについて気を悪くするつもりはありませんが、悪いコードを書いている人がそれを上げて欲しいかどうかに技術的な問題を提起するかどうかに基づいていません!
HedgeMage

@HedgeMageの苦情は次のように説明できると思います。プロジェクトとその将来の作業に関心があるため、利用可能な時間とリソースで許される最高の品質をコードにしたいのです。ボブは、訂正可能な間違いに対する批判を避けたいと思っています。なぜなら、彼は批判を上手く受け取らないからです。「ゴールデンルール」をまったく異なる方法で実装します。
まぶたのない14年

アドバイスは、OPがどのように扱われたいかを操作することを意味します。ボブをどのように扱いたいかをボブに扱わない。彼(OP)は、特にOPが共有しているコンテキストで同じエラーを修正したいので、私はOPにボブを修正するよう奨励していました。
ケブピー14年

0

他の多くの優れたプログラミングプラクティスと同様に、プログラムのスペルに関するポリシーを実装する唯一の客観的で非政治的で効果的な方法は、コミット前プロセスの一部としてポリシーを自動化することです。目的のために独自のツールを作成しなければならない場合でも、自動化は膨大な苦情からあなたを救います。


3
最も重要なエラーの多くは自動的にキャッチできません。これは、スペルと文法にも適用されます。自動チェックを行うこともできますが、結果は警告と同等でなければなりません。これは、スペルチェッカーが偽陽性(例:固有名詞)と偽陰性(2つも)の両方を生成するためです。そのため、手動による介入が必要です。
マシューフラシェン

そのような自動化はこれらの問題を解決するのではなく、人々が犯す間違いのいくつかをキャッチするだけです。
超えた

自動修正??? インターネットには、自動修正の「失敗」の例がたくさんあります。それは間違いなく良くありません。
フロリアンF

0

これはコードの小さな間違いですが、間違いです。見つけた他の間違いと同様に扱います。私のポリシーは、同僚が有能であると仮定し、そうでないことが証明されるまでそのように扱うことです。

それがたった一つの間違いなら、私はそれを直してチェックインするかもしれません。それがパターンなら、私はその同僚にそれらの修正を見直すようにさせるかもしれません。あなたは彼らが良いコーダーだと思うが、これは改善するのが良いだろうことを彼らに知らせてください。しかし、このようなことについて大したことはないと思います。

あなたがそれを大きな問題のように扱わない限り、その同僚を、エゴを台無しにすることなく改善できる立場に簡単に置くべきです。


-1

userPermission()おそらく?-

最後に出会ったのは、クラス名のスペルがハイライトであるため検索結果が強調表示されないというグローバルな問題です。見つけにくいバグ。


コメントせずにダウン投票することは憎悪です。
mplungjan

-1

確かにそれを指摘しますが、スペルミスをチェックする時間を無駄にしないでください。ツールを使用して、CIでこれを自動化します。.netでは、fxCopでこれを実行できます...


-2

それは主に、間違いが何であるか、どれほど一般的でどれだけ悪いか、そしてそれが実際に真正な間違いであるか、それとも言い方ではないかによって異なります。

馬鹿者が5分間のコードレビューを30分にドラッグするとき、私は個人的に我慢できません。 「データオブジェクトの読み込み」を「データオブジェクトローダーコンポーネントが関連するデータオブジェクトをデータオブジェクトストレージコンポーネントから読み込むように」変更する必要ありません

/ rant :)


2
私のやり方を主張することは一つのことです。適切なスペルと文法を使用することを主張することは、まったく別のことです。
デビッドソーンリー

なぜ私の答えが下票に値するのかはまったくわからないが、決して気にしない...また、デビッドのコメントに対する私の返信はどこに行ったのか?とにかく、100%正しい英語の文法は、開発において常に望ましいとは限りません。上記の例では、「データオブジェクトのロード」は完全な文ではありませんが、2つの文言のほうが望ましいです-簡潔でローカライズしやすく、多くのスペースを必要としません。
JohnL
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.