oinume journal

Scratchpad of what I learned

2014年に使ってみた技術

新年明けましておめでとうございます。2014年内に書き上げるはずの記事がずっと下書きのまま眠ってしまっていた... 2014年は細かいものを含めるといろいろ新しいものを使い始めたのでそのまとめ。

Ansible

Chefがあまり好きではないのでAnsibleを今やっているプロジェクトで入れてみた。

  • DSLを覚えなくてはいけないのはどちらも一緒
  • Ansibleの方が仕組みがシンプルでPlaybookに書いた順に実行されるのでわかりやすい
  • Dynamic Inventory便利
  • AnsibleはYAMLなのでロジックをゴリゴリ書くのには向いていない
    • Chefはその点Rubyのコードなのでなんでもできる

という感じでどっちもどっちだなという印象。個人的にはChefのようにコードが実行される方がフレキシブルでいいと思っているので、Fabric + Cuisineも試してみたい。

Packer

Vagrantで使うイメージファイルを作るのに使った。便利。時雨堂のリポジトリがとても参考になった。

awscli

便利すぎ。AWSのドキュメントは情報量が多すぎて読むのがつらいんだけど、代わりにこのツールのドキュメントを読むとAWSで何ができるのかが大体把握できるので( ・∀・)イイ!!

Go

Cをちょっと今風にした言語。言語仕様としてはJava 1.2ぐらいのレベルのもので正直扱いづらい。ただ、あえて言語仕様をシンプルにしていて、読みやすさを重視しているというのは大規模開発には向いているのでは?と思って導入してみた。今めちゃくちゃ勢いあるし。

導入してよかったなと思う点は、

  • 静的型付け言語なので安心してリファクタリングできる
  • 半年ごとにバージョンアップするしで着実に進化はしている
  • go getなどのツールが充実してる

つらいところは

  • ベストプラクティスがわからないことが多い
  • Webアプリケーションフレームワークやパッケージ管理が乱立し過ぎていて選択が難しい
  • 他の言語で当たり前のようにできることができなかったりする

というところかなぁ。ブログにもちょいちょい小技を書いているのでよかったらどうぞ。

percol, peco

開発環境回りではこれが一番効果があった気がする。サーバーサイドのエンジニアだとターミナルという黒い謎の画面を見て怪しげなコマンドをたくさん打たなくてはいけないんだけど、そのコマンドの履歴の検索とか絞り込みが画期的にやりやすくなる。最初はpercol使ってたんだけど、pecoの方がバイナリもあって楽にインストールできるので乗り換えた。あとはzsh関連のよさ気なヤツを入れてみた。その辺の話はここで。

tmux, tmuxinator

3年前まではscreenを使っていて、その後はMacのiTermで複数タブでしのいでいたんだけどターミナル環境見直しの一環でtmuxを導入してみた。詳しくはターミナル環境を見直す(3) - tmux編を見てもらえればと。

tmuxinatorは

$ mux start sample

ってやるとこんな感じのYAMLの設定ファイルに書いた内容でtmuxのwindowがバババーンと立ち上がるのがすごい便利。

Angular.js

ちょっとした自分向けのツールで使ってみた。あまりJavaScriptが得意ではない自分としてはすごく簡単にdata bindingできるので純粋に便利だなぁと思ったけど、大きめのアプリをAngularで実装しようと思うと覚えることが多くてツラい印象。「こういう時どうするんだっけ?」っていうのをイチイチググらないとAngular way がわからなくてつらい感じ。

Atom

最近はIntelliJで開発することが多いんだけど、ちょっとしたテキストの修正にはGitHub製のAtomを使ってる。

  • Markdownのプレビューがデフォルトでできる
  • CoffeeScriptで拡張できる

のがメリットかなぁ。試しに突然の死ジェネレータのパッケージを作ってみたりしたのと、Qiitaにこんなのを書いたりした。

入門Ansible

入門Ansible