11:00:32ホームプログラミングプログラミング要約:ThoughtWorksアンソロジーを読めばオブジェクト指向が分かるはじめに作りたかったネトゲを去年の半年を掛けて作って、今はプログラムを毎日書くという生活からは少し遠ざかった。ブログを書く時間が増えるかもしれない。テスト段階のネトゲだからテストプレイをしてみつけたバグは直している。それも先月の一ヶ月間を使ってだいぶ減らすことができた。ここ三日間ぐらいはかなり安定していて直す箇所がかなり減ってきている。当然ながら、ネトゲ開発に終わりはない。プログラム面ではOKでもデザインやモーションなど無限にやることはある。不具合なく、負荷も低いというところまではいけて、ある程度個人的には満足している。半年もネトゲを作っていたらプログラミング自体にも興味が湧いてきて勉強している。ネットで調べていたら気になった書籍があった。それが「ThoughtWorksアンソロジー」という本で、早速借りてきた。電子版しか売ってないから実物が見たくてね。そこに有名な五章というのがあってそれを実践すれば自然とオブジェクト指向が身につくという話だ。それはなんなのか?ThoughtWorksアンソロジーの5章まとめ以下引用、個人的メモ。1.1つのメソッドにつきインデントは1階層までにすること2.else句を使用しないこと3.すべてのプリミティブ型と文字列型をラップすること4.1行につきドットは1つまでにすること5.名前を省略しないこと6.すべてのエンティティを小さくすること(1クラス50行、(ステップ)以内、1パッケージ10クラス以内)7.1つのクラスにつき、インスタンス変数は2つまでにすること8.ファーストクラスコレクションを使用すること9.Getter,Setter,プロパティを使用しないことオブジェクト指向が分からないのは、classの書き方が分からないという意味ではないオブジェクト指向を教えたがる人はclassだのnewだのの使い方やカプセル化の話をしたがる。それはそうなんだが、オブジェクト指向が知りたい人、もしくは分からない人というのはそういうことじゃないと思う。やってクラス分けをするのかというところだ。classを作ってnewをすると動くぞ!は入門書を読めばわかる。それから一歩二歩踏み込んだところが分からないのだ。そのオブジェクト指向はネットの記事で教えられるものではない。実践も必要だしちゃんと分かるように教えるには数百ページに及ぶ説明が必要で、書籍を1つ読んだとしてもまだまだ理解できるものではない。なんとなく分かったつもりになるだけで実践してもうまくできないだろう。上のアンソロジーのことを実践して、とにかくシンプルに「小分け」にしてやっていけば自ずと意味が分かってくるだろうと思う。いう私もネトゲを一本ゴリ押しで作ってから勉強してるから偉そうなことはいえないが、作りながらも「これはおかしいな」と思いながら書いていたから今勉強しているところだがめちゃくちゃ理解は早くなっている。話はしたが、それだけでもまだ意味がわからないと思う。問題はclassやnewやカプセル化や継承や、そのあたりのことをなんとなくわかったあと何を勉強するかだが、これにはデザインパターンという将棋でいうところの定跡がある。Firstデザインパターン」という本が有名だ。ちなみにこれも一緒に借りてきた。古い本で2005年発売らしい。こっちまだ新品がアマゾンに売っているみたいだ。借りて読んでみてから良さそうなら買っておきたいと思っている。オブジェクト指向のやばさ半年間かけて一人でネトゲを作っていたからいろいろ分かることがあるが、オブジェクト指向というかプログラムはやばい。何がやばいのかというと、どこに変数を書いても基本的には「動いてしまう」ことがやばいのだ。publicにしたら動くよという当たり前の話なんだが、ガバガバでも作れてしまう。「それはもっとうまいやり方があるよ」とそのうちAIが書き直してくれる可能性もあるのだが、今のエディタでは無理だ。補完されるぐらいだ(かなり便利だが)。いうことで、今後の人生で何かアプリを作ることもあるだろうから、半年かけて間違い続けたオブジェクト指向を1から勉強して今後の人生に役立てたいと思っている。まとめclassやnewの書き方は将棋でいうところの駒の動かし方にすぎない。勝つためには定跡が必要で、それがデザインパターンというやつだ。1つ1つ覚えていくしかなさそうだ。追記UML入門という本を読んでオブジェクト指向を理解しようするのも1つの手段かもしれない。