使うフレームワークはCakePHPだ。よって、言語はPHPと言う事になる。
実際に作業に入る前に、俺の考えを少しだけ、説明したいと思う。
以前までWebアプリはPerl(当時はバージョン4)で開発していたが、CGIという仕組み上、どうしても納得行くレスポンスが取れず、デバグもやりにくかった。しかしPHP(当時はバージョン3)が登場し、一気にPHPでの開発にシフトした俺だが、今ではむしろフレームワークを使うことによる余計なプロセスが、個人的にPerlをやっていた時代よりWebサーバに負担をかけているのを自覚し始めている。
※1個のクエリで済むところを、20個ほどのクエリが走っているときもある
要するにフレームワークは開発者のエゴでしかないわけだ。
- O/Rマッピングで多様なDBと接続!
- ビジネスロジックとビューの完全分離!
個人的には時代を考慮した結果、人間にタスクが割り当てられない状態で開発するのが良いと考え、プロシージャルじゃなければなんでもいいわけだ。しかしそれがフレームワークと直結しているとは思っていない。
これに関しては、ゲーム開発を経験したことがある人はご理解いただけると思う。
メモリの使い方に関する思想など、正直、ゲーム開発とWeb開発は正反対といってよい。Webはメモリをじゃぶじゃぶ使いすぎる。さらにApacheの勉強が足りない人が意外に大勢いることが分かった(もちろん俺だって勉強中だ)。
ゲームはハードとソフトの超連結と言う事に対し、Webはとにかく何でも祖結合!!まさに逆だ。
そんな中、俺がCakePHPという、ただ”個人的に”面白く、ただ素早く開発でき、ただ流行っているから、というシロモノを選んだ理由だが、まず仕事で多人数で開発する案件が発生と言う部分と、独りよがりな思想で喰っていけるほど自信がなかったと言う事があげられる。
だったらsymfonyでもCodeIgniterでもなんでもいいじゃん!といわれそうだが、実はこれらのフレームワークは1年以上かけて調査をしてある。大体以下のMVCフレームワークといわれるPHP製のものは試してある。
- symfony
- CakePHP
- CodeIgniter
- Ethna
- Maple
- Zend Framework
- その他
それまでは業務でsymfony(バージョン0.9前後)を使っていたが、この時期のsymfonyは大規模向けと決めている。ちなみにSNSは大規模とは思わない。つまり、SNS以上のWebシステムを開発する機会なんぞそれほど多くないわけで、そうなるとWeb開発でsymfonyを使う機会はほとんどなく、もし使うとしても、それは開発者の好みでしかないのではないか、と思う。
だから俺の好みである(非常にバタくさい)CakePHPを今は使っている。
英語と同じで、誰もが英語を話せると、後から英語を勉強する人は追いつかない。突然ロシア語が必要になる可能性は非常に薄いが、そのときロシア語が話せるとヒーローではないか。
当時PostgreSQLが大流行していたときに、俺はあえてMySQLを選択した。そのとき先輩に言った台詞が「めったにないかもしれませんが、もしMySQLの話が来たときに分かる人がいないとまずいと思うので、俺はMySQlやります。PostgreSQLに関してはみんなに任せます。」と。
それが許される現場だったので、俺はそれ以来MySQLをずっとやっている。PostgreSQLは一切手を出さなくなった。
なので、俺にとってフレームワークとは、O/Rマッパーが必要ないわけだ。何しろMySQL専用で作るから。もちろん、それが許される現場に今はいるので、これが可能になっている。
そもそもWebアプリをDB違う環境に入れなおすことなんてあるのか?普通はないだろう。少なくとも俺の経験上、1回あるかないか位だ。 これも俺の脳内では立派なタスクとしてのフレームワークとして成り立っている。
もちろん俺の考えをまねする必要なんか全くないし、むしろ反論していただいてもかまわない。
でも、本当にO/Rマッパーはサーバに負荷をかけすぎるし、「そもそも論」になってしまうが、ストレージエンジンをInnoDBにしたMySQLをメインに使い、後のこまごましたものはSQLiteで代用すればいいのではないか?とも思うことが多々ある。
まぁこれらの思想が強めに出てしまっているのは自覚はしているわけで、その理由を他人のせいにするとしたら、PHPに意見を持っている開発者との会話と言う事になる。「CakePHPですか?大丈夫なんですか?」と聞いてくる。大丈夫とは何のことだ?Webサービスであなたの言うように大丈夫なものなんかあるのか?と逆に聞いてみたい。そして回答を得たい。
そこらへん、経験と思想と予測なども含め、何を言われても俺はCakePHPで開発をすることにした。他に適した物があればそれもいいだろう。だが、まだ俺は他に出会えてない。
というわけで、CakePHP嫌いもCakePHP好きも、今回はjQuery関連の話なので、毛嫌いせず適当にあしらってくれ。
余談は終わり。
まだつづく。
facebook
twitter
google+
fb share