新しいプログラマーとして、私はまだ学習段階にあるため、アプリケーションを作成することは常に困難でした。
アプリケーションで特定の影響または機能を実現するために、同じ結果を実現する方法は数多くあることを理解しています。
ただし、機能する状態に合わせて純粋に関数を作成する必要があります。つまり、機能する限り、期待どおりに機能するので、問題はありません。
より高いレベルのプログラマーが親切に私に物事の正しい方法を教えてもらえますか?
新しいプログラマーとして、私はまだ学習段階にあるため、アプリケーションを作成することは常に困難でした。
アプリケーションで特定の影響または機能を実現するために、同じ結果を実現する方法は数多くあることを理解しています。
ただし、機能する状態に合わせて純粋に関数を作成する必要があります。つまり、機能する限り、期待どおりに機能するので、問題はありません。
より高いレベルのプログラマーが親切に私に物事の正しい方法を教えてもらえますか?
回答:
あなたが見ることができるいくつかの「既知の」コーディング標準があります。たとえば、組み込みC開発の場合、MISRA Cが良いスタートです。これは素晴らしいC ++コーディング標準です。他の言語で利用できるものはおそらく他にもあります。
結局、その多くの常識と慣行は、経験を積んでそれを得ることができます。もちろん、作業場には独自のコーディング標準があります(少なくともそうでなければなりません)。
私がジュニア開発者に繰り返し言うマントラは、「それを機能させてから、きれいにする」です。あなたのコードは命名のための標準とそうでないものに従うべきです。1つの例外を除いて、フレームワーク設計ガイドラインを使用します。ただし、プライベートメンバーの名前の前には常に_を付けます。それらをはるかに簡単に見つけることができます。
とにかく、ここで2つ目の質問があります。そして、それはあなたが書いたコードを改善する方法です。より良いコーディング方法を学びたい開発者のために必読となるように、私はClean CodeとTriple Pを指摘します。
まだ学習段階にあります。それは永遠に続きます。
あなたの知識を向上させる最良の方法は、他の人のコードから学ぶか、あなたよりも高いプロファイルでペアプログラミングを行うことだと思います。
したがって、次のことを行う必要があります。
ペアレビューまたはプログラミングを積極的に依頼してください。これがあなたに提案されるのを待ってはいけません。ソロデベロッパーの場合は、オンラインレビュープラットフォームを検討してください。
できるだけ多くのコードを読んでください。.NETフレームワークの機能の多くを学ぶ方法です。「ああ、1行のコードでそれができるとは知りませんでした!」他の作者からアイデアを得るのは、小説家のようなものです。どこを見ればいいのかわからない?ランダムなオープンソースプロジェクトを選んで閲覧します。スタンリーキューブリックがインスピレーションを得るためにやったように、ライブラリに行って、どのカテゴリの本でも何でも選びます。
あるキューブリックの伝記では、彼は知識ベースを拡張するために簡単な方法を使用していると説明されています。彼は自分の図書館を訪れ、タイトルを見ることさえせずに、ランダムな情報カテゴリからランダムな本を選択しました。それから彼は自分にそれらの本を読むように強いました。これを行うことにより、スタンレーは彼の心に定期的に新しい領域に拡大するように強いました。
さらにすばやく学習するために、実際のコードを自分のコードまたはサンプルプロジェクトに表示します。覚えるのにとても役立ちます。
学習はおそらく、プログラミングにおいて私たち全員を駆り立てるものです。それは永遠の探求です。
現実的には、他の人のコーディング標準を適切にすることはできません。これは、あなたがおそらく必要としない要件を持っているからです。たとえば、GoogleのC ++スタイルガイドをご覧ください。これは、優れたC ++を生成するためではなく、正確に反対です。これは、CスタイルのひどいC ++を生成して、レガシーCコードと対話できるためです。
優れたコーディング標準を現実的に開発する唯一の方法は、すでにコードベースに長い間取り組んでいる人から継承するか、自分の難しい経験から学ぶことです。
最初に設計し、次にコード化する必要があります。プログラミングに突入するのは悪い習慣です。しかし、それをきれいにしないでください。それは時間の無駄です。
私はいくつかの方向から改善に取り組みます:
プログラミング中に即座にフィードバックを提供するいくつかのツール/プラグインを使用して、コードをより読みやすく、使いやすく、堅牢で、パフォーマンスが高く、正しいものにすることができます。たとえばJavaでは、checkstyle、PMD、Findbugsを使用できます
テストを書く:それだけで開発プロセスが改善され、たとえばリファクタリングによってコードを実験して改善しようとするときにセーフティネットが得られます。
メトリックを使用して結果を確認し、さらにヒントを取得します。たとえば、Javaでは、jdepend、metrics、JavaNCSS、EclEmmaです。
新しいアイデアや情報を入手する
私は個人的にHigh Integrity C ++標準のファンです。
ルールは非常に客観的であり、たとえば命名規則はありません。
3クラス
3.1全般
高い完全CPPルールが3.1.1 以下の順序で、アクセスレベルによって「クラスの定義を整理します:
public
、protected
、private
。(QACPP 2108、2109、2191、2192、2195)オーディエンスの範囲を減らすことによる正当化の順序。クライアントプログラムの設計者は、パブリックメンバーを知る必要があります。潜在的なサブクラスの設計者は、保護されたメンバーについて知る必要があります。そして、クラスの実装者だけがプライベートなメンバーと友達について知る必要があります。
class C // correct access order
{
public: // ...
protected: // ...
private: // ...
};
参照産業強度C ++ A.12、A.13;