84

オブジェクト指向プログラミングのスキルを向上させるための良いチャレンジは何ですか?

このアンケートの背後にある考え方は、どの演習が OOP の学習に役立つかというアイデアを提供することです。

この課題は、特定のライブラリをほとんどまたはまったく使用する必要がないか、最も一般的なライブラリのみを必要とするかのいずれかで、可能な限り言語にとらわれないようにする必要があります。回答ごとに 1 つの課題のみを含めるようにして、投票がその課題のみのメリットに対応するようにします。必要なスキルのレベルと、それが有用なエクササイズである理由も示されているとよいでしょう。

課題の解決策は、「方法...」の質問への回答として投稿し、ここからリンクすることができます。

例えば:

  • 課題 - 後入れ先出しスタックを実装する
  • スキルレベル - 初心者
  • 理論的根拠 - オブジェクトを参照する方法の経験を与える
4

8 に答える 8

49

オブジェクト指向デザインでスキルを構築することは、役に立つかもしれない無料の本です。

説明は次のとおりです。

「この本の目的は、オブジェクト指向デザインの面白くて適度に複雑な一連の演習を提供することで、初心者のデザイナーを支援することです。この本は、マネージャーがオブジェクト指向ソフトウェア開発のプロセスにある程度の快適さを身に付けるのにも役立ちます。ビルドは些細なことよりも一歩進んだものであり、慎重な検討と設計が必要になります。さらに、アプリケーションは本質的にレクリエーションであるため、興味深く魅力的です。この本を使用すると、読者はプロジェクトの締め切り前にオブジェクト指向デザインのプロセスと成果物を調べることができます。良いデザインは不可能に見えるようにする。」

于 2009-05-13T09:38:29.780 に答える
15

やりがいのあるプログラムを最初から作成します。何人かの人(約5人、それは実行可能であるはずです)にそれを使用してもらうようにしてください。変更要求に応答します。

プログラムの設計を適応させます。小さく始めて、それが成長するのを見てください。この成長を管理します。これは難しいです。また、バグを修正し、時間をかけて維持する必要があります。これは私にとって非常に貴重な教訓でした。

于 2008-09-17T19:40:19.863 に答える
9

課題: 選択した Web サイト/サービス API のラッパーを、選択した言語で作成します。これはまだ存在していません (例: C# で作成されたZenDesk APIラッパー)。他のユーザーが使用できるように、ラッパーをオープン ソースとしてリリースします。

スキルレベル: 初級者から中級者

理由: サード パーティの Web サービス API を意味のあるオブジェクト/クラスのセットに外挿し、選択した言語でその API を簡単に再利用する方法を学習するため。

于 2008-09-12T23:07:56.880 に答える
4

基本を学んだ後は、「Gang of four」デザイン パターンの本を読んでください。

http://www.amazon.com/Design-Patterns-Object-Oriented-Addison-Wesley-Professional/dp/0201633612/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1221488916&sr=8-1

これは古典的であり、OO を使用して一般的なコーディングの問題に対する洗練されたソリューションを設計する方法を理解したいコーダーにとって必読です。

于 2008-09-15T14:31:32.417 に答える
3

手続き型で記述されたコード片を取り、それを OOP ベースのソリューションに変換してみてください。その過程で、リファクタリングとデザイン パターンに関する本を参照してください。私の友人は、まさにこの方法でオブジェクト指向の概念を理解する上で大きな一歩を踏み出すことができました。何でもそうですが、これは誰にとってもうまくいくとは限りません。

于 2008-09-17T13:57:29.140 に答える
2

私は、CRC カードが優れた OO 設計を学び、教え、構築するのに非常に効果的であることを発見しました。

于 2008-09-17T14:21:16.043 に答える
1

確かに、「ゼロから始める」割り当てよりはアクセスしにくいですが、継承を使用しないか、継承をあまり使用しない既存のコードをリファクタリングして、継承をより活用することは良い挑戦です。リファクタリングのプロセスによって、oop の多くの利点と落とし穴が明らかになります。これは、私の最近のプロジェクトで確実に得られたものです。また、自分でオブジェクト指向設計を作成した過去のプロジェクトよりも、概念をよりよく理解するようになりました。

于 2008-09-12T22:54:16.990 に答える
0

与えられたタスクは「OOP」であることとはほとんど関係がなく、それはあなたがそれをどのように評価するかにかかっています。

リファクタリングの本の第3章を見て、ソリューションに悪いコードの臭いがないことを確認します。または、もっと重要なことは、当てはまるものを調べてください。

最も重要なのは、セッターとゲッターの存在を監視することです(クラスの値を操作していて、クラスに独自の値を操作するように依頼していないことを示します)。または、リスコフの置換原則を適用せずに「拡張」を使用します。それ。

于 2008-09-16T21:06:00.977 に答える