このサイトについて
このサイトは何か
「あの言語でこれってどうやって書くんだっけ」をまとめたものを公開するサイトです。
下のほうにいろいろ書いてますが、要は自分用メモの自己満足サイトです。
誰かの役に立つかもしれないのと、公開しておけばフィードバックがあったりして楽しそうだということで、公開しています。
試行錯誤
プログラムを書いていて、用途によって言語を行ったり来たりしていると、次のような悩みがあります。
- あの言語で、これってどう書くんだっけ?
- 小文字にするのって to_lower だっけ tolower だっけ lowercased だっけ?
- else if だけど、Python だと elif で、Ruby だと elsif だったっけ
言語をまたいでなくても、このような悩みもあります。
- 毎回、同じようなこと書いてるな
- 結局 どの書き方が良いんだったっけ
昔からこれが気になっていて、いつも同じようなことをしていますが、次のようなことを試していました。
- Excelでまとめる
- データベースに入れて Web アプリにする
- 同じことを DB でなく JSON で保持してみたり
- xUnit で各言語版を書いてみる
- Markdown ファイルに小分けして編集
- 静的サイトジェネレータ (VuePress, Docusaurus) に組み込んでみる
- Grid 表示用のコンポーネントを活用 (Wijmo, AgGrid)
- 編集/表示/検索とも iPhone アプリにしてみる
どれも、「これじゃない」感があったり、ファイルが小分け過ぎてファイルを探したり名前や粒度を揃えるのが面倒になったりして続きませんでした。
毎回迷走していますが、今回は続きそうなフローに出来たので、公開しようと思います。 (たぶんずっと細かく修正して、一生つくりかけになります)
運用フロー
- xUnit で各言語の単体テストを書く
-
その際、次のように分類してメソッド名を揃える
- フォルダ : カテゴリ(文字列、配列、等々)
- テストスイート(ファイル単位) : 操作の小分類(文字列でいうと変換系、部分取り出し系、等々)
- テストケース(メソッド単位) : やりたいこと(小文字変換、大文字変換、等の小分け)
- スクリプトでテストケースを分解して、一覧の HTML を生成する
今回うまく行っていると思っていること
- ツール系は いちど出来てしまえば、あとは xUnit コードだけ編集していれば良い
- 公開したものは必ずテストが通っている
- 分類を変更したいとき(手動)も、一覧作成で他言語の変更漏れ確認できる
- フォルダ名と表示名/並び順をローカライズ用の設定ファイルに分けている
- 言語をまたぐことで 1個引いた視点で分類が出来る
- アナログに自前ツールで閉じたので、静的サイトジェネレータやアプリのSDKバージョン等を気にしなくて良い
おまけ
作る過程で調べた「各言語の xUnit 最小限の使い方メモ」はこちら(別サイト)。
→ https://memo.takaaki024.com/category/minimum-xunit
→ https://memo.takaaki024.com/category/minimum-xunit