Skip to content

2017年のPHP開発にEmacsで勝つ

公開日:

東京都大田区日本工学院専門学校 蒲田キャンパスで開催された『Open Developers Conference 2017 Tokyo』でライトニングトーク(5分)として発表しました。

Download PDF

スライドテキスト

Page 1

2017年の 開発に

Emacsで勝つ

PHP development in Emacs, 2017

2017-08-19 NEEC Kamata #opendevcon Open Developers Conference 2017 Tokyo

Page 2

お前誰よ

  • うさみけんた (@tadsan) / Zonu.EXE
  • GitHub/Packagistでは id: zonuexe
  • ピクシブ株式会社でひたすらPHPやってる p(ixi)v
  • フレームワークなき道にフレームを作るおしごと
  • Qiitaに記事を書いたり変なコメントしてるよ
  • 最近やってること
  • 万難が排されつつあるのでPHP7 移行
  • えいやえいやとテスト書いたり直したりしてる

Page 3

開発してるもの

  • PsySH (PHP) - PR/機能追加
  • whoops! (PHP) - PR/機能改善
  • php-mode.el (Emacs Lisp) - PR/機能追加/改善
  • composer.el (Emacs Lisp) - 開発者(オーナー)
  • psysh.el (Emacs Lisp) - 開発者(オーナー)
  • phpunit.el (Emacs Lisp) - 共同メンテナ
  • こまかいのいろいろ

Page 4

はじめに言っておく

Page 5

Photoshop

Page 6

PhpStorm

Page 7

PhpStorm先生はお前の先輩よりもPHPに詳しい

Page 8

PhpStorm先生は俺よりもずっとPHPに詳しい

Page 9

(僕が使ってるのはPHPだからPHPの話をするけど、あなたの使ってる[ピー]言語も例外ではない)

Page 10

僕の仕事=同僚をPhpStormに改宗させること

Page 11

しょーもないヒューマンエラーを静的解析の力で捻じ伏せること

Page 12

精度の高い静的解析と型推論

Page 13

それに裏打ちされた、入力補完(メソッド/プロパティ)、定義ジャンプ、未定義検出、型エラー検出、リファクタリング、etc, etc...

Page 14

いまどきテキストエディタでIDEに対抗しようとすることは、竹槍で戦闘機に対抗しようとすることに等しい

Page 15

では、なぜEmacsを利用するのか

Page 16

Emacs=環境

Page 17

(誇張ではない)

Page 18

エディタの機能=ただの関数

Page 19

標準機能すら上書きできる

Page 20

標準機能を置換するべんりパッケージいろいろある

Page 21

[ピー]よりもずっとはやい!

Page 22

(Vimよりは遅いかも…)

Page 23

ともあれ高機能なエディタは好きな機能を組み合せて構築できるフレームワークのようなもの

Page 24

Page 25

当時紹介したもの (1)

php-mode.el

今も開発してるから入れてくれ頼む

phpunit.el

PHPUnitを簡単に実行できる

psysh.el

PHPのREPLを実行できる

選択範囲のコードを実行したりできる

Page 26

当時紹介したもの (2)

TRAMP

sshのファイルを直接編集できる

Magit

Gitインターフェイス

エディタ内でgit blameできる

magit-find-file

リポジトリ内の絞り込み検索

Page 27

当時紹介したもの (3)

php-eldoc

PHPの標準関数の引数が表示できる

標準関数ごときでぐぐってはいけない

smartchr.el

キーを連打すると入力文字列が入れ変る

Page 28

そのほかべんりなもの

flycheck

文法チェックやLintの非同期実行

チェッカーを独自実装できる

Projectile

プロジェクト管理ツール

Page 29

プロジェクト固有のマイナーモード

pixiv-dev.el

GitHubに置いてあるよ

べんりコマンドとか

社内用のLintツールとか

Page 30

弱点

Page 31

いちいち通信が発生するので、めちゃくちゃ遅い

Page 32

PhpStorm先生に学ぶ

Page 33

automatic deployment

保存したファイルを(S)FTPで勝手に送ってくれるやつ

Page 34

https://github.com/zonuexe/emacs-auto-deployment

Page 35

まとめ

Page 36

素のエディタは竹槍

Page 37

勝つには

Page 38

A. IDEが必要ないほどPHPの仕様に詳しくなる

Page 39

俺が人間静的解析器だ

Page 40

B. いろんなツールやパッケージを組み合せて必要な機能を実現していく

Page 41

しかし道は険しい

Page 42

最終的には快適な開発環境で、バグ起こしにくい開発を実現させることが目的

Page 43

やっていく気持ち

Page 44

最後にお願い

Page 45

EmacsでのPHP開発で困ってることを共有してほしい

Page 46

続きはWebで

@tadsan

https://github.com/zonuexe/emacs-php-development