makiです。毎日暑いですね。札幌も十分に暑いですよ?
会社の自席は冷房が直撃するので、IKEAの葉っぱで防御してます。
弊社にはゲーム開発を行っている第1第・2グループの他にその他の事業開発を行う、第3グループというものがあります。表に出せるものだと、シュキーンやgrooonをなどを企画・開発しています。
先日、この第3チームのエンジニアを集めて、モブプロを行いました。
というのも弊社ではフルタイム以上のエンジニアが希望すれば、PhpStormのコマーシャルライセンスを使うことができます。
昨年から導入を始め、最新データによるとエンジニア全体の約半数がPhpStormを使っています。母数にはPHPを書かないUnityやアプリ開発系のエンジニアも入っているので、PHPを書く人だけを母数にするともう少し割合が高くなります。
残り半数はVimやVSCodeなどが多いように思います。PhpStormライセンス配布は希望者のみなので、他のエディタを愛してやまない方の人権は守られています。
前置きが長くなりました。モブプロの様子をご紹介したいと思います。
モブプロはには一般的に2つの役割があると言われています。
- マウスやキーボードを操作してコードを書く ドライバー
- ドライバーに助言する ナビゲーター
今回ドライバーを務めてくれたのは、入社4ヶ月の若者です。ナビゲーターには4人のPHPエンジニアが集まりました。モブプロ対象となるコードはドライバーの現担当プロジェクトで、ナビゲーターも以前担当していたプロジェクトです。ということでチーム事情などのコンテキストは共有されている仲間です。
PHPのフレームワークはLaravel、DBはMySQL、Vagrantで作業マシンにvmを立てて開発をしています。
会議室を1時間とって、ノートパソコンの画面をプロジェクタで投影しながら進めました。
プラグイン編
まず最初に気になったのは、「Laravelのプラグインを入れてる?」でした。
案の定しらないということだったので、以前Qiitaに書いた記事を教えてプラグインを入れてもらいました。
設定を開いてプラグインの探し方・インストール方法を伝えるところからです。
https://qiita.com/makies/items/e13b36c449905b2b46cb
Laravelプラグインを入れて有効にすることで、いろいろ補完が捗ります。
補完されないと「何かがおかしいかも?」と気づくことができます。
日常使っていて便利だと感じるものをざっと挙げるとこんなところでしょうか。実際にはもっとたくさんあります。
- routeからcontrollerやそのメソッドを直接開く
- Facadeクラスのメソッド補完
- Blade補完
合わせてLaravel側にも、ide-helper
を入れておくことを強くおすすめします!
https://github.com/barryvdh/laravel-ide-helper
ショートカット編
公式のショートカット集も合わせて参考にして下さい。
- windows
- https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_phpstorm_windows.pdf
- Mac
- https://pleiades.io/sites/willbrains.jp/keymap/pdf/shortcut_phpstorm_mac.pdf
以下、windows版のショートカットを記載しています。
PhpStormで自動生成できるコードはできるだけ自動生成しよう、自動生成できるコードは人間が書くものではない、というコンセプトのもと、各種ショートカットや機能をお伝えしました。実際、手でイチから書くと間違って書いてしまって直すコストが発生します。書かなくていいものは自動生成して効率よく開発しましょう。
PHPDocのコメント生成
/**[リターン]
コメントを書いてくれます。(メソッドの内容は自分で書く必要があります)
引数の型、戻り値の型がかいてあればそれも合わせて書いてくれます。
Getter・Setter・コンストラクターなどのコードを自動生成
Alt + Insert
逆にコンストラクタを先に書いておいて、メンバー変数の定義をかいてもらうこともできます。
クラスで使うメンバー変数を先に作っておいて、コンストラクタを生成すると、引数をメンバー変数に入れるところまで書いてくれます。
public function のコード生成
"pubf" + Enter
で
public function ()
{
}
を書いてくれます。同様に prof [enter]
、priv [enter]
もあります。
Staticなメソッドを作りたければ、pubsf [enter]
、prosf [enter]
、prisf [enter]
、を使います。
行単位のコメントアウト・解除切り替え
Ctrl + /
行を削除
Ctrl + y
最近開いたファイルを表示
Ctrl + e
データベース編
DBはMySQLを使っているので、PhpStormから接続してデータを見る方法をお伝えしました。
PhpStormには DataGripという単体でも販売されているほどの高機能なデータベースツールが付属しています。MySQLのドライバーはダウンロードする必要がありますが、接続設定画面からワンクリックです。
https://www.jetbrains.com/datagrip/
テーブルのデータをGrid表示したところで、SQLのwhere句だけ書くと表示が絞り込まれる、という機能が便利ですよ、という話をしました。入力時にカラム名も補完されます。
当然フルでSQLを書いて実行することもでき、その場合にもテーブル名やカラム名が補完されるので、とても快適にSQLを書いていくことができます。Laravelを使っているとあまりSQLを書く機会は多くありませんが、PHPエンジニアたるものSQLぐらいかけて一人前、ですよね?
まとめ
このあたりで予定していた1時間が終了してしまいました。本当は他にもたくさん便利機能があるのですが、ここまで紹介しただけでも全部使いこなせば、今までよりはかなり効率が上がるのではないかと思います。
今回はLaravel前提で話を進めました。ゲーム開発チームにも共通して使えるPhpStormのtipsもたくさんあると思っています。今後はこの活動を社内にも広げて全社的に開発効率を上げていければと思っています。
インフィニットループではPhpStormを使って開発したいエンジニアを札幌・仙台で募集しています。
採用情報はこちらをご覧ください。夏休み見学会も開催します。
https://www.infiniteloop.co.jp/recruitment/