はじめてのPHPプロフェッショナル開発 を読んだ
書評なんて偉そうなことを言える立場ではございませんが、
購入し本日届いたのでざっと感想のようなものを書いていきます。
全体の感想
- PHP の歴史やPSR の説明、DockerやCI、静的解析ツールの使い方などモダンな開発環境が紹介されている
- Slackの紹介や障害との付き合い方など、実際に開発現場でしか味わえないような内容も書いてあり、親近感が湧く
- 解説がとても丁寧なので、独学の人にも学びやすそうに思える
- 普段業務で使っている内容を公開してくれている感がある(CakePHPやTravis CI, コンテナの運用など)
読んでいて著者の一人がブログでおっしゃられている内容を確実に実現している本だと感じました。
itosho525.hatenablog.com
裏を返せば、
- 完全なる初心者向けではない
- フレームワークの使い方に特化した内容ではない
- 帯に短し襷に長し(失礼だけど、御本人がおっしゃってるので泣)
ということを念頭に置いて読まなくてはなりません。
自分も1~2時間ぐらいでサラッと読むような感じだったので(休みの日にサンプルコード動かしてみます)、自分よりも熟練の人にとっては物足りないかと思います。
では、この本は誰におすすめか。
それはまさに、これから入ってくる新人の方たちです(上から目線ですいません)。
この時期に発売されたのも、会社に入ってくる新人の人たちを狙い撃ちにしている感じがします笑
これは全然悪い意味ではなく、この本を人数分買って渡しておけば、勝手にぐんぐん成長してくれることでしょう。
自分の勝手な妄想ですが、
現状モダンな開発ができている組織
幅広い知識が必要ですが、この本で網羅的に(広く浅く)触れられているので、
必要性・重要性の説明、Hello World ぐらいまでの教育コストが削減できると思います。
モダンな開発にこれから取り組みたい
新人にモダンな開発手法があることを学んでもらい、「これは、最新の本にも書かれていない高等テクニックですか?(煽り)」的な感じで追い立てられることで組織全体にモダンな開発が広がる(妄想強め)
というような効果が期待できると思います。
あと、これはあまり大きな声では言えないことなのですが、
入社した会社が、モダンな開発をできているかどうか? を測る物差し
にもなると思います。
自分の会社は他の会社と比べて開発しやすい環境にあるのか?
ということを知ることができる本です。
もちろん、5年目の人がよんでも10年目の人が読んでも学びはあるでしょう。
しかし、上記のような理由で新人の方にぜひ読んでいただきたい本です。
全国にあるPHPの会社に入社する新入社員の分だけ売れることを願ってやみません。
細かい感想
しっかり読んだ章、さっと読み飛ばした章などばらつきがあるので、
読んだところはしっかりと、飛ばしたところは正直に書いていこうと思います。
また、いくつか自分はこうしてる といった補足情報なども書いていこうと思います。
導入編
Chapter01 進化するPHP
自分はPHP の歴史についてほとんど何も知らなかったのだということを実感させられました。
<?= ?>
のシンタックスは PHP5.4~ なのか、など、興味深い発見がありました。
誰かの伝記を読んでいる感じでした。
Chapter02 PHPのエコシステム
PSR は、名前はよく聞くしなんとなく知っていたけど、
何種類あるのか? などということは恥ずかしながら知らなかったので、とても勉強になりました。
逆にこの辺は、何年かPHP を触っている不勉強な人間が読んだほうが面白いと思います。
Chapter03 PHPをはじめよう
- 03-01 エディタ
- 03-02 DockerでPHPの開発環境を整える
自分はPhpStorm を使ってます。
あと、開発環境構築も丁寧に解説されており、これならあまりつまずくことなく環境構築ができるのではないかと感じました。
Chapter04 モダンPHPの文法と基礎文法
- 04-01 基本的な構文
- 04-02 型と演算
- 04-03 分岐処理
- 04-04 繰り返し処理
- 04-05 関数
- 04-06 PHP7の新機能
不勉強ながら、PHP7 の新機能の中には知らないものもあり、大変勉強になりました。
早速明日から使っていこうと思います。
入門編
Chapter05 チームのための開発環境構築
Chapter06 設計から始める
Chapter07 CakePHPを使ってみよう
Chapter08 質問と回答機能の実装
Chapter09 ユーザー管理機能の実装
Chapter10 テストコードを書く
ごめんなさい。ぜんぶ飛ばしました。
ほとんど見たことあるような内容だったので。。(ここを飛ばしたのがサラッと読めた原因というか理由)
後日動かしてみます!
実践編
Chapter11 チーム開発の現場
自分がこの業界に入ったのは、Rebuild.fm で聞く話にワクワクしたから という部分が大きいわけですが、
この章の話は、その頃の気持ちを思い出させてくれるような生き生きとした内容でした。
Chapter12 Pull Request 駆動によるコードレビュー
- 12-01 コードレビューの必要性
- 12-02 Pull Requestを利用したコードレビューの方法
- 12-03 コードレビューをしてみよう
この章は、チーム開発をしたことがない人に特におすすめだと思います。短いですがw
LGTMの解説があったのは笑いました!
ちなみに、typo 見つけましたw
Chapter13 開発に役立つツール
- 13-01 なぜツールを使うのか
- 13-02 PHP_CodeSniffer:コーディング規約チェックツール
- 13-03 PHPStan: コード解析ツール
このあたりは、必読だと思います。
ちなみに自分はScrutinizer というサービスを使って静的解析をやってます。
PHP_CodeSniffer は、git の pre-commit に入れてます(ときどきめんどくさくて切ってるのは墓まで持っていく内緒のうちの一つです)。
Chapter14 継続的インテグレーション
- 14-01 なぜ継続的インテグレーションが必要なのか
- 14-02 CIツールとは
- 14-03 CIを利用してみる
自分はCircle CI を使ってます。
ただ、せっかくなのでTravis CI も触ってみようと思います。
Chapter15 デプロイの自動化
- 15-01 Webアプリケーションの公開
- 15-02 ソフトウェアのデプロイメントサイクル
- 15-03 デプロイ自動化のメリット
- 15-04 コンテナベースのビルド&デプロイ
- 15-05 コンテナのデプロイサイクル
- 15-06 コンテナのデプロイを楽にするオーケストレーションツール
ここが一番の驚きでした。
普通にコンテナを運用されてるんですね。
もちろん要件にもよりますが、自分はアプリケーションをコンテナで運用した経験がないので、とても興味深かったです。
Ansible + Deployer といったタイプの(なんと呼べばいいのかわからない)話も併記しておいてほしかったなと思います。
そんなこと言ってる時点でもはやモダンではないのかもしれませんが。
発展編
Chapter16 障害と向き合う
- 16-01 障害は突然やってくる
- 16-02 障害についての重要な考え方
- 16-03 障害と向き合うためのツール
自分はこのあたりを利用しています。(いつもお世話になっております) github.com
Chapter17 SQLチューニング
Chapter18 PHPとセキュリティ
このあたりは、Web システムを語る上では外せない という理由で入っているのでしょうが、
それぞれの内容で本が書けるぐらい奥が深い話なので、より詳細な本へのイントロといった内容だと思います。
ただ、書いてある内容は厳選されており、知らないと話にならないような内容なので、とても重要だと思います。
Chapter19 外の世界に飛び出そう
- 19-01 OSSへの貢献
- 19-02 最新情報のキャッチアップ
- 19-03 更にその先へ
いやー。いいこと書いてありますね。
自分は最近全く登壇できていない(というか、勉強会にも行っていない)ので、一度初心にかえろうと思います。
ということで、ざっとではありますが、感想を書かせていただきました。
明日出社したら、早速新人教育の担当に渡してみようと思います。
すべての新人PHPer がこの本を手に取り、素敵なスタートダッシュを切れることを願ってやみません。