Page 1
2017年の 開発に
Emacsで勝つ
PHP development in Emacs, 2017
2017-08-19 NEEC Kamata #opendevcon Open Developers Conference 2017 Tokyo
公開日:
by USAMI Kenta@tadsan
に東京都大田区の日本工学院専門学校 蒲田キャンパスで開催された『Open Developers Conference 2017 Tokyo』でライトニングトーク(5分)として発表しました。
PHP development in Emacs, 2017
2017-08-19 NEEC Kamata #opendevcon Open Developers Conference 2017 Tokyo
はじめに言っておく
Photoshop
PhpStorm
PhpStorm先生はお前の先輩よりもPHPに詳しい
PhpStorm先生は俺よりもずっとPHPに詳しい
(僕が使ってるのはPHPだからPHPの話をするけど、あなたの使ってる[ピー]言語も例外ではない)
僕の仕事=同僚をPhpStormに改宗させること
しょーもないヒューマンエラーを静的解析の力で捻じ伏せること
精度の高い静的解析と型推論
それに裏打ちされた、入力補完(メソッド/プロパティ)、定義ジャンプ、未定義検出、型エラー検出、リファクタリング、etc, etc...
いまどきテキストエディタでIDEに対抗しようとすることは、竹槍で戦闘機に対抗しようとすることに等しい
では、なぜEmacsを利用するのか
Emacs=環境
(誇張ではない)
エディタの機能=ただの関数
標準機能すら上書きできる
標準機能を置換するべんりパッケージいろいろある
[ピー]よりもずっとはやい!
(Vimよりは遅いかも…)
ともあれ高機能なエディタは好きな機能を組み合せて構築できるフレームワークのようなもの
php-mode.el
今も開発してるから入れてくれ頼む
phpunit.el
PHPUnitを簡単に実行できる
psysh.el
PHPのREPLを実行できる
選択範囲のコードを実行したりできる
TRAMP
sshのファイルを直接編集できる
Magit
Gitインターフェイス
エディタ内でgit blameできる
magit-find-file
リポジトリ内の絞り込み検索
php-eldoc
PHPの標準関数の引数が表示できる
標準関数ごときでぐぐってはいけない
smartchr.el
キーを連打すると入力文字列が入れ変る
flycheck
文法チェックやLintの非同期実行
チェッカーを独自実装できる
Projectile
プロジェクト管理ツール
プロジェクト固有のマイナーモード
pixiv-dev.el
GitHubに置いてあるよ
べんりコマンドとか
社内用のLintツールとか
弱点
いちいち通信が発生するので、めちゃくちゃ遅い
PhpStorm先生に学ぶ
保存したファイルを(S)FTPで勝手に送ってくれるやつ
https://github.com/zonuexe/emacs-auto-deployment
まとめ
素のエディタは竹槍
勝つには
A. IDEが必要ないほどPHPの仕様に詳しくなる
俺が人間静的解析器だ
B. いろんなツールやパッケージを組み合せて必要な機能を実現していく
しかし道は険しい
最終的には快適な開発環境で、バグ起こしにくい開発を実現させることが目的
やっていく気持ち
最後にお願い
EmacsでのPHP開発で困ってることを共有してほしい
続きはWebで
@tadsan
https://github.com/zonuexe/emacs-php-development
関連リンクがありません。
