Plack::Middleware::PostErrorToSlackというのを書いた.これは何かというと,アプリケーションの例外を自動的にSlackに投げるやつ.
使い方は簡単で,Incoming WebhookのURLを設定するだけ.あとは例外を起こすだけ.
enable "PostErrorToSlack", webhook_url => 'https://hooks.slack.com/services/...';
それで,Slackにこんなのが出る.
誰が,どのブランチで,何をしたら,こういうエラーが出ましたよ,というのがSlackに投稿される.uriメソッド呼びたいけどなんかおかしそう,とか分かる.
これだと寂しいので,😇な絵文字などを設定すると,😇感が出て良くなる.
enable "PostErrorToSlack", webhook_url => 'https://hooks.slack.com/services/...', username => 'errorkun', icon_emoji => ':innocent:';
リモート開発に便利
たとえば,アプリケーションを作っていて,デザイナはリモートにいる,という状況をイメージすると,「なんかエラーが出たんですけど」とか「なんて出てますか」とか会話することがイメージできる.
すぐに声かけてもらえばいいけど,自力で直そうとして失敗したり,声かけるのをためらったりして時間を消費すると,チーム全体の開発効率が下がってしまう.また,エラーエッセージを読むのもむずかしくて,必要な情報をうまくコピペして教えてもらうのも手間が大きい.
エラー出た瞬間に機械的にエンジニアが見れるところに流れると,見かけたエンジニアが「それはこうしたら直るよ」とか「セットアップスクリプトやり直してみて」とか話せるようになって便利.
それとか,作ってる途中の新機能のブランチにおけるエラーが流れてわくわく感が出たりする.
ブログチームで使ってて便利だったのでこのたびオープンソース化した感じです.良い文化な気がするのでご利用ください.
注意点としては,エラー出たときにSlackとの通信が終わるまでレスポンス返せなくなるので,プロダクションで有効にするのはやめたほうがよさそう.
なんでもSlackに流すと便利
はてなではデザイナもコマンドラインでgitを使っていて,GItHub Desktopを勧めてみたりしてるけど,「gitがおかしくなったんですけど」とか「pullしたらコンフリクトしたので助けて」みたいな話をよくまれにしている.
そういうときにも,以前はがんばって結果をコピペしてもらっていたけど,最近これも機械化してコマンドラインでSlackに流せるようにした.
アルバイトの人に簡単なスクリプトを書いてもらって,以下のようなコマンドで,実行結果がすぐにSlackに流れるようにした.
% git status | ./slack
gitがどうなってるかとか,nodeのバージョンが変じゃないかとか,PATHの感じを見たりとか,簡単に見られるようになって便利.
がんばろう感
そういう感じでリモート開発に立ち向かっています,という話でした.会話とか相談もだいたいSlackでやっていて,ビデオつなぎっぱなしにして常時顔を見たりはしてない.
必要に応じて簡単なツールを作って解決しようとしています.がんばろう.