![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
趣味でプログラミングを勉強しています。(現在は主にC#)
文法やオブジェクト指向の基本的な考え方等は理解したつもりです。
しかしながら、どのクラスがどのクラスのインスタンスを持つべきなのか、と言ったような構造的な設計をするにはどうしたら良いか分からず悩んでいます。
特にGUIアプリケーションで、ある程度複雑なものを作ろうとすると、すぐにスパゲティコードになってしまいます。
そこで、参考になるようなWebサイト・本などがあれば、教示いただけたらなと思い質問させてもらいました。
その他今までに使ったことのある言語は
・C
・C++
・Java
・VB
などです。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
ネットは整理されてない情報が多いので、やはり良書を読むのがいいんじゃないかと思います。
ということで、いままで読んだ中でコード美化に役立った本を挙げます。
・リファクタリング プログラムの体質改善テクニック(No.2さん指摘の本)
・Effective C++ 日本語版
・オブジェクト指向における再利用のためのデザインパターン
あとは、学生さんでお金がないということなので、図書館などを積極的に利用されてはいかがでしょう。
これらを参考にコーディングしても、なおスパゲティコードになる部分があるとしたら
そうとう特殊なケースだと思うので、それを個別にここで質問するほうがいいと思います。
回答ありがとうございます。
本は買う物とばかり思っていたので、図書館は盲点でした。
本日早速足を運んでみたところ、jjk65536さんに挙げていただいた本を(一つですが)見つけることができました。読んでこれは使えそうだと思ったら購入に踏み切ろうと思います。
コーディングに難点が発生したらまたその都度質問したいと思います。ありがとうございました。
No.2
- 回答日時:
趣味でやってらっしゃるということは特に時間的制約はないわけですよね?
であれば、作成したコードをリファクタリングしてはいかがでしょうか?
自分でスパゲッティになっているとわかっているということは、おぼろげながら本来こういう構造にしたいという理想が頭の中にあるのだと思います。
自分の作成したコードの機能配置やクラス構造を見直すのを繰り返していけば作成前からそういうことを考えられるようになるのではないでしょうか?
回答ありがとうございます。
やはり繰り返し何度もコーディングしては見直す、というのが早道なのでしょうか。
私の質問の意図としては、ソフトウェアの設計には先人達が築いたデザインパターンのようなものがすでにあって、本やWebなんかにまとめてあるのかなと思ったところがあるのです。
何分学生でお金も無いもので、効果の高いものが欲しいな考えて質問しました。
No.1
- 回答日時:
> 文法や文法やオブジェクト指向の基本的な考え方等は理解したつもりです。
にもかかわらず
> どのクラスがどのクラスのインスタンスを持つべきなのか、と言ったような構造的な設計をするにはどうしたら良いか分からず悩んでいます。
なのであれば、オブジェクト指向の基本的な考え方が理解できていないのでしょうね。
「何をするか」だけでなく、それを「誰(クラス/インスタンスがやるか」が整理できていないのですよきっと。
回答ありがとうございます。
その通りだと思いました。指摘いただいた通り、誰が何をやるべきなのかが整理出来ていないのです。
もう一度勉強し直してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- その他(自然科学) 科学技術計算の仕事について 2 2023/02/04 18:09
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/05/21 02:41
- Java オブジェクト指向プログラミングの実践本を紹介してください 3 2022/09/19 04:56
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- その他(プログラミング・Web制作) 次に、楽天のアジャイル就活に参加して、1日で内定を獲得できる。私は大企業に就職できる? 2 2022/04/17 13:38
- 高校 テスト勉強について 中間テストの結果がかえってきたのですがあまりよくありませんでした。 現代の国語と 2 2023/06/05 00:46
- 哲学 日本語は論理表現にふさわしくないか の問題です 4 2022/06/25 03:56
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
インスタンス参照でアクセスで...
-
変数名の付け方
-
private static という変数の修飾
-
複数の変数を宣言する時、同時...
-
変数の参照でエラーが出てしま...
-
VB.NET getとsetの概念がわかり...
-
C#の構造体の開放のしかた
-
javaのクラスの作り方、エラー...
-
C#において、同じインスタンス...
-
C# インスタンスの破棄
-
SQLを連続発行する時の正しい(?...
-
生成したインスタンスを削除す...
-
「インスタンス」の意味をわか...
-
非staticフィールドを参照でき...
-
VC#での24ビットbmp形式での保...
-
マルチスレッド間でデータ交換...
-
文字列を日付に変換でParseExce...
-
フォームの存在をチェックする方法
-
次の日本語の意味を教えて下さい
-
メソッドの引数としてのthisの意味
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
変数名の付け方
-
インスタンス参照でアクセスで...
-
private static という変数の修飾
-
複数の変数を宣言する時、同時...
-
VB.NET getとsetの概念がわかり...
-
生成したインスタンスを削除す...
-
C# インスタンスの破棄
-
C#において、同じインスタンス...
-
「インスタンス」の意味をわか...
-
変数の参照でエラーが出てしま...
-
SQLを連続発行する時の正しい(?...
-
オブジェクト参照がオブジェク...
-
文字列を日付に変換でParseExce...
-
VB6.0で、DLLを動的に参照したい
-
javaのクラスの作り方、エラー...
-
インスタンスを同じ名前で作成...
-
エクセル(複数インスタンス)...
-
フォームの存在をチェックする方法
-
C#「オブジェクト参照が必要で...
-
newしないインスタンス?実体化...
おすすめ情報