プログラマーを雇うという決定にとって、優れたコーディングスタイルはどれほど重要ですか?[閉まっている]


15

学生としても、テストに合格した(していない)プログラマーのコードを確認するよう求められます(Androidでフィボナッチ数のリストを作成します)。

私はコーディングスタイルに非常に厳しいのですが、誰かが使用し「ブロック」スタイルについて読んだだけです(コメントを読んでください!)

私の立場では、この種のスタイルを使用している人を雇わないことをお勧めします。このコードは、私の会社で使用されているコーディングスタイルとはまったく逆です。

コーディングスタイルとその欠如に対処する方法を探している間私は1つのことについて興味があります。深刻なトラブル 会社で使用されているコーディングスタイルを採用していますか?

お願い:これはコーディングスタイル全般についての議論ではなく、どちらの方がよいでしょう。誰かを雇うという決定のためのコーディングスタイルの重要性についてです!

詳しくは:

私は決定を下す人ではなく、コードに基づいて意見を述べるだけです。その男は、ソフトスキルをチェックするものすべての私たちの頭でインタビューを渡す必要があります。彼がこれに合格した場合、彼は私たちの小さなスキルテストに合格する必要があります。私はイエスかノーと言う立場にありません。レビューでコーディングスタイルがどれほど重要かを知りたいだけです...


9
賢い。「事実に裏付けられていない」「深刻な問題への適応」を取り除くのではなく、そこに線を引いてください。それが実際に他の誰かの態度についての根拠のない主張を変えるかのように。
S.Lott

2
コーディングスタイルは、最も重要なことです。結局のところ、それは単なるコードです。
SKロジック

7
私はあなたの質問を読み込もうとしていましたが、あなたのフォーマットを理解するのが難しいことがわかりました。段落に開始インデントを追加できますか。'K THX
BAI-ダイエットブッダ

2
コードの一貫性(またはコードの欠如)は指標です。たとえば、誰かがコードを整理する時間がない場合、おそらく、Subversionで新しいプロジェクトをコミットする適切な場所を見つける時間もありません。彼らはおそらくリファクタリングする時間がないでしょう。リストは続きます。
ケビン

10
コーディングスタイルは途方もなく簡単に調整できます。これは、「この人は黒いスーツを着ていますが、当社では従業員が濃い灰色のスーツを着ることを好むので、雇うべきですか?」と尋ねるようなものです。あなたの会社で持っているスタイルのルールを伝えてください。問題が解決しました。
ジューシーなルーシー

回答:


41

適応に問題があることをどのように知っていますか?彼らが異なるコーディングスタイルを使用しているという理由だけで?それはかなり予想外です。私は長い間請負業者であり、どんなコーディングスタイルが使用されていても、あなたは適応します。少し時間がかかるかもしれませんが、習慣はかなり早く形成されます。

スタイルをコーディングすることによって、コードのインデントとレイアウトを意味するだけではないことを願っています。これは、コードフォーマッタを使用して、バージョン管理システムに統合することで簡単に処理できます。

コーディングスタイルを命名、一般的な順序付け、ユニットの分離など、読みやすさと保守性を扱うものすべてを意味するように考えると、コーディングスタイルで最も重要なことは、それがあることです。どちらでもない。コーディングスタイルがないことは、明確な赤旗です。

誰かがどのコーディングスタイルを使用する場合でも、2番目に重要なことは、一貫して使用することです。誰かがコーディングスタイルを使用しているように見えるが、それに対して頻繁に「罪」を犯している場合、それはもう1つの明確な警告です。


5
+1がない、または一貫して使用していない+1は「レッドフラグ」であり、異なるスタイルを持つことはそうではありません。
jv42

1
「少なくとも一貫して使用する」ことに完全に同意します。コードを確認するとき、それが最も重要です。ただし、コードスタイル/コード形式は、外国のコードを見たときに得られる最初の印象であることを認める必要があります
...-WarrenFaith

3
@WarrenFaith:それで、本を表紙で判断しますか?:-)しかし、真剣に、はい、それは第一印象を与えますが、インタビューするとき、あなたは彼の現在のスタイルがあなたのものと一致しないという理由だけで完全に有能な開発者を無視しないように面接することに注意するだろうと思います。
マージャンヴェネマ

一貫性を保つために+1:スタイルの欠如は、一般的にあまり書かれていないことを示しています。書くときは習慣を選びます。
マシューM.

1
自動コードフォーマッタは嫌いですが、その必要性は受け入れます。間違った場所で改行を選択しているようです。はい、私は日食について話している。
ケビン

27

ほぼ100の異なる顧客のために何百もの異なるプロジェクトでプログラミングを行ってきたので、1つのポイントを強調しましょう。

コーディングスタイル(およびコーディングスタイルをめちゃくちゃにする)は、時間の無駄です。

それを乗り越えます。

私は多くの異なるプログラマーから多くのコードを読みました。(5人と100人の異なるチームの中央のチームサイズを想定します。これは500人の同僚です。)スタイルは関係ありません。

私はかなり、しかし病理学的に間違ったコードを見てきました。

[制限があります。意図的な難読化は終了の理由です。それ以外では、スタイルは時間の無駄です。]

コーディングスタイルは「最終フロンティア」です

ソフトウェア開発の問題をすべて解決した場合。エラーのないコードを多かれ少なかれ即座に生成できる場合 品質レベルが非常に高い場合、バグ修正キューはもうありません。ユーザビリティが非常に優れている場合、ヘルプデスクはもうありません。サーバーファームを持たず、iPadからエンタープライズを実行するまで冷酷に最適化できる場合...

修正するものがなくなったら、最終的にコーディングスタイルに集中できます。

それまでは、スタイルよりも大きく価値のある多くの問題があります。


2
@WarrenFaith:これを十分に強く言うことはできません。それはどうでもいい事です。繰り返します。何百人ものプログラマーからコードを(専門的に、有料で、請求可能な時間に)読みました。それはどうでもいい事です。それは第一印象ではありません。正確さと明瞭さが第一印象です。
S.Lott

2
@WarrenFaith:意図的なあいまいさはまれです。「単にコードを読み取れない場合」は、ライターの問題と同じくらいリーダーの問題である可能性があります。繰り返します。何百人ものプログラマーからコードを(専門的に、有料で、請求可能な時間に)読みました。「単に読めない」ということは一度もありません。スタイルは関係ありません。
-S.ロット

2
コーディングスタイル(およびコーディングスタイルをめちゃくちゃにする)は、時間の無駄です。-2番目の点で100%、最初の点で約40%に同意します。コーディングスタイルは重要です-コーディングにスタイルがまったくない場合。ある場合、それがどのように見えるかは重要ではありません。
トレブ

4
@WarrenFaith:私はサンプルを見ましたが、はっきりしていないものは見当たりません。それは私がそれをフォーマットする方法でフォーマットされていませんが、コードが機能しないことを示すものは何もありません。それについて不明確なものは何もありません。書いた人がチームの標準に準拠することができない、またはしたくないということを示唆するものは何もありません。@ S.Lottは正しい。関係ありません。
ジョエルイーサートン

4
そして//Important、すべての行で使用します。エヘム。コードのすべての行は重要であるか、削除する必要があります。
-S.ロット

7

コーディングスタイルに基づいてプログラマーを判断すると、50%がわいせつであり、50%が不安定です。

私は自分のコードがすっきりときれいに見えるのが好きです、そしてそれはリンクでOPがぼろぼろになった男のようにも聞こえます。私たちのコードは同じように見えませんが、二人とも、戻ってきたときにコードを理解するのに役立つスタイルを使用しています。私は彼のコードを理解するのに全く問題がなく、OPもそうだったとは思わない。コーディングスタイルの「アドバイス」は、中括弧が次の行にあるべきである理由に関する計り知れない知識を伝えることができる簡単な安価なショットに他なりません。それはまったく問題ではありません。コードを読みにくくするものは次のとおりです。

  • それらが表すものを説明しない非常識な命名規則(またはその欠如)。
  • 何が起こっているのかを判断するのが困難な非常識なプログラムフロー(goto、ビジネスロジックの試行/キャッチなど)。
  • 脳が追跡できない以上のことを行う非常に長い機能。

上記のいずれも実行しないコードを想像するのは困難ですが、特にStyle Copのようなツールを使用した場合、まだ読みにくいものでした。


7

誰かを雇うことを決めるとき、コード形式が要因になるのはばかげています。

  1. 考慮すべき多くの重要な要素があります。
  2. ほとんどの開発者はスタイルを調整できます。
  3. フォーマットが重要な場合は、コードリフォーマッターとリントチェッカーを使用してください。

コンマがばかげているのにスペースを追加しないため、優秀な開発者を雇っていない。


4

会社に正式なフォーマットスタイルがあると思います。

次に、ソースを公式スタイルに再フォーマットすることを非常に簡単にします。できれば、ソースファイルが保存されるたびに自動的に実行されるようにしてください。

コミットの差分を最小化することでより高い品質を保証するため、彼の塩に値するプログラマーはこれを愛するようになります。


コミットの問題を忘れていました...そして、はい、公式のフォーマットスタイルと保存前の自動フォーマットがあります。
ウォーレンフェイス

@Warrenは、インタビューでそう言って、プログラマーがこれが重要であることを理解していることを確認してください。彼が仕事を続けたいなら、彼の約束を果たすのは彼次第です。

4

StyleCopを使用する

Visual Studioを使用している場合は、コンパイル時にStyleCopルールを常に強制することができます。これにより、少なくともコードが読み取り可能であることが保証されます。

作者自身によってさえ、将来維持するのが非常に難しくなるので、おそらく標準的でないスタイルの読めないコードを拒否します。これは過去に何度も証明されています。

CVS統合コードフォーマット=最適なソリューション

CVSのいずれかがチェックイン時の自動コードフォーマットをサポートするのであれば、本当に素晴らしいでしょう。スタイルの優先順位を設定するだけで、コードは保存される前にフォーマットされます。これにより、開発者固有のスタイルがコードの書式設定の観点から廃止されます。一部の開発者が異なるインデント文字を使用している場合、問題を確認できます。別のコードを見るのはそれほど問題ではありません(簡単にすばやく再フォーマットできます)が、DIFFの処理は難しくなります。DIFFツールに多くの誤検知があります。


だから...もしある会社が独自のC#コーディング標準を発明したら、それは危険だろうか?
仕事

1
@Job:StyleCopが追加のルールを追加できるため、必ずしもではありません。そもそもそこにはなかったSPACEにTABを強制する2つを書いたことを知っています。しかし、その考え方は、コーディングスタイルを強制できるため、統一されたコードを簡単に作成できるということです。
ロバートKoritnik

彼らのスタイルがStyleCopのスタイルに戻った場合、そしてStyleCopをまったく利用していなかった場合はどうでしょうか?
ジョブ

@ジョブ。誰かが古いFortran(80カラムの固定レイアウト?)であるかのようにC#コードを書かない限り、コーディングスタイルには従うように求められると思います。誰かが偉大な開発者であるならば、あなたは自分のスタイルを向上させることのそれらを思い出させる(またはそれらを介して自分のスタイルを正当化させることができます私たち)。それがコードレビューの目的です。どのコードも高速に再フォーマットできますが、少なくとも命名規則に従う必要があります。しかし、それは決して雇いの赤旗ではありません。すべきではない。
ロバートKoritnik

3

以下のはるかに重要な詳細のはるか下:

  • チームフィット
  • 問題解決能力
  • コミュニケーション

コーディングスタイルは、上記の最後の2つを持っているほとんどの人が学習できます。

ただし、通常、最終インタビューの前にサンプルコードを確認します。コーディングスタイルが私たちが使用しているものから遠い場合は、適応能力を明らかにする質問に焦点を当てます。


私の場合、それはしばしば私が男から見る唯一のことです
...-WarrenFaith

@WarrenFaith-わかりました、しかし、あなたは、情報が少ないことに基づいて、誰かを雇うという単独の決定を決してするつもりはありませんか?あなたはただ意見を求められています。
pdr

本当です。技術的な観点から意見を述べますが、ソフトスキルも重要です。そして、インタビューで少なくともソフトスキル「テスト」に合格した人だけをテストします。しかし、私はコーディングスタイルが私の意見に与える影響に興味があります
...-WarrenFaith

@WarrenFaith-あなたの立場では、私はそれを言及しますが、非常に重要なものではなく、副注として。
pdr

私は基本的に賛否両論のリストを作成し、それを私たちのCTOのために説明し正当化します。最終決定は彼
次第

3

スタイルが一貫しており、その人が別のスタイルに適応(変更)できる限り、問題は発生しません。

現在のスタイルが使用しているスタイルと異なる場合、それは悪いことではありません。候補者にとっては、完全に理にかなっているかもしれません。

他の人が言ったように、適応に問題があることが唯一の問題かもしれません。


0

これが明確な雇用ではないとは言いませんが、この人に対する強い議論です。

コーディングスタイルについては実際には心配しませんが、この適応できないことは一般的な問題の症状です。候補者がチームカルチャーの他の側面にも適応するのが難しいと感じるかもしれません。

キャメルスタイルのケーシングの代わりにパスカルスタイルを使用して心を包むことができない場合は、最後のカップを飲む場合、新しいコーヒーのバッチを開始することを覚えておくのが非常に困難になる可能性があります。そのようなことは、チームにとって非常に有害です。

(そして、はい、私はカフェイン中毒です。)


「悪いコーディングスタイル」に伴う問題は、多くの場合、経験不足です。最も初心者を見ると、コーディングスタイルと呼ばれるものが不足していることがよくあります。
ウォーレンフェイス

?「この人に対する強い議論」...「実際にはコーディングスタイルについて心配する必要はありません」。どっち?それは重要ですか、そうではありませんか?答えからあなたのアドバイスが何であるかを伝えるのは難しいです。はっきりさせてください。
-S.ロット

@ S.Lott:どちらですか?-まあ、もちろん両方。悪いコーディングスタイルは悪い習慣です。ほとんどの人はそれをやめることを学ぶことができます。あなたが問題を抱えていることを彼らが知ることができない(または知らない)ときです。
トレブ

0

私の意見では、優れたコードスタイルは、プログラマが作業するために不可欠です。

良いコードスタイルを持つことは、個人的な開発の問題です。このプログラマーがすでに到達したレベルです。

問題は、あなたの会社が「高い専門家」または「高い可能性」を望んでいるかどうかです。「高度な専門家」が必要で、学習と進化の余地がない場合-コードスタイルはノックアウト基準です。

プログラマーの進化と開発の余地がある場合、速く学ぶか、創造的であると考える彼または彼女の能力に注意する必要があります。

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