2017年のPHP開発にEmacsで勝つ

公開日:

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

Download PDF

スライドテキスト

Page 1

2017の   開発に
  Emacsで勝つ

PHP development in Emacs, 2017

#opendevcon

2017-08-19 NEEC Kamata
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