---
layout: post
title: 昔作ったツールを手直ししてる
categories: js
---
無職ゆえ就活中ですが、生きていくにはお金も必要なのでアルバイトをしています。6年前も無職期間があって、半年ほどお世話になった会社でまた働いています。そこで俄かに信じがたい光景を目にするのであった！

なんてことはない。自分が作った業務を円滑にするためのツールがまだ使われていたのです。以下経緯。

1. 2009年にSinatra + SQLiteなWebのツールを作りHerokuでホスティング
1. 就職したからバイト辞める
1. HerokuがSQLiteからPostgresに移行する
1. 元バイト仲間に連絡「まだ使ってる？」「使ってる」
1. 趣味で契約していたLinodeを新たなホスティング先にする
1. 2012年、Linodeの支払いをやめたくなる
1. バイト仲間に連絡「まだ使ってる？」「使ってる」「…」
1. Sinatra + Postgres(ActiveRecord)に改修し再度Herokuでホスティング
1. バイト仲間に連絡「できたよ」「CRM導入するつもり」「（ようやくお役御免だな）」
1. 2015年、絶賛稼働中のツールを目撃
1. 改修を依頼される

さて、今回はWebの諸々を担当するアルバイトをしています。仕事の合間にそのツールを改修するように頼まれました。改修内容のほとんどはフロントエンド部分になるので、ざっと確認がてらファイルを見ていくと2012年の香りがしました。

* Bootstrap v2と相まってジャングルなHaml
* 最近書いていないので、解読に時間がかかるCoffeeScript
* 古いjQueryとPlugin
* Gruntfileとなぜか残っているGuardfile
* いつものSinatra

機能追加ついでに少し近代化させましょうということで

* Bootstrap v3でジャングルなHaml
* CoffeeScriptはbabelを使ってes6に書き直す
* jQueryやPluginも使うけど、Bacon.jsも使う
* Gulpに移行するし、途中でBrowserify導入した
* いつものSinatra（触らない)

Bootstrap使えばHamlじゃなくてもコードはジャングルになるし、Sinatraは他に乗り換える必要性が感じられずいい感じです。

チャレンジングなのはBacon.jsとBrowserifyでしょうか。今回の改修はDrag&Dropで受け付けたファイルをどうにかしたり、サーバーには残さないけど、localStorageでCRUDするなどフロント側の操作が増える感じです。jQueryでもいいけど、これを機にBacon.jsでFRPを理解する一歩になればと思い挑戦しました。現在、なんとなくわかってきたような。1クリックの処理が少なければjQueryの方が楽ですが、データ連動して表示を更新して入力の不備に応じて通知を出すような処理になるとBacon.jsのありがたみがわかってきます。

Browserifyは公式ドキュメントに圧倒されて敬遠していましたが、npmで管理してrequireできると楽だと思いやってみました。結構悩んでいたのですが、わかりやすいGistを読んだおかげでなんとかなりました。

<script src="https://gist.github.com/danharper/3ca2273125f500429945.js"></script>

他にはRubyのSassからLibSass(SassC)に乗り換えました。VimのSyntasticで文法チェックする時間が気にならないぐらい早くなり快適です。

現実に解決する必要がある課題に対しては俄然燃えるというか挑戦しがいがあるし、吸収も早くなるなというのが実感です。

そんな感じでバイトライフをエンジョイしている無職からでした。早く就職しなければ。
