弊社は昨年末からエンジニアの退職が相次いでいるのですが、そういう中でも5月に新たな仲間を迎えることができまして、若手エンジニアの育成やっていくぞ!という気持ちでおります。また、開発部内も製品毎にグループが分かれている関係もあり若干縦割りなので、そういう垣根を取り払って気軽に情報共有していこう!ということで、今回から開発部内で広く勉強会を周知していました。前回までは、いわゆるいつものメンバーでの開催だったのですが、今回からは他のチームからも参加者がきてくれたので、引き続き周知していきたいと思います。
常日頃から思っているのですが、キーワードを知らないと調べることすらできないので、とりあえずキーワードだけでも覚えてもらって、もし興味が出たら調べてみてね、という感じで社内勉強会にて開発時に便利なツールを紹介しました。
無料のツール
fish
fishはshellの1つで、bashよりも使いやすいと感じているので、私はfishを使っています。Macの構成管理(Ansible)でも、fishを使うようにも設定しています。
便利な点は、強力なサジェスト機能だと思います。あとは、プラグインが充実している点。fishermanというプラグイン管理ツールがあり、便利です。
不便な点は、だいたいのツールがbashやzshを前提としてあることが多いので、ツールをインストールしてもそのままでは動かないことがある、とかですかね。そういうのも、プラグインで対応してあるものがあったりはしますが。最近はfishにも最初から対応してあるものが増えてきています。ありがたい。
ドキュメントですが、るびきちさんのfishシェル普及計画のページがありますので、英語が苦手な人でも導入しやすいかと思います。
ghq
ghqはコマンドラインのgitリポジトリの管理ツールです。gitリポジトリのcloneや、すでにclone済みのgitリポジトリのリストを表示することができます。
~/.gitconfig
に設定を追加しておけば、cloneするときのディレクトリが指定できるので、コードが複数のディレクトリに散らばらないので、とてもよいです。ghqはpecoと組み合わせることでとても便利なツールになります。
peco
pecoは、標準出力から受け取った結果をフィルタリングしたり、選択可能にして次のパイプに渡すツールです。なんかうまくいえる言い回しがわかりませんが。pecoはそれ自体ではほぼ何もできないのですが、他のコマンドと組み合わせることで様々なことができます。
私がよく使うのは、
ghq list -p
の結果をpecoで処理してリポジトリのディレクトリに移動git branch
の結果をpecoで処理してチェックアウトgit branch
の結果をpecoで処理してブランチの削除- historyの結果をpecoで処理して再び実行
~/.ssh/config
からHostを抽出したものをpecoで処理してSSH接続ps
の結果をpecoで処理してPIDを取得してkill
などです。これらはfishの関数化してあり、すぐに呼び出すことができるようにしてます。例えば、1のやつとかはselect_repository
という関数にしてあります。
gistで、私が作っているfishの関数があるので、紹介しておきます。
https://gist.github.com/patorash/1de94fcb7efeb847501d2fb7900c2deb
pecoは組み合わせ次第でいろんな使い方ができるので、qiitaとかで情報を追ってみると面白いでしょう。
有料のツール
Dash
Dashは、プログラミング言語や開発ツールのリファレンス・マニュアルをローカルにダウンロードして検索できるツールです。使い方がわからないメソッドの情報を、ググらないでもすぐに調べることができます。
これは実は5〜6年前の社内勉強会のときに、当時パートナーエンジニアとして参加してもらっていた@aguuuさんに教えてもらいました。
Dashのメリットは、なんといってもローカルに保存してあるから検索が高速な点と、ローカルに保存してあるので、ネットが繋がらないところであってもリファレンスを参照できる点です。また、各種IDEやエディタにプラグインがあるので、それを入れておくと、IDEから直でDashを参照できます。例えば、RubyMineでcreate_table
という文字列を選択して、command + shift + D
を押すと、create_table
メソッドの使い方を表示してくれます。
値段は$29.9と、まぁまぁするのですが、メソッドの使い方などを検索する時間を買ったと思えば安いものかなと思います。試してから買えるので、まずは試してみるといいかなと思います。
Alfred
Alfredは、spotlightのさらにすごいやつ、みたいな感じです。キーボードだけでいろんな操作が可能になります。option + space
で呼び出して、命令を入力したり、検索したりなど。計算もできるので電卓を起動したりする手間もありません(まぁそれはspotlightでもできますけど)。
これもまた、Okayama.rbで交流のある@logictktさんに教えてもらったツールです。
簡単なところだと、sleepと打つとスリープしてくれたり、restartと打つと再起動、shutdownと打つとシステム終了など…。サジェストも効くので、slと打つだけでスリープできます。
Alfredはアプリ内課金があり、パワーパックを購入するとさらに様々なことができるようになります。ワークフローといって、Alfredの入力を他のアプリに渡すことができたりします。GUIのpecoみたいな存在ですね。
さきほど紹介したDashのワークフローもあって、Alfredを呼び出してdash create_table
とか打つと、Dashで検索してくれます。わざわざDashのウィンドウを探さなくてもいいので、これもまた便利です。pecoと同様、様々なワークフローがネット上に紹介されているので、調べてみるといいでしょう(実は私もDashくらいしか使ってないですが…)
まとめ
以上、社内勉強会で紹介したツールでした。まぁ実際の発表では、めちゃくちゃザックリとした紹介の仕方だったんですが、その後にチャットワークでさらに情報交換が行われたりしたので、紹介してよかったなと思います。
他にも便利なツールがありましたら教えてください!