問題
開発の仕事に限った話ではないけど、いろいろと作業を進めていく際に、ちょっとしたメモを取ったり、コードの切れ端をコピペして一部分を変更したり、ちょっとの間覚えておかなくてはいけないURLをコピペしたりします。そして時が経ち、あの時にメモしたあの情報、どこだっけ?ってなることがたまにある。
ここ数年はNotepad++を使ってメモってました。Notepad++だとデフォルト設定で「名無しのファイル」も全部セーブしてくれるんで、失くしてしまうことはあまりなかったです。それでもマシーンが変わったりしたらすべて無くなってしまいます。OneDriveにメモファイルを置いて、自動で同期させる方法も試しましたが定着しませんでした。あと、OneDriveって更新履歴残ってるのかな?どちらにしろGitに比べると使い勝手が面倒です。
発端
長年、GitHubはプライベートレポジトリは有料でしたが、つい先日そのポリシーが180度変わって無料になりました(わーい!)。これって地味にすごいことです。コード=資産=価値です。コードが集まることは価値が集まることです。今までは秘密で開発中のすごいソフトウェアのコードをGitHubに置くには有料プランを使うしかなかったのが、無料で(ある程度)安全に保存・マネージ出来るようになったのです。話はそれましたが、じゃぁ早速プライベートレポジトリを何かに使ってみようと考えた時に、あまり公にはしたくない(出来ない)情報を多々含む場合がある開発メモをGitHubのプライベートレポジトリで管理しようと思い立ったわけです。
VSCode
エディターはNotepad++を使ってましたが、開発メモとなるとやはり開発に近いVSCodeが向いているなと思い、ここらでスイッチしようと思い立ちました。特に、VSCodeがマークダウンを表示してくれる点は、コードの切れ端の保存には向いています、というかそれ以外ないでしょってぐらいの親和性があります。Notepad++は単なるテキストエディターですから、文字の強調なども出来ませんし。
要求
ということで、こんなこと出来たらな~っと思ってました
- 変更を自動的に保存してくれる
- レポジトリに変更内容を簡単にPush出来る
- 開発メモを編集するVSCodeのインスタンスは目的が分かりやすいように色・テーマを変える
- ファイル名を年月単位で割り当てる(できれば自動化)
プライベートレポジトリの作成
こんな感じで「worklog」という名前のプライベートレポジトリを作って見ました。「Private」という見出しタグが見えます。
VSCodeのワークスペース設定
作成したプライベートレポジトリのルートフォルダーに、<適当な名前>.code-workspace
という名前のjson
ファイルを作成します。このワークスペースファイルには、このワークスペースのみに適用される設定を記述できます。
ファイルの変更を自動的に保存するように設定しました。
以下が設定完了したワークスペースファイルです。
- ファイルの自動保存は毎秒
- 色・テーマ設定は適当に白っぽいものをチョイス。(普段の開発はダークテーマなんで)
- Git でコミットしたら自動的にPushもするようにした。通常のコードではやらないけど、メモならCommitの意志は中央レポジトリへの保存の意思と同じなので。
そもそもメモに履歴は必要なのか?
これは考え方、やり方によっては必要ない。徒然なるままにメモっていけばいいだけだし、今までもそうしてきた。しかし、そういうメモって後で見返した時「正しい情報」が見つけづらいんですよね。コードの切れ端とかも試行錯誤をするので、上手く動作しないコードなんかも残ってたりして、検索で複数キーワードがヒットしてもどれが正しいのか分からなくなる。じゃぁファイル1つでやって、時々白紙に戻すのもありかもしれないが、そうすると検索が面倒。過去のコミットも探索しなくちゃいけない。なので毎月ぐらいの頻度でファイルがメモがたまっていくのは自分的にはバランスが良い。
ということで、今後は出来るだけメモる情報の質も向上させていこうと思う。Gitレポジトリのおかげで過去の履歴にはいくらでも戻れるわけだから紛失のリスクは少ない。
次にやること(やるかもしれないこと)
ファイル名を年月単位で割り当てる(できれば自動化)は今回は見送りで。VSCodeの拡張を書いて、自分なりのコマンドか何等かのイベントで新規ファイルを自動生成する、というのがおそらく適切な方法だと思う。ただ、新規ファイルを手動で作成するコストがひくいので動機が沸かない。
まとめ
開発メモのマネージメント周りのワークフローとツールをちょっと変更してみることにした。GitHubのプライベートレポジトリとVSCodeの柔軟さにありがとうと言いたい。