Shinichi Nishikawa's

classのclassを開催していただいて、勉強してきた!!

こんにちは。

「8時間耐久! class の class」というイベントに参加してきました。

先生は、 @yando さん。以前にも8時間耐久CakePHP2勉強会で基礎を叩きこまれてきた!(ちなみに9時間だった!!大阪と福岡でもあるらしい)というイベントでお世話になりましたし、同じくオープンソースカフェで開かれたコードレビューの会でもお世話になりました。

安藤さんは、

という流れの中で、僕の実力と次に覚えるといい内容を教えて頂きました。

というか、スライドごとにでてくる小さな問題とか、完全に僕が分かっていないところを突いてくるなど、僕の頭の中が分かっちゃってるのかな。。

クラスと僕

半年以上前から、クラスの勉強しないと、という意識がありました。
$this->hoge;
$this->moge();
が出てきた途端に、人のソースを読めなくなるという感じで、本を読んでみたりもしていたのですが、習得できずにいました。

今回の講座の優れたところ

関数だけで全てを処理することの弊害(煩雑、長くなる、他と関数名がかぶるかも、メンテできない)を説明した上で、その解決方法としてのclassという視点で始めてくれています。

まず、「こういう機能を関数で書いてみなよ」→「煩雑すぎるでしょ?」→「クラスでやるとこうだよ。使ったほうが100倍いいでしょ?」というながれ。

最後には、「なるほど、それでみんなclassを使っているのだなぁ」と理解できる内容になっていました。ありがとうございます!!

classの勉強をして思ったこと

コードの見やすさ、使い(回し)やすさ、メンテナンスのしやすさについて、今まで意識してできるだけ分かりやすく書いてはいたものの、classを使ったほうが断然よいということが分かりました。

やっぱりリファクタリングをする時や機能追加をするときは自分の書いたコードをはじめから全部読んで、一度自分の頭のメモリいっぱいにすべての関数やその関係などを詰め込んでから、色々試しつつ、みたいなことになっていたのでした。

さらに印象に残ったところ

安藤さんが、

と言っていたのが印象的でした。

「複雑なプログラムが間違いなく動くぜ」というのが偉いのではなく、「複雑な処理も分解して、ひとつひとつ簡単にしていって、普通に理解できるようにできる」のが偉いのですね。

プログラムを書く一歩手前の、人間の仕事の仕方についての理解が、すでに効率的で合理的なことが大事。これが一番大きなインパクトだったかもしれません。

また、後半触れられていた「classを導入することでテストの自動化もできる」というところとも関係するのですが、安藤さんが言っていた「会社のシステムに自分のコードをアップするのとかってある意味超恐怖なわけですよ」というのも本当にその通りで、「有限の能力を持った人間が、自分の脳力の有限さ具合を自覚して、プログラムを利用することですごいことを実現するための方法を確立する」という、プログラム以前の合理化について学びました。

できるプログラマっていうのは、世界との対峙の仕方が違うんですよね。がんばります。

次にやること

これを踏まえて僕が次にやっていくことは以下のことになるかと思います。

安藤さん、本当にありがとうございました!

資料

安藤さんのブログ

「PHP classの教室」を開催しました。(スライド&動画あり)

安藤さんのスライド89枚!

動画



Video streaming by Ustream



Video streaming by Ustream



Video streaming by Ustream



Video streaming by Ustream



Video streaming by Ustream

注意

スライド内部で「プリンス」という言葉がでてきますが、なんのことだかは僕にもよく分からないですw

モバイルバージョンを終了