QA@IT

CakePHPに対しての異様な抵抗感。何がわからないのかわからない(*_*;

4902 PV

先にQiitaで質問しちゃいましたが、ノウハウサイトでした取り下げこちらに転載しました】
大した話ではないのですが、理解できない理由が掴みたいというか、苦手意識を無くしたいという愚痴と、学ぶにあったってどこを理解するべきかわかればアドバイスが頂きたいです。

【前置き、かっ飛ばしておk】
プログラマとしては素人そのもので、小中高とN88BASIC(笑)をせっせことやってきた土台があったせいか、高校の時は(結果的にやらなかったものの)C言語もポインタ(←が重要なんでしょうが)を除いて、マニュアルを読む文にはなんの抵抗もなくサクサク読めた。

就職してから、MS-Access を使うようになり、付け焼き刃ながらそこでVBAをがっつり書いていったこともあり、VBAに関しても全く抵抗はなく、SQLに対しても全くといっていいほど(あくまで入門に限った話ね)抵抗感はありません。
なので鯖にCMSをインストールした際もMySQLに抵抗などなく、当然SQL発行?も、FileMakerを触れるのにもそれほど抵抗感もありません(ITは苦手じゃないよぉ、ってだけの話)。

そして転職してIT企業で働き始めて、PHPを学習しましたが、理解できているかは別としてこれにも全く抵抗がない。
ところが、その後、CakePHPの学習を始めましたがどうにも理解が難しい。MVCが理解できないわけでもなく一つ一つの構文がわからないわけでもないですが…、

【★本題★】
ぶっちゃけいうと、たとえば、

どこから array って発想が出てくるの?
= と -> がよく混同しちゃうのか(これはPHP側やオブジェクト指向の問題かな)
this-> ここらへんとか

…ちょうどいま???が$this−>request−>data[$this->Contact->alias]['confirmed']とか
request data Contact alias confirmed ってどこから出てくるわけ????

自分で0から作ってるのではないので、さっぱりわからないです。
なんとなくPHPを利用はしてるものの、PHPを利用した全く別の言語で、【上記もリファレンスがあって初めて理解が出来るのかな】…って思ってるのですが…理解に苦しみます。

【あとがき】
今は【CakePHP ビューコーディング入門】なるものを読んでいますが、え?入門??という感じで、CakePHPの説明とサイト作成のテクニカルなものが最初から混ざってるのでわかりづらく感じていますが、噂によるとなかなかCakeでは良い入門書がないだとか。(いずれにしても、方針で使っている入門書なので変更は出来ないのですが)

と、だらだらと書いてみましたが、なにかヒントになるようなアドバイスをいただけると幸いです。

alt

回答

CakePHP はぜんぜん触ったことないですが・・・

= と -> がよく混同しちゃうのか

さすがに =-> を混同することはないと思うので =>-> ですよね?

それは普通に構文を覚えるしかないと思います。PHP は異様に日本語のリファレンスが充実しているので、それほど苦にはならないのではないかと。

request data Contact alias confirmed ってどこから出てくるわけ????

メジャーなフレームワークやライブラリなら API リファレンスは充実しているので、

こういうところから情報を調べられるようになればいいと思います。

私は ZendFramework を使いますが、当然すべては記憶できないので API リファレンスを見ることもあります(というか PHP のリファレンスもよく見ます)。

リファレンスから知りたい情報を調べだしてくるのもスキルの1つだと思います。

また、ひたすらコードを書きまくれば、フレームワーク特有の定番のパターンは自然と覚えられます(質問で書かれているコードが定番のパターンなのかどうかはわかりませんが)。

それと、PhpStorm や eclipde のような IDE を使っていれば、クラスやメソッドの定義元をすぐに参照できるので、
わからないものがあれば定義元のドキュメントコメントやコードを読むのもありだと思います(ただ CakePHP は IDE との相性がとても悪い印象ですが・・・)。

あと、他人が書いたコードをツギハギしているだけだと理解が進みにくいように思います。やはりそのフレームワークを使って自分で 1 から書いてみると理解が進むのではないかと思います。


あんまり回答になっていないかもしれないですね・・・ごめんなさいm(_ _)m

編集 履歴 (0)

自己レス(一億人のうちの一人でも参考になれば)
まさに他人の書いたコードを学習してる状況で、とにかくやってかなければならない中で、Mindmapを利用して、わからないところを洗い出して行ったら、違うレイヤーでわからないことが重なっていました。

特に、PHPそのものも付け焼き刃で、ただ概念をある程度理解してると思ったら、厳密に命令とかを把握しないでわかってたつもりでやっているのも理解できない一つの要因でした。

1.少しでも?のところがあったら書き出していった結果、PHPのクラスとオブジェクトの理解が(概念ではなく)、実質的な命令文で理解が浅いことがわかり、再学習中。

編集 履歴 (0)

すみません、返事書き落としてました(_; 本当にごめんなさい

なるほど、リファレンスを見る力っていうのは納得です。
ってか、紹介されたページをみて、ぱっとこれはこのこと言ってるんだなって把握できないITスキル(Cakeとしての)と英語力に愕然しました。

確かにひたすらコードは納得です。
現状としてはIDEを使えない環境ですが、参考にさせていただきます。
確かに現状はつぎはぎ学習と言った感じです。そこが根本的な問題なのかも…

ありがとうございました!!

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。