しばらく前に、私はC ++で書かれた何かについてのSOの質問をし、代わりに手で問題に答えを得るための、コメントは、私はそれがあることが示された場合でも、私のコーディングスタイル上のすべての大騒ぎWIPのコードの一部そして、ベースケースを実行させたときに、後でクリーンアップするつもりだった。(私は非常に多くの票を集めたので、私はSOの担当者がすでにほぼ最悪であるため、質問を撤回することにしました)
なぜ人々は「あなたは初心者だ、自分で性交をする」という厳しいラインを採用するのだろうと思いました。私は、あたかもJavaであるかのようにC ++を書いていると非難されていました。私が理解できない何か、それでも私を困惑させます。
私は、間隔を置いてではあるが、何年もの間、かなりの数のOOP言語でプログラミングを行ってきました。使用可能なライブラリと、手元のジョブに最適な実行環境の観点から、使用する言語を選択します。私はOOPコードにデザインパターンを採用していますが、パターンの使用は適切であり、オブジェクト指向では賢明であると確信しています。私はOOPツールボックスを理解していますが、コーディングの知恵を示すためにきちんとしたトリックを使用するのではなく、本当に必要だと思うときにのみツールを使用することを選択します。(私が知っているのは一流ではありませんが、n00bレベルでもないと思います)。
1行書く前にコードを設計します。テストを定義するために、特定のクラスの目標と、クラスが順守しなければならないテスト基準をリストします。シーケンス図を作成してコードを書く方が簡単なので、インターフェイスが明らかになった後にテストを書くことにしました。
質問で投稿したコードの一部で、スマートポインターを使用する代わりに、ポインターを使用していることを認めなければなりません。できる限りRAIIを使用しています。適切なRAIIとは、nullpointersに対する保護を意味しますが、徐々に作業を進めます。それは進行中の作業であり、後でクリーンアップするつもりでした。この働き方は強く非難されました。
私の見解では、基本ケースが実行可能な思考方法であるかどうかを確認できるように、最初に実際の例を用意する必要があります。また、ベースケースが証明された後、コードのクリーンアップはアジャイルのリファクタリングフェーズの典型的なことだと思います。私はゆっくりとCxx標準を取得していますが、実稼働コードでまだ習得していない概念を使用するリスクを負うのではなく、理解しているものを使用することを好みます。たまに新しいものを試すこともありますが、通常はその目的のために、私が脇に置いているプレイプロジェクトでやっています。
[編集]質問を始める前に、gnatの提案[1]が検索に表示されなかったことを明確にしたいと思います。ただし、彼の提案は質問の1つの側面をカバーしていますが、彼がリンクした質問は私の質問の核心ではなく、その一部にすぎません。私の質問は、自分のコーディングスタイルに対する応答と、さまざまなコーディングスタイルと(見かけの)レベルのスキルを処理する専門的な側面についてです。SOについての以前の質問と、それが適切な事例としての回答です。[/編集]
質問は次のとおりです。あなたのコーディングスタイルを使用していない人をsc笑するのはなぜですか。
手元にある問題/下位区分は次のとおりです。
- リファクタリングにより後で堅牢になった場合、プロトタイプの状況でエラーが発生しやすいコードを使用するのはなぜプログラミングの悪い習慣になるのでしょうか?
- C ++で書かれたプログラムは、Javaで書かれたようにどのようにできますか?何が悪いプログラムになっているのですか(現在のスタイルの意図と改善する予定の作業を示したと考えていますか?)
- 特定のプログラミングパラダイム(たとえば、OOP / DP)で使用される構造を使用することを選択した場合、どのように悪い専門家になりますか?
int
、実際の長さを追跡するための個別の変数。