web-dev-qa-db-ja.com

コードスタイルガイドは生産性を向上させますか?

12名のチームは現在、スタイルガイドの実装を検討しています。誰もが順応するにつれて、長期的な生産性の利点が短期的な生産性の損失を上回るかどうかという問題が浮上しました。

スタイルガイドでの経験は何ですか?

また、コードベースがかなり大きいことにも注意してください。コードベース全体をガイドに準拠させるには、おそらくunrustifyなどのコードを実行する必要があります。

11
Lance

私の経験はポジティブでしたifスタイルドキュメントはうまく設計されています。

私はコードを書くときに空白やインデントのルールについて考える必要はなく、標準のオートフォーマットテンプレートをそのまま使用できると思います。コードを読んだときの一貫性に感謝しています。

空白の一貫性よりも重要なのは、通常のパターン/デザイン/名前空間のスタイルです。どこで何かを探すことができるかを知り、それを見つける良いチャンスがあります。または、大規模なコードベースを探索しているときに、予想した場所にない場合は、それが存在しないことを合理的に確認してください。

6
ptyx

はい、いいえ..それは標準に依存します。スタイルガイドは役に立たないと感じていることに注意してください。スタイルガイドは、演算子と変数の間に置く必要のあるスペースの数、またはメンバーをインデントする方法を実際に与えています。

ただし、コーダーが自分のものを知っていると仮定すると、コードファイル内で一貫性を維持するのに十分専門的であり(つまり、個人的な好みのためにすべてを再フォーマットするだけではありません)、思いついたガイドは完全ではありません。本当に有用なものをクレートする。

標準は、コミュニケーションに関する場合に最も貢献します。制限については最悪です。

したがって、プロジェクトのレイアウト方法、メインプロジェクトファイル(.slnまたはmakefileなど)の場所、エントリポイントの場所、およびファイルに名前を付けて、誰かが来ないようにできる方法を説明するガイド以前に見たプロジェクトであり、彼らが見つける必要のあるものを探す場所を正確に知っている...それは金の重さに見合う価値があります。

私は、標準的なドキュメントを使用して、プロジェクトを特定の方法でほぼレイアウトしたと述べていました-.slnはディレクトリに含まれていました(つまり、このプロジェクトファイルとコードのサブディレクトリはありませんでした)。コンポーネントを提供するために必要なすべてを含むリリースディレクトリ、コンポーネントの概要を含むreadme.txt、コンポーネントを構築するために必要な特別なもの、およびコンポーネントをデプロイするために必要なことを含むreadme.txt。誰もがこれを知っているときは、それらを言う必要はありませんでした-私はソースリポジトリでシステムエンジニアを指示するだけで、それをすべて自分で展開でき、手持ちは必要なく、すべてが各プロジェクトとの一貫性があるためです。私は別の開発者をプロジェクトに向けることができ、コンポーネントをシステムに組み込んでそれを構築する方法を知っていたので、彼らは非常に迅速に稼働していました。一般的な命名規則)

オープンソースプロジェクトを手に入れ、どこから始めればよいかわからないと思います。コードファイルがショップ全体に散らばっていて、何も役に立たないことを伝えるreadmeがあり、出力のビルド先を見つける方法がありません。 、または構築後の使用方法。

しかし、私は仲間の開発者たちに話しかけて、コードの書き方や、コードの見方や見方を教えてくれませんでした。生産性は高く、私たちは皆この状況に満足していた。


本当にスタイルガイドが必要で、とにかく既存のコードを美容師に通さなければならない場合は、まあ、単に各チェックインの前に美容師にコードを実行して、みんなに好きなスタイルをコーディングさせるのもよいでしょう。

3
gbjbaanb

スタイルガイドが苦痛に値するかどうかに関係なく、ポリシーをどのように施行するかを検討する必要があります。これは、ガイドを学ぶよりも生産性に大きな影響を与えるからです。

C#開発者として、私は StyleCop をコンプライアンスツールとして採用し、そのルールをガイドとして使用することを支持しています。これは、IDEから実行できる静的分析ツールです。これは、ドキュメント/プロジェクトレベルでソースコードを分析し、すべての違反を警告としてリストします。これにより、ビルドが妨げられることはありません。事前にルールを学ぶ必要はありません。

2
Kevin