より良いコーディング慣行を決定する


8

新しいプログラマーとして、私はまだ学習段階にあるため、アプリケーションを作成することは常に困難でした。

アプリケーションで特定の影響または機能を実現するために、同じ結果を実現する方法は数多くあることを理解しています。

ただし、機能する状態に合わせて純粋に関数を作成する必要があります。つまり、機能する限り、期待どおりに機能するので、問題はありません。

より高いレベルのプログラマーが親切に私に物事の正しい方法を教えてもらえますか?



コーディングについてお伺いしたことは承知しておりますが、ソフトウェアエンジニアを構成する要素のごく一部です。要件分析、ユースケース、ソフトウェアアーキテクチャ、設計パターン、詳細設計ドキュメント、自動ユニットテスト、システムテスト、統合テスト、デバッグ、バグ追跡、労力推定、プロジェクト計画、チームワーク、先のとがった上司、無給残業、Mountain Dew について学ぶ...
Mawgはモニカを2015

回答:


4

あなたが見ることができるいくつかの「既知の」コーディング標準があります。たとえば、組み込みC開発の場合、MISRA Cが良いスタートです。これは素晴らしいC ++コーディング標準です。他の言語で利用できるものはおそらく他にもあります。

結局、その多くの常識と慣行は、経験を積んでそれを得ることができます。もちろん、作業場には独自のコーディング標準があります(少なくともそうでなければなりません)。


今、読んでからしばらく経ちますが、MISRAは冗談だと
思い

1
@DeadMG-ジョーク?いいえ。なぜですか。それは特定のニッチを対象としており、そのニッチにいない人には過剰に見えるかもしれません。しかし、安全性が重要な開発の場合、それは非常に良いガイドラインになります。私はチームのコーディング標準を開発しているときにMISRA Cを使用してきましたが、そこからかなりの数のことを取り出しました(しかし、間違いなくすべてではありません。ただし、ここでは非常に包括的なコーディング標準のとして言及しています。
littleadv 2011

読んでからしばらく経っていますので、具体的な例は思い出せません。しかし、私はそれを読んだことを思い出し、何をしているのか、何を言っているのかを知らない人々によって書かれたものだと固く信じています。
DeadMG 2011

@DeadMG-それから、それが何のために設計されているのか、あなたにはわからなかったようです。
littleadv 2011

4

私がジュニア開発者に繰り返し言うマントラは、「それを機能させてから、きれいにする」です。あなたのコードは命名のための標準とそうでないものに従うべきです。1つの例外を除いて、フレームワーク設計ガイドラインを使用します。ただし、プライベートメンバーの名前の前には常に_を付けます。それらをはるかに簡単に見つけることができます。

とにかく、ここで2つ目の質問があります。そして、それはあなたが書いたコードを改善する方法です。より良いコーディング方法を学びたい開発者のために必読となるように、私はClean CodeTriple Pを指摘します。


4

まだ学習段階にあります。それは永遠に続きます。

あなたの知識を向上させる最良の方法は、他の人のコードから学ぶか、あなたよりも高いプロファイルでペアプログラミングを行うことだと思います。

したがって、次のことを行う必要があります。

  • ペアレビューまたはプログラミングを積極的に依頼してください。これがあなたに提案されるのを待ってはいけません。ソロデベロッパーの場合は、オンラインレビュープラットフォームを検討してください

  • できるだけ多くのコードを読んでください。.NETフレームワークの機能の多くを学ぶ方法です。「ああ、1行のコードでそれができるとは知りませんでした!」他の作者からアイデアを得るのは、小説家のようなものです。どこを見ればいいのかわからない?ランダムなオープンソースプロジェクトを選んで閲覧します。スタンリーキューブリックがインスピレーションを得るためにやったようにライブラリに行って、どのカテゴリの本でも何でも選びます。

あるキューブリックの伝記では、彼は知識ベースを拡張するために簡単な方法を使用していると説明されています。彼は自分の図書館を訪れ、タイトルを見ることさえせずに、ランダムな情報カテゴリからランダムな本を選択しました。それから彼は自分にそれらの本を読むように強いました。これを行うことにより、スタンレーは彼の心に定期的に新しい領域に拡大するように強いました。

さらにすばやく学習するために、実際のコードを自分のコードまたはサンプルプロジェクトに表示します。覚えるのにとても役立ちます。

学習はおそらく、プログラミングにおいて私たち全員を駆り立てるものです。それは永遠の探求です。


2

現実的には、他の人のコーディング標準を適切にすることはできません。これは、あなたがおそらく必要としない要件を持っているからです。たとえば、GoogleのC ++スタイルガイドをご覧ください。これは、優れたC ++を生成するためではなく、正確に反対です。これは、CスタイルのひどいC ++を生成して、レガシーCコードと対話できるためです。

優れたコーディング標準を現実的に開発する唯一の方法は、すでにコードベースに長い間取り組んでいる人から継承するか、自分の難しい経験から学ぶことです。

最初に設計し、次にコード化する必要があります。プログラミングに突入するのは悪い習慣です。しかし、それをきれいにしないでください。それは時間の無駄です。


0

いくつかの良い改善方法は次のとおりです。

  • 読書
  • 経験豊富な開発者の権限の下でチームで作業する

より正確にあなたを助けるためにあなたは私たちに多くの情報を与えません...


0

私はいくつかの方向から改善に取り組みます:

プログラミング中に即座にフィードバックを提供するいくつかのツール/プラグインを使用して、コードをより読みやすく、使いやすく、堅牢で、パフォーマンスが高く、正しいものにすることができます。たとえばJavaでは、checkstyle、PMD、Findbugsを使用できます

テストを書く:それだけで開発プロセスが改善され、たとえばリファクタリングによってコードを実験して改善しようとするときにセーフティネットが得られます。

メトリックを使用して結果を確認し、さらにヒントを取得します。たとえば、Javaでは、jdepend、metrics、JavaNCSS、EclEmmaです。

新しいアイデアや情報を入手する

  • 読書
  • コードレビュー
  • ペアプログラミング
  • 他の開発者との話し合い、例えばブラウンバッグミーティング/昼休み
  • ポッドキャストを聴く
  • stackexchangeの投稿を読んでください。

0

私は個人的にHigh Integrity C ++標準のファンです。

ルールは非常に客観的であり、たとえば命名規則はありません。

3クラス

3.1全般

高い完全CPPルールが3.1.1 以下の順序で、アクセスレベルによって「クラスの定義を整理します:publicprotectedprivate。(QACPP 2108、2109、2191、2192、2195)

オーディエンスの範囲を減らすことによる正当化の順序。クライアントプログラムの設計者は、パブリックメンバーを知る必要があります。潜在的なサブクラスの設計者は、保護されたメンバーについて知る必要があります。そして、クラスの実装者だけがプライベートなメンバーと友達について知る必要があります。

class C // correct access order
{
public: // ...
protected: // ...
private: // ...
};

参照産業強度C ++ A.12、A.13;

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