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

uzullaがブログ

uzullaがブログです。

Laravelエキスパート養成読本を読みました!

好きなフレームワークはSlim Frameworkのuzullaですこんにちは。

今回Laravelエキスパート養成読本を献本いただき、早速一周よんでみました。そうそうたる著者の皆様に対して、僭越ではありますが感想を書いてみたいとおもいます。

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)



最初に書いておくと、私が一番ハッとなって口をついて出たのは

「artisan…アルチザンって読むんだ…」

でした、読み方が書いてあるのはすばらしいことです(後で恥をかきませんからね!!)。

Laravelはララベルです、皆様宜しくお願いします。

サンプルアプリ豪華二本立て

サンプルアプリが二つも掲載されています!オトクですね!
いやいや、冒頭のHelloworldまでいれれば、三本ですね!w


第一章では環境設定も抜きで?(期間限定ながらも)Laravelをためせるという話だったのですが、残念、本書を発売前にてにいれた私はそれを試す事ができませんでした。環境構築はどうしても鬼門であり、兎に角体験をさせる!というのは良い事だとおもいますので、発売日後にまた是非見てみたいとおもいます!


第二章は簡単なMVCを解説するためのアプリを作成しており、ほとんど一行一行に打たれた豊富なコメント付きのコードは初心者には非常に役立つでしょう。MVCとはこういうものだよ、という解説もついています。
細かいですが、APIをたたくJS(jQuery)のコードで*1紙面の都合から省略されがちなエラーハンドリングがあるのはよかったですね。


第五章にはMVCよりもっと高度なREST API サンプルを書いています、エキスパート感がでてきています。
多少早足ですが、いつか遭遇する様なこと、たとえばミドルウェア(認証)やテスティング、ORMのトランザクションメソッドのまとめ方*2、Traitを用いた設計、エラー時にはどう例外を上げるべきか、等です。

十分に慣れた人は「ふーん、これがLaravelスタイルってヤツか!」とさらっと把握するのに非常に役立つので、この構成は読者層を広げる良いやり方だとおもいます。
ちょっとばかり初心者的には敷居の高かもですが(動作させる為のクライアントもないので)、一歩抜け出す人が参考にできるなとおもいました。

Laravel開発環境構成についての解説

いままでの他のフレームワークとは一風かわっているLaravelのセットアップ方法は勿論参考になります。

ただ、私はまったく問題ないですが、いわゆる「PHPのインストール方法」はありません。LaravelはCLIをつかうことが前提になっているのでこれくらいできないと困る、と言うことなのかもしれません(とはいえググればでてくるのですが)。

まあ、特にWindowsですよね。XAMPPでもPATHを通せばいいわけですが…。LinuxMacじゃないとダメってことはないんですが、画面はコロコロかわるし、スクショが大量に必要だし、まあなんというか昨今の入門系の鬼門ですねこのあたりは…。


(ソフトのインストールなんてありふれた情報だし、紙面を割くべき情報なのか私も悩む所です。本書はあくまでLaravelの入門をめざしたものだと思われ、「PHP入門」の本ではないので、どうこうはないとおもいます。っていうか、WindowsはPATH通すの面倒ですよね、私も人に説明するのが面倒だし、私もWebアプリエンジニア養成読本を書いた時には紙面がたりないので、ウェブ上に資料をかいてリンクを張ってしまったくらいですが… https://github.com/uzulla/how_to_setup_path_on_windows いや、これはほとんど余談か愚痴ですね、すみません)


話変わって、PHP以外にも、gulpなどといったJSのツールもタスクランナーの節で紹介されています。まあ、ちょっと初心者にはよくわからないかもですが、モダンなツールは存在くらいは知っておくべきだとおもいます。

Laravel特有の設計についての解説

Laravelはいくつか特有のスタイルがあり、ファサードIoCコンテナ等です*3

私は昔Laravelを試した時には、ファサードで面食らったので、ショージキあまり好きではありません!w
とはいえ、これがLaravel4のとっつきやすさにつながっているっぽいのはなんとなく理解していました。それらがコード付きで解説されており、どういう物なのか手軽に知れるのは良かったですね!

今他のフレームワークをつかっている人で、Laravelスタイルが腑に落ちるためには重要な情報だと思います。

Laravelの文化、コミュニティ、情報源についての紹介

これからLaravelをつかうか選定するにあたって、これらは重要です。Laravelは今海外においてはどうやら飛ぶ鳥を落とす勢いで人気が急上昇しているフレームワークですが、まだ私の回りにはLaravel使いは少ないのです。

ただ、私は過去にPackagist*4を監視するために https://twitter.com/call_user_func というボットをつくったのですが、そこではとにかくLaravelという単語を非常によく見かけます*5
つまり、日本では(まあ私の周りだけかもですが、本書は和書では初のLaravel本のようです)まだまだこれからでも、海外では凄く盛り上がっているようです。


フレームワークは、書いた物がそれに長期間依存する事になるので、動向や人気は非常に気になりますね。
しかし、海外の「雰囲気」というものはどうにもわかりづらく、Redditなどをつらつらとみていても、「すげー人気がある、コミュニティも多いっぽい(多すぎてよくわからん)、人気すぎるからか、なんか嫌いな人もいるらしい」というのが私の認識でした。

本書にはそういった漠然とした疑問に対して、「Laravelがどこからきたのか、そして今どんな感じなのか、どういう人がかいているのか、どんな所にコミュニティがあるのか、信頼できる情報源も多数あるか」が書いてありました。
これは非常に良い事だと思います。

正直、このあたりはググってもズバリとでてこない情報なので*6、正に価値があるとおもいますね。

あと、大量の情報源のURLが乗っているのも非常に重要です。日本語の情報やコミュニティもちゃんとあるのが安心できますね。*7

まとめ

本気でLaravelをつかうにせよ、つかわないにせよ、今後Laravelや、あるいはLumenなどのLaravel関連FWがもっと普及するかもしれない今、とりあえず読んでおいて損はないのではないでしょうか。「よくわからんけどLaravelがもりあがってるナァ?」と思って居る人(私だ)は、頭からお尻まで読むだけでだいぶ納得できます。勿論このあとでためしてみる予定です(今やってる炎上案件がおわれば…ですが…)


初心者など、自力で学習に不安を覚える方にお伝えしておくと、本書の難易度的にはそれなりに高いです。そうですね、Composerを自力で入れて使える程度のPC能力と、OOPがなんとなく書ける程度のPHP力は必要だとおもいます。
でも、これくらいつかいこなせないと「モダンなPHP!」といえない感じもするので、「簡単!」だけの本をよんでコピペする位なら、あえて挑戦してみるべきだとおもいます。*8


最後に、一番残念な所をあげるとすれば、やはりLaravel 5がメインではない所でしょうか。著者の方々も断腸の思いではと察します。*9

ただ、今あるLaravelのアプリはまだ4でしょうし、今後、4が書けないということはありません。
また、私はこの本で4の実例と、ある程度の5の知識を得ることができましたので、今後5の情報をおいかける良いブースターになったと思います。


最後になりましたが、献本大変ありがとうございました!非常に参考になりましたので、他の人にも紹介したいと思います。

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)


大変蛇足ですが、紙面広告にもあるWebアプリエンジニア養成読本は当方がPHPパートを担当させていただきました、こちらも是非宜しくお願い致します。

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

Webアプリエンジニア養成読本[しくみ、開発、環境構築・運用…全体像を最新知識で最初から! ] (Software Design plus)

こちらからは以上です。

*1:ちょっと古いスタイルであるものの

*2:Laravelお仕着せの構造からのちょっとした脱却?

*3:Laravelだけのスタイルというわけではないのですが

*4:PHPのライブラリレポジトリ

*5:意外かもしれませんが、Yiiもすごい多い

*6:ブログ記事とかだと、ホントか?ってなるので(いや、この書籍が100%本当だ!と私が保障するわけでもないですが、複数人の共著ですからね。)

*7:なかなか日本語の「良い」情報源のURLをあげるのは大変なのです…

*8:どうしてもわからず、ハマったら、LaravelのコミュニティやPHPのコミュニティの方に相談するのもよいのではないでしょうか。Slack(チャット)でコミュニティがあるってのすごいですね、(まあSlackも敷居があるかもしれませんが…)

*9:本当に、これは執筆の難しい所です…