コンピュータでの識別子の形式的な命名規則としては、先頭を大文字にした単語を連結する CamelCase や、アンダースコアで単語を連結する方法がある。
GNU Coding Standardsでは iCantReadThis と(CamelCase は読みづらいと)述べ、アンダースコアで連結する方法を推奨している。
CamelCase よりもアンダースコアで連結する形式の方が(特に英語がネイティブでない人にとって)読み易いとしている。 また、全て大文字である単語であってもアンダースコアで連結する方法は首尾一貫している事を述べている。
Perl style guide では、アンダースコアで単語を連結する方法を採用している(パッケージ名を除く)。
Code Conventions For The Java Programming Language では特に決まりなし。
ちなみにアンダースコアで始まる変数名は 「9. Naming Conventions」 で禁止している。
Perl style guide ではアンダースコアで始まる変数や関数はパッケージ内で使用するものとすることを推奨している。 Private モジュールを使用すると、実行時にこれらを隠すことができる。
新しくコンピュータを手にいれて Linux をインストールする中で、時間がかかる作業は、
だ。少なくとも私の場合。 結局一旦決めたら変えない事が多いので、やはり最初かなり悩む。 まあ、へなちょこな名前で落ちつく事の方が多いのだが。
そんなときには、ちょっと古いけど RFC1178。 先週他の RFC 調べていた時に日本語訳が目についたのでチェック。
読んでも名前は決められないけれど、少なくとも悪い名前は避けやすくなるだろう。
RFC2100 'The Naming of Hosts' というのもあり。
2001年7月2日追記。 中里 武志氏による邦訳の URL を http://www.nn.iij4u.or.jp/... から、http://www.goto.info.kanagawa-u.ac.jp/... に変更。
[ 命名規則 ]
オブジェクト指向プログラミングではほとんどの場合に必要となるアクセサについては命名規則にいくつかのパターンがある。
1 番目は Java プログラミングでよく使われる。 またそれ以外でも広く使われている形式だ。 get と set 命名規則的に対になっていて規則的には美しい。 getter と setter を別々に検索するのも用意だし、プログラミング時にも誤解を招きにくい。
ただし例えば x、y、z のような短い名前の属性の取得の場合 obj->get_x などと、うるさい感じになってしまう。また obj->get_foo->get_var なども obj->foo->var などに比べてすっきり感がない。
2 番目は Perl でよく使われる。C# のプロパティへのアクセサは getter と setter が同じ名前になる。 呼び出し側ではコードが短くなりすっきりする。
ただし Perl の場合は引数の数を動的にチェックするために効率が若干犠牲になるのと、setter の機能が無いアクセサに引数を渡してもエラーにならないため見逃しやすいバグが潜んでしまう可能性があるなどの問題もある。Perl ベストプラクティスではこの形式ではなく1番目の形式を勧めている。
3 番目はあまり多くないかな。 getter に get がついていると個人的には重い印象を感じる。 getter を属性名だけにすることですっきりするとともに、setter は set_ と動詞がつくことでオブジェクトに働きかけるという印象を残すことができる。
命名規則が非対称なのでちょっと気持ち悪いといえば気持ち悪い。
Google C++ スタイルガイドではこの形式を採用している。
個人的には3番目がコードの見た感じにもすっきりしていて読みやすく、また getter と setter の区別も(1番目ほどではないにせよ)つきやすいので良いのではないかと思う。 2番目もよく使っていたのだが、しばらく3番目にしてみようかと思った今日このごろ。
Remember The Milk で GTD システムを構築していておおむねいい感じなのだけれど、あいかわらずサブタスク機能は入る様子が無いので、プロジェクトから次の行動をブレークダウンしたい時にちょっと不便。タスクの命名規則や並び順やらタグやらを駆使しているので PC 上なら工夫でカバーできるんだけれど、スマートフォンからだと入力の手間的にブレークダウンをサクサクできないのが難。
ということでスマートフォンでタスク階層をこねくり回せて、あわよくば Remember The Milk からスイッチできるものがないか、使ったことのないサービスなどをチェックしてみた。
Android・iOS・Web (PC) で同期して使えるのが条件。
ということで Remember The Milk の置き換えになるのは見つからなかった。やはり Remember The Milk 最強。ただ Gtasks + GoTasks がいい感じで、スマートフォンでリラックスしながらタスクブレークダウンするのに使いたいなと思うので、一部併用してみようかなと思う。
[ Android アプリレビュー ]
ファイル名の先頭を日付にする派だが、 Obsidian では「内部リンクが醜くなる」「グラフビューが醜くなる」ということもあり、デイリーノートやプロジェクトのノートなど何でも入れてみている Obsidian vault でデイリーノート類以外についてしばらくタイトルから日付を外してみていた。しかし日付がタイトルにないとやはり検索時に日付順に並べ替えられなくて不便だった。
情報のアーカイブとしても使う Obsidian vault ではノートタイトルの先頭を日付にする方が便利だな。 YAML front matter に書いておいた日付をタイトルにつけ直した。
Obsidian Publish サイト nNodes は知のネットワークのスナップショットとして更新していくので、引き続きノートタイトルには日付を含めないままにする。
Obsidian vault の目的によって命名規則を使い分けるのがいい。
[ ファイル名の先頭を日付にする ]
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。
#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。
※本サイトの内容は個人的見解であり所属組織とは関係ありません。
ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。