- ファイルとフォルダーのベストな命名規則を再考した!
- 個人的には“-”と“_”のミックスがおすすめ!
- コツは探しやすさと見やすさを重視すること!
ファイル命名規則アゲイン。
悩めるファイル・フォルダーの命名規則。WinでもMacでも使う。しかも、開発プロジェクトチームと共有する。そこで、またまた理想のファイル・フォルダーの命名規則を…性懲りもなく考えましたな話。キーワードは『オントロジー』ですなの。
見やすく・分かりやすい・整理しやすい。
そーんな、三拍子揃った命名規則を考えるぞー!
頻繁に命名規則を変更するのもダメですがね…。
うぐぐ……。(数か月前に変えたばかりな人)
Contents
現在の命名規則
現在の命名規則
①_②-③_④
- ①:No.|番号(0001〜9999) or 日付(yyyymmdd)
- ②:Name|名前(browser, cat, etc.)
- ③:Purpose|目的(tmb, logo, box, etc.)
- ④:Ver.|版(1, 2 , 3 ,etc.)
命名規則例
- 20191225_8vivid-img_1
- 0001_neko-tmpimg
- 9999_picapp-des_3
現在、私が使っているファイル・フォルダーの命名規則は上記のとおり。
以前の記事にて、どうしてこのような命名規則になったかを詳しく解説しています。なので、ここで話すと重複するので、詳しくは過去記事を読んでみてくださいな。
新規の命名規則
新規の命名規則
①_②_③-③_④
- ①:No.|番号(0001〜9999) or 日付(yyyymmdd)
- ②:Prefix|接頭辞(img, art, dev, etc.)
- ③:Name|名前(foo-bar, foo-bar-baz, etc.)
- ④:Ver.|版(1, 2 , 3 ,etc.)
命名規則例
- 20200101_img_8vivid-foo_1
- 0001_dev_web-app
- 9999_des_alt-app-tmb_2
今回、新しく考えたファイル・フォルダーの命名規則は上記のとおり。
ベースは現行の命名規則を踏襲。ただ、実際に使っていて感じた、可読性の悪さ・②の名前と③の目的の混同…というような微妙だったポイントを(個人的に)解消してみました。
命名規則の私的ルール解説
そういうわけで、どうしてこの命名規則になったかの説明たーいむっ!
【1】大原則:すべて半角英数字小文字
まず、ファイル・フォルダーの命名規則を考える上で、大原則としたのがすべて半角英数字小文字に統一すること。これは“例外なく”です。
Windowsにしても、Macにしても、システム上で大文字小文字の区別はしません。ただ、Web上のサーバー等にデータをアップロードする際や、コーディングでファイル参照する際には区別したりします。その区別するか否かの線引がややこしいので、すべからく半角英数字小文字統一をしたというわけです。
WindowsもWindows 10 Ver. 1803から、大文字・小文字を区別してファイルを扱うことができるみたいだねー!
【2】大区切り:Snake case
日付や接頭辞などのファイルやフォルダーの補足的に修飾する部分は、Snake caseで記載しています。
Snake case(と次に出てくるKebab Case)についてを、ここで解説すると進まなくなるので、本記事の後半にて解説表を設けています。
【3】小区切り:Kebab Case
ファイルやフォルダーの名前そのものにあたる部分は、Kebab Caseで記載しています。
Snake case(アンダースコア)とKebab Case(ハイフン)が混同してややこしそうに思えますが、こうすることによって、ファイルやフォルダーそのものの名前を瞬時に理解しやすくした…つもりです。好みはあるはずですが、これで可読性を上げています。
【4】本文:略語で記載
接頭辞や名前に関しては、一般的な短縮英語によって記載しています。
短縮英語の利用については賛否ありそうですが、個人的にはファイルやフォルダーの名前をダラダラ書くのが好きじゃないので、短縮英語を用いています。特に接頭辞に関しては、短縮英語を必須としています。
【5】文頭:整理番号 or 日付
文頭(①の部分)については、ソート用の番号か作成日を記載しています。
ソート用の番号は、4桁の番号(例:0001)。
作成日は、yyyymmdd形式(20200101)。
といったルールに基づいて記載しています。
こうすることによって、OS標準のファイルソート機能を使って、任意の順序にファイルやフォルダーを並び替えることができるというわけです。
ソートのしやすさは大切だから、こうやって番号や日付を命名しておくのが大事なのであーるっ!
【6】文末:連番
文末(④の部分)については、連番を記載しています。
この連番については、1から記載する感じです。
基本的にファイルに連番をつけるときというのは、一定の連続性のある場合や同ファイルで新旧の区別をしたいとき。なので、単純に番号が新しいものが最新のデータという感じになるわけです。
命名規則作成で考えた事項
連結方法の選定
私のファイル・フォルダーの命名規則では、
- ハイフン(-)
- アンダースコア(_)
という2つの記号を混在させる変わった記法にしてます。
一般的な命名規則でいう、Snake caseとKebab caseを混ぜている感じで、これは普段からコーディングで使っている記法の延長として採用しています。
禁則記号を避ける
命名時の禁則記号
¥ / : ; * ? " < > .
OS等の環境によって開けないという問題を避けるために、上記のような記号については使わないようにしました。
接頭辞をつける
今まで使っていた命名規則だと、そのファイルやフォルダーに格納されているデータ群がどういう属性(拡張子)のものか一瞬で判断できかねる状態でした。
接頭辞の例
- 画像:img
- デザイン系:des
- 開発系:dev
- イラスト:pic
そこで新たにプログラミングではおなじみの接頭辞(プレフィックス)を付けることにしました。これで、そのフォルダーに何が格納されているのか、もしくはそのファイルがどういう属性を示しているかが瞬時に判断できるようになりました。
CSS記述時にjs_ってid指定しているんだけど、その応用でファイルやフォルダーにも接頭辞を採用したのであーるっ!
補足
連結方法一覧
名称 | 例 | 連結記号 | 備考 | |
Camel case属 | Upper camel case | FooBarBaz | なし | 単語先頭大文字 |
Lower camel case | fooBarBaz | なし | 初単語以外単語先頭大文字 | |
Snake case属 | Snake case | foo_bar_baz | アンダースコア | すべて小文字 |
Screaming snake case | FOO_BAR_BAZ | アンダースコア | すべて大文字 | |
Kebab case属 | Kebab case | foo-bar-baz | ハイフン | すべて小文字 |
Train case | Foo-Bar-Baz | ハイフン | 単語先頭大文字 |
主な命名規則と連結方法。
命名規則を決める際に使う、主な連結方法は上表のような感じ。
好み(流派)はいろいろなので、ここから自分好みのファイル・フォルダーの命名規則を決めていくと楽しいですよ。
まさにオントロジーの世界ですわね。
ファイルの階層化構造って哲学だよね〜♪
まとめ「理想の命名規則はオントロジー的かも!?」
そういうわけで、自分にとってのファイル・フォルダーの命名規則のベストプラクティスを再考してみました。うーん、今回のは我ながら…しっくりきてますぞ!
人によって、しっくりくる命名規則はあると思います。
どちらにせよ、短く記載・可読性を高くする・ソートや検索が容易ということに関して守っておくと、のちのち困らないと思います。いわば、オントロジー的な思考なのかもしれません。ここを考え、突き詰めていくのも楽しい哲学ですな。
まさに命名規則の哲学あーるっ!
おまけ
ファイラーとかメモアプリの階層構造を考えるのって、大変だけど楽しいよねー。
どう階層化すれば美しいか。その美学ですわね。
哲学というか、マニアックというか…変わってるというか。
おわり