読者です 読者をやめる 読者になる 読者になる

BASE開発チームブログ

フリーミアムなネットショップ構築サービス BASE( https://thebase.in )の開発チームによるブログです。開発メンバ積極募集中! https://www.wantedly.com/companies/base/projects

2017年にプロが今更PHPを学ぶための本、Webまとめ

BASE CTOの藤川です。

リブセンスさんが運営されている転職ドラフトという転職サイトで、全員のプロフィールを読んでいて薄々気がついていたことに改めて気がつかされたのですが、BASEの方でサーバサイドに使っているメインの技術はCakePHPというフレームワークでありPHPの技術なのですが、

新卒の就職先がRubyを使っていて、今、25〜27歳ぐらいになっている若手エンジニアにPHPの経験がない人が増えている!

という大きな問題にぶちあたりました。我々は転職いただく方の前職については、いくつか期待している流れがあります。決済、EC視点ではEC-cubeなどでPHPを扱っていた会社からの転職組というのが重要な人材供給源だったりするのですが、それ以外に「モバイル、スマホアプリ、最強のUX」というスタートアップ的な視点においては、モダンなスタートアップのサービスに携わっている経験は魅力的です。(別にそれだけで採用したりはしませんが)

つまり第二新卒などの若手エンジニアを採用しようとすると、仕事道具としてPHPを今更学んでいただくところから始めなくてはいけません。

最近、Railsで作られてるマストドンを個人で運営している関係で、がっつりソースコードを見ていますが、ビジネス要求に照らし合わせると、ぶっちゃけRailsもCakePHPもできることはあんまり変わらないわけです。

もちろんRailsは高い生産性を発揮する素晴らしいプロダクトで、作っていて楽しいWAFだとは思いますが、スケールしたシステムにおいて抱えている問題解決の会話において、言語やWAFの重要性は、割とどうでもよくなってくる。

つまり、起きる問題が言語の問題ではなく、アーキテクチャに起因することの方が多いので、日々の問題解決において話している内容は言語の話ではありません。

マストドンがRailsなのも、改めて考えてみれば、丁度10年前のツイッターと同じなわけで、このプロダクトは、N+1問題を抱えたタイムライン型プロダクトとして超勉強になって、あぁこうやってタイムラインは遅延してたのねということが実感できます。

ですが、Twitterのその後が脱Railsをしたことも加えると、成長するサービスにおいてフルスタックなフレームワークが寄与する範囲は多くはないかなと思うわけです。

(それは僕らの問題としてCakePHPにも全く同じことが言えるわけです。つまり僕らは僕らでCakeに依存してはいけないわけですね。やっぱり生産性の高いWAFはどこかで効率性を引き換えに利便性にロックインされてしまうので地味に脱するのは難しいんですよ。)

またクラウドの発達でAWSやGCPなどを素早く扱えることの方が重要性を増してきて、Web開発言語はどこかグルー(糊)としての役割のほうが大きくなってきました。

ということで、我々としては20代の若者に対しては、言語を学ぶことが重要なんじゃなくて、Webをとりまくアーキテクチャをしっかり知っていくことが大切なんだ!という言葉と、メルカリさんだってPHPでしょ?SlackもFacebookもPHPでしょ!?成功するサービスにPHPは少なくないんだよ!というポジショントークを交えながら、「正しいWebエンジニアのあり方」を説くわけです。

そして、その先にある、「じゃあ、2017年の段階で、PHPを学ぶにはどうしたらいいですか?」という質問に答えるための記事がこの記事です。

とりあえず、なにやら最新情報はないものかとTwitterとマストドンに投げてみました。

「うずらさんの資料」とはこれです。

■半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応)(YAPC公式サイトの紹介)

半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情(5.6対応) - YAPC::Asia Tokyo 2014

2014年のYAPCで、PHPネタでベストトーク賞を取るという伝説のプレゼンテーションですね。

その他、教えてもらったURLを貼っておきますね。

まだマストドンのtootの著作権がはっきりしてないので基本URLだけにします。creative commonsなどで再利用権を主張できるようになるといいですね!

■PHP The Right Way

ja.phptherightway.com

■短気なプログラマのためのPHPUnitクックブック https://leanpub.com/grumpy-phpunit-jp

■パーフェクトPHP(書籍)

gihyo.jp

■効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門(書籍)

https://www.amazon.co.jp/%E5%8A%B9%E7%8E%87%E7%9A%84%E3%81%AAWeb%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%AE%E4%BD%9C%E3%82%8A%E6%96%B9-~PHP%E3%81%AB%E3%82%88%E3%82%8B%E3%83%A2%E3%83%80%E3%83%B3%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80-%E5%B0%8F%E5%B7%9D-%E9%9B%84%E5%A4%A7/dp/4774150827

パーフェクトPHPを書かれた小川さんの本

■PHP公式マニュアル。

https://secure.php.net/manual/ja/index.php

ふつうに良い。おおむねこれで足りる。

■PHP公式マニュアル

https://secure.php.net/manual/ja/appendices.php

うずらさん談:「php.netは、付録という名前の本編を全部読んでいただきたい。」

■PHP入門(とほほのWeb)

http://www.tohoho-web.com/php/

■PHP The Wrong Way

http://www.phpthewrongway.com/

うずらさん談:「ひねくれた(?)人なら、the wrong wayもよむべき(?)」

道具としては若干枯れた印象も強いPHPですが、歴史も長い言語なので、それ故にモダンな開発言語で意識されるような「正しく扱うスキル」が求められます。

他にもオススメの本やWeb記事がありましたら、是非はてブで教えてください!