dotfiles をちゃんと管理する話

dotfiles って?

dotfilesというのは先頭にドット(ピリオド、これ -> .)が付いたファイルのことで、LinuxMac などでエディタやシェルの設定ファイルがこの形式になっている。dotfilesには自分が快適に作業するための設定がいろいろ書いてあるので、無くしたくないし、PC を移行したときに簡単に復元したいから、Github などで管理している人が多いと思う。このエントリはその管理方法の話。

これまで

  • とりあえず Github で管理していた
  • 自分のdotfilesがごちゃごちゃしている印象があってもやもやしていた
  • これまでどこかで見聞きした設定を「とりあえず入れてみる」というのを繰り返してきた
  • その結果、自分が今どういう設定をしているのかよくわかっていなかった
  • しかも、あるツールの導入や設定を、なぜ、どうやったのか思い出せない
  • さらにその結果として、新しいツールや設定を取り入れるのが億劫になっていた
  • 自分の環境を快適にするためのモチベーションが低下していた

これはよくない。

どう進めたか

やりたいことを箇条書き

とりあえず、何をしたいか考えて箇条書きにした。思いついたらとりあえず追加していく。 何をどの順番でやるかはあとで、作業する都度考えることにした。

やることリスト · Issue #4 · takatoshiono/dotfiles · GitHub

Github の Pull Request

プルリクベースで進めることにした。 つまり、以下の作業を繰り返す。

  • やりたいことから1つ選ぶ
  • master ブランチから作業用のブランチを切ってプッシュする
  • Github 上でプルリクエストを作る
  • プルリクエストには主に以下のことを書いておく
    • なにをするか(これは必須)
    • それをやるとどうなるか
    • それをやるために何をすればいいか
  • 実際に作業する
  • 作業内容は逐一コミットしておく
  • やりたいことができて、このくらいでいいか、と思ったら master ブランチにマージする

こうすると何がいいか?

  • 何か作業しているときに「あっ、これもやっておきたい」ということがある
  • でも「それは今回のプルリクでやることじゃないし」という理由をつけて、スルーできる
  • 自分が今やりたいことに集中できる
  • 作業がカオスにならない

あれも、これもといって一度にいろんなことをやり出すと、だんだん作業内容がごちゃごちゃしてきてカオスになっていくことがあるけど、それを抑制できる。今やりたいことだけをシンプルにやることができる。そのためにこのような自分ルールを作った。

あと、後で見返したときになにを、なぜ、どうやったか、プルリクをみればわかるというメリットもある。

隙間時間にやる

まとまった時間はなかなか取れないので、隙間時間にちょっとずつやっていた。 例えばこんな感じ。

  • 朝の通勤電車(20分)
  • 会社の始業前(10分)
  • 昼休み(20〜30分)
  • 寝る前の一人の時間(30分)

なにをやったか

具体的にこれまでなにをやったか振り返ってみる。

逆に、やってみたけど採用しなかったことも書いてみる。

まとめ

このやり方はまだ始めたばかりだけど、これまでいい感じでできているのでまとめてみた。以下のようなことがいいなあと思っている。

  • 自分が使っているツール、設定の理解が深まる
  • 開発環境を改善するモチベーションが高くなる
  • 何か設定を変えるとか、新しいツールを使うとか、そういうフットワークが軽くなる
  • 楽しい

我々の仕事はソフトウェアを書いてユーザーに価値を提供することなので、自分の環境ばかり整えていてもしょうがないんだけど、自分が楽しく快適に作業できるようにするのも大事なので、本分を忘れない程度に続けていこうと思う。

Vimテクニックバイブル ?作業効率をカイゼンする150の技

Vimテクニックバイブル ?作業効率をカイゼンする150の技

zshの本 (エッセンシャルソフトウェアガイドブック)

zshの本 (エッセンシャルソフトウェアガイドブック)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)

GitHub実践入門 ~Pull Requestによる開発の変革 (WEB+DB PRESS plus)