teratailの次の記事を見て考えたことを書き残しておきます。
これまでいろいろなツールやサービスを試してみましたが、全面的に完璧な手法はないですね。以下、あくまで個人的な印象です。
-
Evernote --
メモ帳/スクラップブックとしてアイディアをテキストとして蓄えておくにはそれなりに使える。コードの再利用という点では特段の旨味は見当たらない。 -
Dropbox --
いろいろ放り込んでおいて複数のマシン間でやり取りするのは便利だけど、容量制限が面倒。カネを払って制限を撤廃するまでのメリットがあるかと言うと…。 -
Google Drive --
データ共有の面の使い勝手はdropboxとだいたい同じ。容量制限がgmailと共有なのでメールが溜まってくると保存用の空きも無くなっていく。スプレッドシートなどgoogleアプリとの親和性は良くて便利だが、表記の課題に関しては可もなく不可もなくといったところか。 -
GitHub --
よくもわるくもコードの保存と共有に特化したサービス。gitコマンドで更新できるシステムは、馴染めればこの上もなく便利だろうとは思うが、私個人は限定的にしか使いこなせていない。ここは異論があるだろうけど、都度コミットしない情報は管理できないので、思いつき情報の保存と再利用という点では使いやすいとは感じられない。複数人のプロジェクトならともかく、個人で完結しているプロジェクトではそこまでのアドバンテージはないのでは。
どのツールにも今ひとつ物足りないところがあるのが実情で、かといってそれを埋めようと補助ツールを用意したりいろいろプロトコールを考えても、結局自分の中でそれが馴染むことはまれでした。だいたい、そうした「工夫」に時間を取られる事自体なにか本末転倒な印象が拭えませんね。
で? 結論は?
私自身が結局どうしているかといえば、次の2つに集約されました。
Gmailで「保存」
- 広く応用できそうなコーディング上のtipsや有用なウェブサイトの情報など、これはという情報はとりあえず自分のgmailアドレスに向けてメールする。
あとで情報を探す作業は、gmailの背後に控えるgoogle先生が手伝ってくれるので安心です。
日付をつけてプロジェクトごとにローカルに保存
- あるプロジェクトの内容に深く関わる情報やコードは「その場から動かさない」。
試行錯誤の痕跡、捨てたコードやデバッグ用の使い捨て補助スクリプトや検算用データや、それら一切とともに丸ごと保存用HDDに保全しておく。
あまりに普通すぎて、わざわざqiitaで紹介するほどのことかと言われそう。しかし、長年の試行錯誤の結論はこれだと言わざるを得ません。
「この貴重な情報はとっとこう」と思って、下手に「特別な場所」に集めて保存しようとしないことです。それはたいていうまく行きません。なぜかというと、「特別な場所」に移した瞬間、そのメモなりコードなりの背景情報との関係が切れてしまうのです。
タグ付け? 役に立ちません。そのときに良いと思った「タグ」は1週間後の自分が連想する「適切なタグ」とはまず一致しません。
ただ、その情報には必ず「日付」をつけておくことが重要。最終的に「タグ」の代わりになる唯一信頼できる手がかりとして、日付以上のものはありません。日付さえついていれば、結構記憶を辿って当時の思考を再生できるものです。
これを念頭に、コマンドラインですぐできる作業もできるだけスクリプトファイル化してスクリプトファイルを通して実行するよう日頃から心がけておきます。このスクリプトファイル以上に信頼できるログはありません。また、類似の作業を後日改めて行いたいとなったとき、そこからサルベージしてコードを書くことができます。結局これが一番直接的で時間が無駄にならないようです。
我ながらすごくつまらない結論だな。ここまで読んでくれた皆様、申し訳ない。