私は、OOPの概念を既存のチームメンバーに紹介するための、efficient辱としても抜け落ちない効率的な方法を探していますか?私のチームメイトはオブジェクト指向言語に慣れていません。私たちは長い間C ++ / C#を行ってきたので、テクノロジー自体はよく知られています。
しかし、私は周りを見回し、努力の大きな注入なしで(主にコードレビューの形で)、私たちが作り出しているのはクラス内にあるCコードです。いくつか例を挙げると、単一の責任原則、抽象化、結合を最小限に抑える試みはほとんど使用されていません。コンストラクターはないが、インスタンス化されるたびにmemsetを0にするクラスを見てきました。
しかし、私がOOPを立ち上げるたびに、誰もがうなずき、私が話していることを正確に知っているように見えます。概念を知ることは良いことですが、実際の作業の提供に関しては、私たち(他の人よりも)を適用するのは非常に困難です。
コードレビューは非常に役立ちましたが、コードレビューの問題は、事実の後にのみ発生することです。そのため、一部の人にとっては、書き直されたコード(ほとんどはリファクタリングですが、多くの時間がかかります)になります。また、コードレビューは、チーム全体ではなく、個々のエンジニアにのみフィードバックを提供します。
私は、プレゼンテーション(またはシリーズ)を行うというアイデアをいじり、OOPを、より良く記述でき、リファクタリングできる既存のコードの例とともに再び表示しようとしています。誰ももう所有していないいくつかの本当に古いプロジェクトを使うことができたので、少なくともその部分は微妙な問題ではないはずです。ただし、これは機能しますか?私が言ったように、ほとんどの人は長い間C ++をやっているので、a)彼らはそこに座って、なぜ彼らがすでに知っていることを言っているのかを考えているか、b)彼らは実際にそれをin辱として取るかもしれません数十年ではないとしても、長年やってきた仕事をどうやってやるのかわからないと伝えます。
コードレビューよりも幅広い聴衆に到達するが、同時に罰の講義のように感じない別のアプローチはありますか?
私は、完全に設計されたコードの理想的な理想を持っている大学の新鮮な子供ではありません。誰にも期待していません。私がこれを書いている理由は、紙の上にまともな高レベルのデザインを実際に持っている人のレビューをしたからです。ただし、クラスを想像する場合:A-> B-> C-> D、コードB、CおよびDはすべてほぼ同じパブリックインターフェイスを実装し、B / Cには1つのライナー関数があるため、最上位のクラスAは絶対に実行します主に4つのmongoメソッドでのすべての作業(メモリ管理、文字列解析、セットアップネゴシエーションなど)、およびすべての意図と目的のために、ほとんど直接Dを呼び出します。
更新:私は技術リーダー(この役職で6か月)であり、グループマネージャーを完全にサポートしています。私たちは非常に成熟した製品に取り組んでおり、メンテナンスコストは間違いなく知られています。