前回の「PHPの勉強をはじめました (1)」の続きのエントリーです。よろしければ前回のエントリーも併せてお読みください。その筋を極めている方に参考になる点は無いと思いますが…(^^;
さて、PHPの勉強ですが、正直に言います。昨日と二日前は正直余りやってません。扁桃炎のせいじゃありません。(今も頭が重くて少し熱っぽいのですが) ポンクソフトのWebアーカイブスを発見して掲示板のチュートリアルをやっていたのは良いものの、そもそも掲示板を作ることに対して面白みを感じず積極的に勉強する気になれませんでした。(文字にはすべて目を通しました。得られるものはありました。 ポンクソフトのチュートリアルは非常に優秀です。)
オブジェクト指向のことがやたら気になって仕方がない
初めて見たときから、$this->$varとかなにやら格好良いことをやっていたので気になってました。というか、外注で制作して頂いているソースコードがオブジェクト指向ばりばりだったので凄く感動した覚えがあります。素直に凄い。そして、そのソースコードを私が理解するためにはオブジェクト指向の理解が必要です。正直「5日前にechoから始めた奴が何生意気なこと言っとんじゃ。」と思われるかもしれませんが、とても気になって仕方がない…。というか、functionとどう違うんだろう…。
憧れの格好良い人ってのはみんなオブジェクト指向を積極的に活用しています。これは是非とも理解して一歩近づきたい。(大規模なオープンソースシステムとか)
また、PHPのフレームワーク(CakePHP)を用いたWebサービスの迅速な構築には昔から興味があったので(お金ないし)、クラスやオブジェクト指向とはなんたるかをよく理解する必要があると思います。
しかし、オブジェクト指向を理解するのは難しいとされています。イメージが掴みにくいというか…。というより、完全に解って使っている人は結構少ないとか。文系プログラマには辛いそうです。そのせいか、PHPから始める人が最初にぶつかる壁とも言われています。五日前にやっとforとかforeachが解ったレベルの私が理解できるとは思えない、頭悪いしなあ、けど、気になる。そこに痺れるゥ憧れるゥ!
ああ…、「力量もないくせに背伸びしようとしない。」と先日言ったのは自分です。でもまあ、興味心身の今が飲み込むチャンスかと思うので、ちょっとオブジェクト指向に寄り道したいと思っています。ともかく使いこなせたら格好良いだろうと。
ことの発端は一冊の入門書から
私は「はじめてのPHP言語プログラミング入門」という「はじめての人のためのかんたん PHP + MySQL入門」と同じく3年前に買って放置した本を読んでいたのですが、この本は簡単に言うと横文字大好きな理系本です。前回呼んだ本と同じことを言ってるのに一回りも二回りも難解に説明してくれます。(批判じゃないですよ。念のため(^^;) 「この本…これは…っ!(こいつ…出来るっ!)」と直感しましたが、まさにその通り。前回呼んだ本とはレベルが違いすぎます。読み進めていくうちにはてなマークだらけになりました。
![]() |
はじめてのPHP言語プログラミング入門 大垣 靖男 技術評論社 2005-04 |
そして、突入したのが、「クラスとオブジェクト指向」という項。結構な数を使って解説されています。それまで何とか雰囲気で読み進められていましたが、ここは完全に意味不明です。「コンストラクタ」「デストラクタ」「オブジェクト」「継承」「カプセル化」「インターフェイス」「MCVモデリング」「Final宣言」…何が何だかわからない。日本語使えよって思わず突っ込みたくなる。(繰り返しますが、この本も素晴らしい本です。正確な知識を得られます。私のような初心者にはおすすめしませんが。むしろ入門書と銘打ってる本でクラスとオブジェクトをそれなりに解説している本はあるのでしょうか。)
ちょっとググってみました。結果的に言うと、「オブジェクト指向を知っているのと知らないのでは大違い」ということです。効率が良くなるとか、メンテナンスしやすいとか、便利なライブラリとかクラスがたくさんあるとか、知識の幅が広げられるとか、良いことずくめ。
と、いうわけで
ちょっと、オブジェクト指向の勉強をしてみたいなと思っています。「解れば奇跡」(薄っぺらい奇跡だな)というような具合で。とりあえず、今の知識でやれるだけ(echoならまかせろ!)。背伸びしすぎなのは自覚していますが、多分今だけなので許してください。オブジェクト指向に関しては後ほど、自分なりにまとめます。(解らなくても、解っても) こういう時に思うのですが、やはり一度難しい言語を習得すれば多言語の理解たやすくなるようですね。オブジェクト指向型の言語(C,C++,Java,Ruby,Python等々)を使いこなしている人への認識が変わりました。凄く尊敬します。
何一つ中身の無い記事ですみません。オブジェクト指向に関する優秀な文献をご存じでしたら是非教えてくださいね!


7 つっこみ
俺も最近はオブジェクト指向でPerl書いてるな。
あれってほんとに、どのサイト見ても本を見てもわかりやすく書いていない。
概念はなんとなく理解できても、
「ふーん、で、何が便利なの?」
って思っちゃう。
動物クラスのメソッドがわんわん鳴きますとか、自動車クラスのメンバ変数は色を指定できますよね、とか意味の分からないたとえ話を言われても困ります><
実務で何が便利なのかわかるようにしないと。。
と、思っていた。
からこそ、実務で使われているソースを取り上げて解説とかしたいなー、と思ったり。
「憂鬱なプログラマのためのオブジェクト指向開発講座」がおすすめ。
説明の順番が非常によく考えられているのでスムーズに頭に入ってくる。唐突に「この世のすべてはオブジェクトだ」とつぶやいたりしないし、コンピュータの話をしてるのに急に犬と猫の話をしだしたりしない。というかそういう本をばっさり斬っている。読むとオブジェクト指向の必要性や基本的な概念を理解できる。
クラスを使うメリットはこの本がよかったような
http://phpspot.org/blog/archives/2006/05/phpphpweb.html
>> ぺありん
コメントありがとう!
> 動物クラスのメソッドがわんわん鳴きますとか、自動車クラスのメンバ変数は色を指定できますよね、とか意味の分からないたとえ話を言われても困ります><
この例えはうまいっ!思わず吹いた
> からこそ、実務で使われているソースを取り上げて解説とかしたいなー、と思ったり。
是非是非。
>> chigashiさん
コメントありがとうございます。
> 唐突に「この世のすべてはオブジェクトだ」とつぶやいたりしないし、コンピュータの話をしてるのに急に犬と猫の話をしだしたりしない。
凄く解る気がします笑
本の紹介ありがとうございました。購入を検討してみますね。
技術書は高いからなあ・・・。そろそろ技術書が安く買える新しいビジネスモデルが発明されても良いと思うんですけどね・・・。
>> onukiさん
コメントありがとうございます。
こちらの書籍の購入も検討してみますね・・・。
ジュンク堂が近くにあれば良いのになあ・・・。中身を確認してから買いたい。
都会は本当に良い良いよなあ・・・。ああ羨ましい。
こんばんは。
僕自身、オブジェクト指向については勉強中もいいとこで、こんな偉そうなコメントを書くべきではないと思いますが、書かせてください^^;
まず第一に、ぺありんさんが仰るような、犬クラスを作ってそのクラスがワンワン鳴くなどの説明はとっかかりとしてはいいと思いますが、それで納得したままにしておくと「OOPを分かったつもりのプログラマー」になってしまうので注意が必要です。
掲示板で例えると、手続き型プログラミングでは設計段階で、
・ログにデータを書き込む関数
・ログからデータを読み出す関数
などの関数が出てくると思うのですが、オブジェクト指向なら「ログを操作するクラス」だけで済みます。
別にコードを書く量が減るわけでは無いのですが^^;
「メモリn番地に確保されたX型の値」よりも「変数$hoge」の方が分かり易い
それと同じように、オブジェクト指向というのは生のコンピューターから離れて、人間がやりやすいようにする技術です(人間は抽象的、つまりテキトーに考えることの方が得意ですから)。
「ログのデータ書き込み/読み出しをする関数」を作って組み合わせるより、「ログ操作をするクラス」を使ったほうが話が単純に片付きます。
以下、僕が勉強するときに参考にしたサイトです。
・オブジェクト指向実用講座(http://www.m-fr.net/study/object/index.html)
めんどうな理論よりもコードを書いていくときにどう便利になるのかを解説されています。
・疑り深いあなたのためのオブジェクト指向再入門(http://kmaebashi.com/programmer/object/index.html)
何かでつまづいたら一度読んでおくといいと思います。
随分と偉そうなコメントになってしまいました^^;
僕と同じ高校生がフリーランスで活動されていることはとてもいい刺激になりました。東京でもがんばってくださいー
なお、コメントで挙がっている「憂鬱なプログラマのためのオブジェクト指向開発講座」はhttp://d.hatena.ne.jp/JavaBlack/20080401/p1など、色々なところであまりいい評価を受けていないようです。僕は読んだことが無いので、参考までに。
がると申します。「合わせて読みたい」からたどってきました。
普段は、がるの健忘録 とかいうBlogでのったりしてます。
手前味噌で恐縮なのですが。
オブジェクト指向は、以前
http://www.m-fr.net/study/object/
こんなものを書いた事があります。
全然高尚な事とか書いてないのですが、その分、実用&実例中心にごにょごにょ書いてます。
よかったら覗いてみてください ^^
I was robbed on craigslist by some jerkwad using a wireless line. Mofo was stunned when I got his contact info and came calling lol!
Reverse Number Lookup