コーディング標準およびその他のITプラクティス

特定の言語構造(goto、C ++での複数クラスの継承)またはプログラミング手法(再帰、アプリケーション初期化後の動的メモリ割り当て)の使用を制限するさまざまなコーディング標準を読んで議論する必要があります。 C / C ++に関して、最も有名なコーディング標準はMISRAHICPPGoogle C ++ Style Guideです。 10のルールに関するHabréの記事も興味深いものです。これにより、NASAは数百万行のコードを最小限のエラーで記述できます。



カットの下で、さまざまなプロジェクト管理の実践の適用についてのユーモアと真剣な推論のビット。



伝えられるところでは、これらの標準により、よりクリーンで読みやすいコードを書くことができます。 これらにより、ある種のコーディングエラーを回避し、ソフトウェア製品のサポートを容易にすることができます。



しかし、私の意見では、チームメンバーが互いにどのように相互作用するかについては、当然のことながらほとんど注意が払われていません。 チームワークがうまく調整されていて、人々間の効果的なコミュニケーションがプロジェクトの成功にとって重要です。 ソースコード内のコメントを理解するのが難しい、誤解された、言われたことの誤った解釈は、最終的にソフトウェア製品の品質に影響を与えます。



このギャップを埋めるために、私たちの考えの不明確な提示から生じる最も厄介な状況を回避できるようにする10のルールを導入することを提案します。



  1. 15単語を超える文章を使用しないでください。
  2. 1つの名詞に3つを超える定義を使用しないでください。
  3. 複雑な文を使用しないでください。
  4. 各文には主語と述語が必要です。
  5. 一文では、複数の分詞ターンオーバーは許可されていません。
  6. ロシア語の最も一般的な5000の単語と専門用語のリストを作成する必要があります。 このリストに含まれていない単語や略語は、プロジェクト管理者との合意によってのみ使用できます。
  7. 競合組織の名前は、否定的な文脈でのみ使用できます。 書面でのスピーチでは、競合組織の言及には括弧内の説明を添付する必要があります。「(私たちと競合し、この組織との接触は制限されるべきです。)」
  8. 勤務時間中は、会社の方針の議論は許可されません。 世界には多くの不正があります。その中には当社から生じる不正も含まれます。 しかし、これは、会社がこの不正を議論するために費やした時間を支払うべきだという意味ではありません。
  9. これらのルールの観点からコミュニケーションが受け入れられない場合は、プロジェクト管理者に書面で通知する必要があります。
  10. タブー語彙は、自分の考えを明確に提示するためにのみ使用できます。 タブー語彙は許可されていません:

    • その使用が前の9点に違反する場合。
    • 前の9つのポイントの内容に対するあなたの態度を表現するため。




そして今、絶対に真剣に。



普遍的および普遍的なアプリケーションを持つルールがあります。 これらは、刑法および民法、安全規則などです。これらの規則を順守することで、ある種のトラブルを回避できる場合がありますが、これらの規則は決して成功を収める方法に関する指示ではありません。



金持ちを早く得る方法に関する本や心理学コースもあります。 しかし、これを真剣に受け止めている人はほとんどいません。 プロジェクトの成功または私生活での成功を保証する、真剣に取られた規則や指示はありません。



これは、プラクティスとは異なるコーディング標準(SCRUM、Continuous Integration、Code Reviewなど)を真剣に受け止めるべきではないということですか? まったくありません。 しかし、ITの慣行はどれも普遍的ではないことを理解する必要があります。 プロジェクトの効率性を確実に向上させる方法はありません。 マネージャーと主要な開発者の蓄積された経験、直感、プロ意識だけが、特定の状況で正しい決定を下すのに役立ちます。 そうでなければ、私たちの職業はそれほど難しくなく、面白​​くないでしょう。



一部のマネージャーが単体テストを使用する必要性について話し、美しい図でこれを主張すると、バグのコストは、このバグがこのプロジェクトまたはこの会社から実行されたプロジェクトの開発のどの段階に指数関数的に依存することを確信します 私は単体テストに対して何もしません。 ただし、それらを使用するかどうか、およびそれらを実装する方法に関する決定は、このプロジェクトの詳細に基づいて行う必要があります。 以下は、決定する前に回答する必要がある質問の不完全なリストです。







何かを切る必要がある場合は、aを探しています。 しかし、Iがあり、それをうまく使用する方法を知っていれば、これは私が走ってカットするものを探すという意味ではありません。 同様に、プログラミングのルール/プラクティスを使用します。 練習の良いコマンドがあれば、それがどこでも適用されることを要求しません。



All Articles