最近自作 OSS を開発し公開するなどして、OSS 活動している中、プロジェクトの名前づけのルールを考えたのでまとめる。
結論お酒やカクテルの名前にするというものにする。すでに複数の OSS にカクテルの名前を割り当てている。ビールとレモネードを混ぜた Panache(パナシェ)、ノンアルコールカクテルを代表する Shirley(シャーリーテンプル)、ワイン好きに好評な Sangria (サングリア) などだ。
なぜかというと、過去の現場で、プロジェクトの名前を使用技術や所属している部署やチームなど関わりがあるものを由来にしないという命名規則にインスパイアされたからだ。名前を流動的に変化があるものにし、プロジェクトの名前が他サービスから参照されていると、名前の変更時に多くの追従作業が発生してしまうとのことだ。たしかに、CI でのリポジトリチェックアウトなど名前変更が地味に手間がかかるのは過去経験していた。
実際その現場たちでどんな命名規則があったかというと、過去の現場では果物の名前を採用していた。この命名規則を知って、自分が開発するライブラリたちにはすべてカクテルの名前を振ることにした。早速、ボタンコード生成の Flutter 拡張機能の Shirley については、一番わかりやすい「Button Generator DevTools Extensions」という名前が候補にあった。しかし、万が一 Flutter の拡張機能の名前が DevTools Extensions
から別の名前になった場合を考慮して、やはりカクテルの名前を使用することで名前の変更による作業を減らしている。
ちなみに、なぜカクテルやお酒かというと、それには深い理由はなくシンプルにお酒が好きだからである。
あと別の理由があるとするならば、由来や意味に直接関わる名前を使用し、検索性をあげたかったのもある。OSS のことを他人へ紹介するときに、似ているパッケージに紛れて pub.dev や npm の OSS 管理のプラットフォームの内の検索でヒットしないことを避けたかった。もちろん名前はプロジェクトの中身と全く相関性ないが、説明文や README にはしっかり中身を記載している。
なおもし可能だったら、それぞれのプロジェクトの背景に沿った意味を持つカクテルにしたかったが、流石に無理があるのでそれは妥協した。あくまでランダムで決めること。例えば、ランダムな文字列を生成する Flutter の拡張機能の Panache について Panache(パナシェ) はフランス生まれのカクテルで、フランス語でまざりあったという意味がある。もともとはビールとレモネードを同量(1 対 1)で割ったカクテルのこと。ただし、現在ではビールとレモネードの組み合わせだけでなく、ビールと透明な炭酸飲料を混ぜ合わせたもの全般を幅広く「パナシェ」と呼ぶみたい。生成されるダミーテキストはローマ語のランダムな言葉たちなので、まさに混ざり合ったものが最終的なアウトプットになるという意味も含んでの Panache
にした。他のプロジェクトにもこのような関連性を持たせて名前をつけたいが、名前付のハードルが高くなってしまうので、それは避けた。
こればかりは説明しないと、どこかの場面でなぜそんな OSS をお酒の名前にしたのか将来ツッコミが入ることを想定して、事前に理由を明記した。関連性がない名前をつけるのは過去の現場ぐらいかであまり受け入れられない考えだろうと感じた。しかし驚いたことに、なんと現場の現場ではプロジェクトの名前をほとんど居酒屋料理の名前にしていた。案外共感してもらえると、自信を持ってこのままの命名規則に従っていこうと決めた今日この頃である。