2017年 学んでよかったツール/ライブラリ/サービス

ツール/ライブラリ/サービスをまぜこぜして書いていく。

1: Vue

今年前半にSPAを組む機会があり、Vueを使った。SPA ということで vue-cli の webpack-simple をベースに Vue + Vuex + Vue Router あたりを使用した。Vue は学習コスト低めで公式日本語ドキュメントも充実。丁寧に公式ドキュメントを読んで実行すればけっこうやりたいことができる。

案件としてはE2Eテスト環境等を整備できず、その他振り返ってみて保守性が悪かったかもしれない。せめてTypeScriptを使ったらよかったのかもしれないし、規模がある程度大きくなる場合 Angular のほうが適切だったかもしれないという反省がある。

個人的にこのVueまわりを扱ったのはなかなか大きな経験になった。また、一つの値を変更すると連鎖的に他の値が自動的に計算されて表示が変わるのが、ダイナミックで面白い。初めてファイルサーバーを動かしたとき、あるいは初めてcronを動かしたときのような。こういうのを触るのはけっこう楽しい。

あとSPAについての雑感。ドキュメントのマークアップではなくブラウザ上にGUIアプリを再実装するもので、つまりデスクトップアプリやモバイルアプリと同一線上にあると感じた。だからSPAを実装するためにはGUIアプリの知識が必要で、比較的規模も大きくなるのでビルド環境等を整える必要も出てきて、ついでにCSSコンパイル等もいれたくなり、アニメーションについて考え等々。結果的に学習コストがわりとかかる。やっぱり一定線を超える部分は専門の人に頼みたい。

せっかくなのでいくつかアプリを作った。1つ目は筋肉量計算で、身長体重等を入力するとそれっぽく計算してくれる。学習用サンプルとして小さいコードでわかりやすいし、こういうちょっとしたものを作るだけなら1枚の index.html だけで組めるのが気分的にいい。

2つ目は django のフォームセット周りを jQuery で扱いたくないためにつくったサンプル。非SPA想定で、DatePicker は別ライブラリを使用している。

3つ目は Trello のようなドラッグ&ドロップができるカードアプリ。Trello は今もヘビーに使っているサービスで、一度組んでみたかった。そこそこ大変だったもののいちおう完成できた。だいぶぐちゃっとしたコードだけどそれなりに動く。

2: Terraform

今年中盤くらいに触った。役割と機会的にインフラを担当することになり、Terraform を使った。CloudFormation などと厳密に比較はしていないものの、比較的学習コスト低めで使えるのがよかった。環境ごとに tfstate を分けたい、環境ごとに使用する変数を分けたい、微妙に Terraform では対応していない箇所がある等使いこなそうとするとそれなりに面倒なところはあるものの、 wiki や口伝で構成管理されているよりは比較的安心感があった。

なんだかんだでコマンドを実行すると環境が1発で整い、逆にコマンド1発で環境をすべて破壊できる。こういうのを触ると、プログラミングって楽しいものなんだなと思う。

せっかくなので Terraform を使ったリポジトリをつくった。 socks proxy 用インスタンスを建てられる。ついでにVPC + EC2 + RDS + S3 あたりも揃えられる。

GitHub - altnight/terraform-socks-proxy-instance

次点: Circle CI 2.0

今年中盤くらいに Circle CI 2.0 が正式リリースされたのにあわせて、実行速度が上がるとのことで試してみていた。多少実行速度が上がり、 Docker ベースなのでテスト実行コンテナやDBに docker hub 上のイメージを使えるのは便利だった。

ただ個人的には Docker を扱う手間の方が大きい気がしていて、労力に見合っている気がしない。Docker 難しい。

GitHub - altnight/circleci2_test

2018年は

これからかんがえようふわっと