タグ付けされた質問 「code-reuse」

新しいソフトウェアを作成するための既存のコードの使用。

6
継承を使用してコードを再利用する場合、再利用の利点を飲み込むのが難しいと思いませんか?
私は約8年間コーディングを行ってきましたが、継承は柔軟性が高すぎるため、作成したコードと完全に混同されることがあります。最も簡単な例は次のとおりです。 abstract class AClass { protected void method1() { if(check()) { do1(); } else { do2(); } } protected abstract void do1(); protected abstract void do2(); } クラスの目的は、do1()とdo2()を実装してさらにロジックを実行できるようにすることですが、method1()をオーバーロードすることを決定すると、状況はすぐに複雑になります。 私は戦略パターンでのみコードを見つけます。コードは継承を通じてよく再利用されます。ほとんどの場合、基本クラスの設計者はそのサブクラスを非常によく知っており、その継承は完全にオプションです。 IoHandlerの4つのクラスによって継承されるクラスがあり、サーバーサイド、クライアントサイド、エッジサーバー、オリジンサーバーのサブクラスであり、私を狂わせ始めています。私はいつもコードのリファクタリングをしていました。うまくいくと思うアイデアを思いついたのですが、うまくいかなかったのです。人間の脳は一度に7つの情報しか保持できないと言われています。

8
ホイールの再発明とは何を意味しますか?
以下のシナリオは、あなたの本の中で「車輪の再発明」として数えられますか? ソリューションは存在しますが、使用したい言語ではありません。既存のソリューションは、使用したい言語とクリーンで慣用的な方法でインターフェースすることができません。 原則として、既存のライブラリーに大幅な変更を加えて目的の機能を実行させることができますが、最初からやり直す方がおそらく簡単だと思います。 あなたが書いているものは、すでに行われているものと同じ1行の説明ですが、異なるニッチをターゲットにしています。たとえば、問題は以前に何十億回も解決された可能性がありますが、大規模なデータセットでは効率が悪く、コードは大規模なデータセットでうまく機能します。

4
再利用可能なオブジェクトの抽象メソッドとインスタンス変数
再利用できるように手直ししているJavaコードがかなりあります。問題は、プロジェクト固有の部分が多く、アプリケーションプロジェクトとコードベースプロジェクト間の結合のレベルが高くなることです。 抽象メソッドの使用を実装するクラスを使用して子クラスからリソースを取得する以下の状況と、インスタンス変数を宣言するだけの状況と比較してください。 抽象メソッド: public abstract class SuperBaseClass { public abstract int getNumberOne(); public abstract String getStringOne(); public abstract String getStringTwo(); public printStuff() { Log.i("IntAndTwoStrings", String.format("%i %s and %s", getNumberOne(), getStringOne(), getStringTwo())); } } public class ReusedAppClass extends SuperBaseClass { public int getNumberOne() { return 1; } public String getStringOne() { …

4
均質なコードを抽出し、チームの共通コードを構築するためのアドバイス/アプローチ
私はカリフォルニア州で働いています。私の意見では、プログラミングチームは実際には「チーム」ではありません。通常、アプリケーション/システムのライフサイクル全体を通じてプロジェクトに単独で取り組んでいるからです。 最終的には、多くの開発者が「車輪を再発明」しています...私たちの大多数が同じOracle DBで作業しているにもかかわらず、独自のデータレイヤーを作成しています...独自のセキュリティスタッフを作成しています...オン。 私は従業員の考え方を変えることができず、チームプロセスの変更に関して現実的な野心はありません...しかし、私の目標は、少なくとも共通の建物を構築するために、チームをもう少し連携させることですすべての定型機能に使用できるブロック片。 明らかな利点は、すべてのユーザーが共通の部分に精通している場合、テストとサポートがはるかに保守可能であり、他の誰かがすでに行ったものと同じリポジトリを作成していない場合、本番までの時間が短縮され、より良いソリューションの提供に焦点を当てることができます私たちのアプリが解決しなければならない特有の問題に...など 私は合唱団に説教していると確信しています。 コツは、国家が変化を好まないこと、そしてその従業員を好まないことです。マネージャーは、摩擦を避けたいので、そのまま続けたいという理由だけで、しばしば新しいアイデアを無視します。 似たような質問がありますが、私が探しているのは、どのようにして同じような状況に直面したかに関するアドバイスと、「草の根」のような取り組みをより簡単に管理に取り入れる方向へのアドバイスです。 編集:いくつかのことを明確にするために: 私が探している範囲は、州政府機関のITショップです。私はいくつかの部門を超えて調整しようとはしていません。バイクに乗るように頼む前に、人々を補助輪から降ろしてください。 セキュリティはそれほど重要ではありません。ほとんどのアプリケーションは内部にあり、Citrixで配布されているWindowsフォームで記述されています(ほぼ)。ほとんどすべてのアプリケーションがOracleの同じエンタープライズテーブルを使用しています。話す。コラボレーションを妨げるべきではありません。 私は、NuGetフィードをセットアップし、いくつかの定型コードをパッケージ化し、Oracle用のいくつかのリポジトリを作成し、いくつかのメールを送信しましたが、フィードバックはほとんどありませんでした。私のチームの約3分の1がReSharperを使用していて、ヒントを添えて随時メールを送信しています。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.