• ベストアンサー

効率よくアプリケーションを作るには

趣味でプログラミングを勉強しています。(現在は主にC#) 文法やオブジェクト指向の基本的な考え方等は理解したつもりです。 しかしながら、どのクラスがどのクラスのインスタンスを持つべきなのか、と言ったような構造的な設計をするにはどうしたら良いか分からず悩んでいます。 特にGUIアプリケーションで、ある程度複雑なものを作ろうとすると、すぐにスパゲティコードになってしまいます。 そこで、参考になるようなWebサイト・本などがあれば、教示いただけたらなと思い質問させてもらいました。 その他今までに使ったことのある言語は ・C ・C++ ・Java ・VB などです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • jjk65536
  • ベストアンサー率59% (66/111)
回答No.3

ネットは整理されてない情報が多いので、やはり良書を読むのがいいんじゃないかと思います。 ということで、いままで読んだ中でコード美化に役立った本を挙げます。 ・リファクタリング プログラムの体質改善テクニック(No.2さん指摘の本) ・Effective C++ 日本語版 ・オブジェクト指向における再利用のためのデザインパターン あとは、学生さんでお金がないということなので、図書館などを積極的に利用されてはいかがでしょう。 これらを参考にコーディングしても、なおスパゲティコードになる部分があるとしたら そうとう特殊なケースだと思うので、それを個別にここで質問するほうがいいと思います。

stragemax
質問者

お礼

回答ありがとうございます。 本は買う物とばかり思っていたので、図書館は盲点でした。 本日早速足を運んでみたところ、jjk65536さんに挙げていただいた本を(一つですが)見つけることができました。読んでこれは使えそうだと思ったら購入に踏み切ろうと思います。 コーディングに難点が発生したらまたその都度質問したいと思います。ありがとうございました。

その他の回答 (2)

  • not_ace
  • ベストアンサー率52% (35/67)
回答No.2

趣味でやってらっしゃるということは特に時間的制約はないわけですよね? であれば、作成したコードをリファクタリングしてはいかがでしょうか? 自分でスパゲッティになっているとわかっているということは、おぼろげながら本来こういう構造にしたいという理想が頭の中にあるのだと思います。 自分の作成したコードの機能配置やクラス構造を見直すのを繰り返していけば作成前からそういうことを考えられるようになるのではないでしょうか?

stragemax
質問者

お礼

回答ありがとうございます。 やはり繰り返し何度もコーディングしては見直す、というのが早道なのでしょうか。 私の質問の意図としては、ソフトウェアの設計には先人達が築いたデザインパターンのようなものがすでにあって、本やWebなんかにまとめてあるのかなと思ったところがあるのです。 何分学生でお金も無いもので、効果の高いものが欲しいな考えて質問しました。

回答No.1

> 文法や文法やオブジェクト指向の基本的な考え方等は理解したつもりです。 にもかかわらず > どのクラスがどのクラスのインスタンスを持つべきなのか、と言ったような構造的な設計をするにはどうしたら良いか分からず悩んでいます。 なのであれば、オブジェクト指向の基本的な考え方が理解できていないのでしょうね。 「何をするか」だけでなく、それを「誰(クラス/インスタンスがやるか」が整理できていないのですよきっと。

stragemax
質問者

お礼

回答ありがとうございます。 その通りだと思いました。指摘いただいた通り、誰が何をやるべきなのかが整理出来ていないのです。 もう一度勉強し直してみます。

関連するQ&A