以前質問されたことを数ヶ月後や数年後にまた別の人から聞かれることがあります。些細なことや記憶に残ってることなら問題ないですが、「あの処理は何の API を使うんだっけ?」と思い出せないことも多々あります。ヘルプのサンプルコードや他のだれかが書いたフォーラムから検索できることもありますが、自分で作成したコードは次のためにどこかに残しておきたいものです。
コード書きだとスニペットで記憶を記録しています。スニペット(Snippet)は「断片」「切れ端」という意味で、再利用できる短いプログラムなどのコードを指して呼ばれます。自分が「スニペット」という言葉を聞いたのは Visual Studio 2005 からですが、入社当時はまだ VBA や VB6 を使うことが多かったので、Visual Stduio 2005 のスニペットにコードを追加するのではなく、とにかくテキスト ファイルにコードを書いてファイル名で意味づけする、それを繰り返して貯めてきました。
もう少し効率的なスニペット管理はできないものか、ツールを考えてみます。Web アプリケーションとインストール アプリケーションとで 5 つ挙げてみます。
Web サービス
お手軽なのは Web サービスを利用する方法です。最近は無償の Web サービスがいくつかリリースされていますが、無償利用は良いですが、公開されてしまうので、自分や限定メンバーだけで共有したいときには向きません。たいてい有償版にすれば限定公開が可能になります。
Cacher GistBox
2017年11月22日追記:
GistBox は Cacher とサービス名を変更し、2017年末でサービスを終了するそうです。また、GistBox は Gist のフロントエンドとして利用するサービスでしたが、Gist 依存から脱却した独自サービスとなる模様です。無償プランで公開したスニペットは従来通り Gist との同期も可能です。
GistBox は GitHub で動いている Gist というサービスを便利に使える用にした Web サービスです。GitHub アカウントがあればすぐに始められるのが便利なんですが、GitHub の無料プランだと書いたコードはすべて公開されます。文書は Markdown で記述できるので、コードの説明の見栄えも良くできます。
Qiita
Qiita は日本発祥のプログラマのための技術情報共有サービスです。 プログラミングに関するTips、
インストール型ソフトウェア
インストール型は自分の PC 上で完結するので非公開型になります。一部サービス上にアップロードできるものもあります。
kobito
kobito はソフトウェア開発者のためのMarkdownによる情報記録・共有ソフトで、Qiita 同様に MarkDown 形式で文書が書けます。書いた情報は Qiita にアップロードできます。ただ、コード見栄えが良くなる機能(SyntaxHighlighter)はないので、個人的にはコードを書くよりも技術文書を書くのに向いているかと思い、文書の書きために使っています。
Qiita 用クライアントとしても利用でき、アプリケーションで書いた記事を Qiita にアップロードできますが、現時点では、ローカルに作成した Inbox 記事と Qiita とは同期ができないようです。
Text Snippet Viewer
手前味噌ですみませんが、自作のツールです。テキスト ファイルさえあればスニペットが貯められます。そのテキストファイルをツリー表示して管理するだけのシンプルな機能です。休日に片手間で作ったのですが、現バージョンではタイトルとなるファイル名しか検索できず、フォルダーでカテゴリ分類することしかできません。なのでファイル名とフォルダー名をしっかり考えて管理します。一応、自分の仕事では役立ってます。
応用ですが、データの保存場所を Dropbox や OneDrive などで共有すれば、一応 PC 間で共有ができるようになります。
サーバー設置型
MediaWiki
ナレッジベースの定番中の定番ですが、さまざまな Wiki の中で一番機能が豊富なのは Wikipedia で使われている Mediawiki でしょう。Markdown や SyntaxHighlighter が利用できるエクステンションもあるので、これらを導入すればコード管理向けにもできます。
WordPress
ブログにコードを書いていくのも手です。WordPress はもはや十分な CMS として機能するので、ざっくばらんにブログ記事として書いたり、きちんとカテゴリーやタグを管理し、カスタム投稿タイプなどを組み合わせればそれなりにスニペット管理用サイトを作ることができます。
で、何がいいの?
多くの人にとっては、無償で使える Web サービスである GistBox や Qiita を利用するのが良いでしょう。
自分の場合は今のところスニペットを管理するのは 1 人なので、そうすると定番の Wiki を拡張して自前のサイトで管理するのが自分の理想かと思ってます。Web 上で管理できつつ無償で利用というサービスが欲しい。できればできれば専用のクライアント アプリケーションで管理したい。Mediawiki が最有力だけど、記事の編集が可能なクライアント アプリケーションはまだ見たことがないです。
2017年11月22日修正
当サイトのコードは MediaWiki から WordPress のブログに載せていくように方向転換しました。