コードネームの使用はかなり広まっていると思います。当社も使用しています。
しかし、私の主な懸念は、これらの名前が通常どこにも文書化されていないことです。そして、口コミによってその意味が広がっています。そして、その名前は、その名前が付けられているツールやエンティティの機能とは何の関係もありません。
内部のテストマシンは星座にちなんで名付けられたパターンが見えます。パブリックサーバーはギリシャの神々にちなんで名付けられています。そして、プロジェクトは場所やランダムに選ばれた映画スターやキャラクターの名前にちなんで名付けられています。しかし、マシンがWindowsであれLinuxであれ、名前から直接入手できる情報はありません。 32ビットまたは64ビットのサーバー。またはプロジェクトについては何ですか。
誰かが「ガンダルフ」プロジェクト、「カラニッシュ」プロジェクト、またはその他のプロジェクトを分岐したというVCSのコミットメッセージを見ると、私はただ悪い直感を感じます。同じ理由で、通常は関数や変数にそのような名前を付けません。
少なくとも新しいエンティティについては、よりわかりやすい名前を使用することを提案しましたが、非常に強い反対に直面しました。どうやら私を除いて組織内の誰もがそのようなものに名前を付けることが大好きです。
では、なぜ説明的でないコードネームを使用するのでしょうか。
誤解しないでください。プログラムのバージョンやマイルストーンに名前を付けたり、マーケティング上の理由で製品名にニースを付けたりしても問題はありません。しかし、他のすべての場所では、わかりやすい名前を付けてください。
編集:
状況を説明すると、Gandalfはコードを64ビットに移植するプロジェクトです。 CallanishはそれをAndroidに移植するものです...私はむしろ前のブランチを64bitportingと呼び、後者をandroidportingと呼びます。おそらく、それに添付するサフィックスが、出荷予定のターゲットバージョンを示しています。だから誰もがそれが何であるかを名前で知っているでしょう。
問題のサーバーは、製品をテストする仮想マシンイメージです...実際に実行されている物理マシンはわかりません。したがって、それらをwindowsxp_32、windows7_64、debian_32、またはsolaris_64と呼んでも問題ありません。
あいまいさをなくすために十分に詳細にリストするのに一日中かかり、特性が変化する可能性があるため、特性によって人々を参照することはありません。彼らが散髪をしたらどうなりますか?代わりに名前を付けます。また、人々はランダムなシンボルのストリームよりも単語を覚えるのが得意です。
免責事項:これには、質問のために、いくつかの意見と逸話が含まれます。
私が数年前に働いた場所では、すべてのサーバーは月と体の部分にちなんで名付けられました。 「レア」「ミランダ」「肺」「腎臓」など.
あなたと同じように、これは少しばかげているので、「arc-sql-w-4」や「lon-web-lin-2」のようなより「わかりやすい」名前に変更する必要があります。これには多くの反対がありました。しかし、それは通りました。すべての名前を変更しました。
それで何が悪かったのですか?
以前は、どのマシンがプライマリデータベースで、どのマシンがスレーブであるかを頭の上から知っていました。「ハート」制御の「ヘッド」、または「Tarvos」がXのアプリケーションサーバーであることを覚えているからです。ここで、探していたマシンの一部ではあるが完全には記述されていない、あいまいなシンボルの山を思い出す必要がありました。 「lon-web-lin-1」は製品Aのアプリケーションサーバーであり、「lon-web-lin-2」は製品Bであることを頭のルックアップテーブルから知る必要がありました。
これは、FartDownTrousersForALivingDoYouのようなパスワードを使用する必要がある理由と似ていますか? 43gH5#€1の代わりに。人々は言葉を覚えるのが得意であり、ランダムに山積みになったものではありません。言葉は物事を指すシンボルです。
別の(おそらくより実用的な)問題は、DNS名とサーバー名をそれらの機能に関連付けていることです。つまり、名前を変更せずに関数を変更することはできません。私たちにとって、これには物理的な場所とオペレーティングシステムも含まれます。それは、大麻の大きな痛みです。
また、これが最後のポイントです。名前ははるかに楽しいです。
プロジェクト名はどうですか?
さて、「Project Gandalf」の代わりに何を提案しますか? 「プロトタイプ関数Xをプロジェクト化し、それを製品に進化させることができるかどうかを確認します」?プロジェクトのスコープが変更された場合、プロジェクトの名前を変更しますか?繰り返しになりますが、名前は物事を表す省略記号です。
プロパティによって物に名前を付けることは、根本的に悪い考えです。その理由は、プロパティは定義により変更可能な現象ですが、物事のアイデンティティは、プロパティが変更されても同じままです。
ファイルサーバーをLinuxに移行する必要があると誰かが決めましたか?その名前が「アポロ」であれば、それは問題ではありません。名前が「windows」を参照している場合、誤解を招くようになるか、多大な費用またはリスクを伴い、どこでも変更する必要があります。新しい出力形式を導入していますか?神の愛のために、それを「newFormat」と呼ばないでください! willは最終的には再び置き換えられ、さらに新しいフォーマットは、それを区別するためにさらに説明的な名前が必要になります。それを「3」と呼んで、後で「4」にブーストしたり、「ゴールド」で「プラチナ」にアップグレードしたりできます。
(もう1つの理由は、情報のナゲットで構成された名前がおかしなものであることです。「PC-Marketing-Windows7-143」という名前のコンピューターで作業する人は誰もいません-彼らはそれよりも「Apollo」または「Bacchus」を採用しますいつでもですが、要点はアイデンティティ/プロパティの分割です。)
私の経験では、3つの理由があります。
多くの類似したものに名前を付ける必要がある場合、それらすべてに一意の説明的な名前を見つけるのは難しい場合があります。人々はそれを参照する短いユニークな方法を必要としています、そして私たちは数字を使うよりも名前を使う方が得意です(数が非常に短い場合を除きます)。名前を付けると、頭の中で個性を帯びる傾向があります。そのため、サーバーGandalfは、SERWIN15AB23よりも不安定な電源コネクタを備えたものであることを覚えています。また、そのうちの2つをタイプミスと混同する可能性も低くなります。
命名プロセスは楽しいものです。一部の企業は投票でそれを行います。他の人はユニークな名前を思いつくのを楽しんでいます。親に聞いてください。
外部プロジェクトの場合、名前が何であるかを決定するのは通常マーケティングであり、通常は出荷前に行います。マイクロソフトが最新のOSを「Windows 10」と呼ぶことに決めたのはいつですか?いつもそう呼ばれていたとは思えません。そのプロジェクトはそれよりもずっと前から開発中である可能性があり、場合によっては、社外の人があなたが何を話しているのか分からないように難読化したい場合があります。
説明的なネーミングはhard™です。使用できる単語のリストが自動的に付属するテーマをすでに持っている場合は、はるかに簡単です。
同じ名前のオブジェクトが複数ある場合は、foo1.6
、foo1.2
などは、すぐに混乱/間違いを起こしやすくなります。たとえば、Virgo
でテストを実行する必要がある場合、Cancer
を使用していると、間違いにすぐに気づくでしょう。
また、命名規則が展開され、会議室の名前を音楽のジャンルに基づいて決定し、カフェテリアにSalsa
と名前を付けると、面白くなります。
これは ハイコンテキストまたはローコンテキストカルチャ に関連している可能性があります。すべての会社、組織、またはチームには独自の文化があります。ハイまたはローコンテキストカルチャーとは、カルチャーが明示的に関連付けることを好む情報の量、およびコンテキストから人々が取ることが期待される量を意味します。
文化的参照からの名前ですべてのサービスに名前を付けると、ある程度の柔軟性が得られますが、明示性も欠如します。名前、つまりサービスのコンテキストを補足する口コミや「部族の知識」が必要です。たとえば、「fizzbuzz」サーバーや「marcopolo」サービスがあり、誰が何をするかわからないがトラフィックを取得するため、何かをしなければならない状況を見てきました。
私は低コンテキストの人なので、サーバーまたはサービスの目的についてコンテキストを提供する単純で明示的な名前を選択する傾向があります。また、コードを読みやすくするためにコードに名前を付ける場合は注意して、「自己文書化コード」を作成します。
しかし、私は現在、すべてのサービスがTransfomersにちなんで名付けられたハイコンテキストショップで働いています。はぁ。少なくとも、彼らは一貫して名前を使用しています。
したがって、文化的な価値のように見えますが、技術的な実践は文化的な好みに適応します。
ハイコンテキストはもっとおかしくなることもあり、それにはいくつかの価値があります。
コードネームの1つの理由は難読化です。プロジェクトの名前を無意味にすると、話し合っている内容を他の人が理解していなくても、人前でそれについて話すことができます。
同様に、サーバーに無意味な名前を付けた場合、承認されたユーザー以外は誰が何をしているのか理解できなくなります。
重要な質問は次のとおりです。説明とは何ですか。他の回答は、説明的でないものを示す素晴らしい仕事をしました。
役割、目的彼らがすることによって物事を呼ぶことから説明性が生まれることを確立しましょう。たとえば、「カッター」が何をするかはかなり明確です。今では、それは斧、レーザーまたはナイフかもしれません。それはそれほど重要ではありません。また、レーザーは「ポインター」、斧は「装飾」、ナイフは「パンクチャー」にもなります。
したがって、他の人が指摘したように、何かの特性とそれが果たすタスクとの関係は比較的緩いです。したがって、サーバー名の一部であるOSは記述的ではなく、気が散る真の目的から。
howコンポーネントDoesX
でXを実行するのがあなたの仕事でない限り、それはあなたの仕事ではありません。それがあなたの仕事であれば、とにかくすぐにそれに直面します。
ラシェフリークが指摘したように、説明的な名前を見つけるのは難しい場合があります。しかし、たいていの場合、それはあなたが名前を付けなければならないことを理解していないことの兆候です。その理解を得る前に、あなたはおそらくそれがあなたが知らないことをどのように行うかについて自分自身を心配するべきではありません;)
最初の理由は、短くて覚えやすいということです。プロジェクトの名前を何回言ったり書いたりするかを考えると、誰もが知って理解できる短い名前があれば、かなりの時間を節約できます。
2つ目の理由は、友情を築くことです。チームが名前を選択できるようになった場合は、全員が好きな名前を選択できます。微妙ですが、「Q3 Accounting Updates」という名前のプロジェクトではなく、Viper、Gimley、Boba、Bugattiという名前のプロジェクトで作業すると、チームの士気が高まります。たくさんの自動車愛好家とチームで働いている友人がいました。彼らのお気に入りのプロジェクトキックオフの儀式は、プロジェクトコード名として使用する車を選ぶことでした。
これは主に人々を楽しませるために行われることだといつも思っていました。人々はメディアによって、暗闇の中で身をかがめることと、昼間の仕事をすることを重視するように条件付けられています。 5歳のとき、「特別捜査官Oso」があります。 15歳のときはジェームズボンドです。秘密主義は、人々の通常の活動(例えば、コンピューターのプログラミング)に重要な空気を与えます。
関連して、それがマイクロソフトのコードネームであるときに誰かが "Longhorn"のロゴを作りました( http://en.wikipedia.org/wiki/File:Windows_Longhorn_logo.svg )。なぜ誰かが実際にマーケティング活動の一部となることを意図していないコードネームのロゴを作るのですか?繰り返しますが、人々はそれを楽しませるので、この種のことをします。 Photoshopでの遊び方は、実際の作業を行うよりも簡単で楽しいです。
知らないシステムがあるかもしれません。
私が働いていたある会社が、すべてのサーバーでノーベル賞受賞者の名前を使用していました。ノーベル賞が異なると、サーバーのカテゴリーも異なります。
テストサーバーは、数学の勝者にちなんで名付けられ、データベースサーバーは文学の勝者にちなんで名付けられ、メールサーバーは医学の勝者にちなんで名付けられます。
命名規則に慣れていない人にとって、名前は完全にランダムに見えました(特に、ほとんどの人は何十年にもわたって何百ものノーベル賞受賞者を知りません)。
私は自宅で同様のシステムを使用し、ジェット戦闘機にちなんでコンピューター、爆撃機にサーバーに、火山にちなんでディスクボリュームに名前を付けました。
同じことは、ソフトウェアの一部、樹木に名前を付けた生産バージョン、花の後にベータ版などを使用して行うことができます。