読者です 読者をやめる 読者になる 読者になる

セカイノカタチ

世界のカタチを探求するブログ。関数型言語に興味があり、HaskellやScalaを勉強中。最近はカメラの話題も多め

マーブルワーズ

システム開発時のネーミングついて

システム開発 山の民 プログラミング

※ 筆者の特性上、話題の対象が業務システム開発に偏っていることを予めご承知おき下さい

システムのネーミングですが、困りますよね。

長年業務システム開発で、DB設計などに携わった身として、少しだけコツをお話したいと思います。

前提

まず、前提としてシステム開発する際に、我々がネイティブに使っている日本語を元に英語の命名をする場面を想定しています。

対象は、業務システムで金融とか小売とか流通とか、そういう感じのシステムを想定しています。

命名者は、日本語話者で、英語はそんなに得意でないことを想定しています(自分のことです)。

勘違い

自分が、駆け出しの頃、以下の様な思い込みをしていたのですが、後に間違いだったことに気づきます。

日本語→英語の対応付けが可能である

日本語→英語の変換ですが、両者の言語特性の違いから、一対一の対応付けは困難です(不可能と言ってもいいぐらいです)。

英語の意味に対応する、日本語が複数あったり、日本語の意味に対する英語が複数あったりして、多対多の関係になります。

それに、英語の特徴だと思うのですが、一つの単語の守備範囲がアバウトで色んな意味があり、複数連ねて熟語にして初めて正確な意味を指すようになるようです。

丁度、日本語の漢字一文字に対して英語の単語が対応するような感覚です。

英語の話者は、恐らく話題の主語に合せて暗黙的に意味を絞る事で、平易な単語を使っての会話を成立させているのだと思います。

同じ単語が、前後の文脈によって、全く違う(こともないんだけど連想ゲームみたいな感じになっている)意味を帯びてきます。

システム設計で頻出する単語で言うと、OrderとかAccountとか、Applicationとかはヤバイです。

つまり、几帳面に英訳していくと、冗長な連語になりやすいと言う事です。

一つの辞書があれば、全てのシステムで自動的に命名可能である

ということで、全てのシステムで共通的に使用できる辞書を作成するというのは不可能です。

可能ですが、冗長すぎて役に立たない物になると思います。

それよりも、システムの特性に合わせて辞書を別々に用意したほうが、効率的になります。

命名のコツ

それで、命名のコツですが、システムの特性に合わせて、良い単語を優先的に良く使う重要な意味に紐付けるということです。

ハフマン符号化のような、アルゴリズムを働かせる事になります。

例えば、先の単語で言ったら、Orderという単語を「受注」と決めてしまうわけです。「accepting order」とか「order receipt」なんて熟語は使用しませんし、「順序」という意味では、Orderは使わないということです。

Accountも経理や金融システムであれば「口座」に割り当てられるでしょうが、それ以外のシステムではだいたい「ユーザーアカウント」という意味で使います。

弾かれてしまった方の意味でも単語を使いたい場合は、「bank account」などの形で冗長にします。

こうして、単語を割り当てていくと、全体として重要なところに良い単語があたっていて、枝葉の部分には、冗長な単語が割り当てられているが、使用頻度が少ないので我慢できる感じになります。

運用

割り当てた単語の運用ですが、エクセルで辞書を作るか、高価なリポジトリツールを導入するか、その他の手段を取るかはその時の状況次第ですが、対象システム内で、同じ意味の日本語には、同じ単語(や熟語)を割り当てることを徹底する必要があります。

例外が、2,3%を超えるとシステムの運用に大きな負債を抱えることになります。

そのため、基本的にはDB設計を優先的に行い、業務的な単語の割当を急ぎます。

DBベースの辞書が完成すると、業務に必要な単語は大体割当が決まるので、プログラムもそれに合わせて命名してもらいます。

この時に、プログラムやSQLの予約後が入っていると問題を起こしやすいので、そういった単語はそもそも命名時点で外しておきます。

classとか、importとか(これは輸入システムでは苦しいので大して問題にならないケースが多いし使用します(^^;)、commentとかがこれに当たります。

辞書があれば、日本語→英語は単純変換できるのですが、この時のコツは辞書を予め日本語の文字数が多い順にソートしておくことです。

つまり、下記のようなケースがあるからです。

|日本語|英語| |先行受注|early bird| |受注|order|

これは極端にするために適当につけていますが、日本語の熟語によって、それが重要ならば別の単語を付けるケースがたまにあるからです。

そんな時も、長→短の順に当てれば、問題なく動作します。

困ったこと

システム設計していると「そもそも概念に名前がついていないこと」が、たまに発生します。

例えば、ホットペッパーのような店舗を扱うシステムで、個々の支店は、shopとかつければ良いのですが、それらの集合体の総称はどういう名前をつけたら良いのでしょうか?

shop?ブランド?company?どれもしっくりこないし、ブランドは和製英語じゃん!?

・・・となって悩んだ挙句、「web site」として逃げました(その時のシステムは、店舗の集合体毎にWeb siteを持つ形式だったのでこれでも通じた)。

というような、事態も時折起こります。

また、社内発注が発生して、上流部門では「発注」でも下流部門では「受注」と呼んでいるようなケースも多々あります。この場合も、部門ごとにバラバラになっている単語を意味に合わせて、社内で統一していく必要があります。この辺は、完全にシステム開発から外れて社内政治の世界に突入するわけですが。(^^;

大切なのは、多少不自然でも誰かが勘とセンスで名付けをして、その名付けをみんなが我慢して使うということです。

なるべく違和感の無い命名が理想ですが、それがかなわない場合でも「悪法でも法」の精神で、命名を遵守することで、表現のブレによる困難なバグに遭遇する機会がぐっと減ります。

一言で言えなかった

結構長くなってしまった。

僕は、「システム開発は名付け8割」だと思っています。

特にSEの仕事は、システムに関連するあらゆる事象に名前を付け終わったら、大体終わりです。

それだけ、奥が深く、重要で疎かにできない要素です。

文章にするのが難しく、煩雑でダメな文章を書いてしまいまいしたが、雰囲気だけでも伝われば幸いです。

銀河宇宙オデッセイと死

セカイノカタチ 考察

anond.hatelabo.jp

こんな増田が話題ですね。

qtamaki.hatenablog.com

ちょっと前に、死の受け入れについて書いたのですが、関連して僕が死について考えるきっかけになった出来事について書きたいと思います。

銀河宇宙オデッセイ

ある時、NHKで銀河宇宙オデッセイという番組を放送していました(Wikiによると1990年)。

この番組は、当時最新とされる宇宙科学を元に、遠い未来の宇宙船が旅をしているという設定で、一つ一つの理論を解説していくという内容でした。

既に大分時間が経っていますが、今でも十分通用するような内容の番組だったと記憶しています*1

1990年放送なので、当時13~14歳。

中二病全開時代の僕に、非常に克明に記憶を残しました。

科学的に見た宇宙の姿も勿論ですが、130億年以上昔にビッグバンによって宇宙が現れ、広大な範囲に広がる宇宙が形作られるというスケール感や、ビッグバン開始前の世界がとうなっていたかについての予想(というか想像)、宇宙の果ての先、そして宇宙の死について語られることにより、別の感情も沸き起こりました。

それまで、ぼんやりと死であるとか永遠について考えることはあったかもしれないですが、それが突然、物理現象として、厳密な正確さをもって、鼻先につきつけられたのです。

この時の驚きと恐怖は、26年経った今、こうしてブログを書いていても鮮明に思い出されます。

僕が、「無限」や「永遠」について意識するきっかけになった出来事です。

言葉では言い表しにくいのですが、生ゴムでできた消しゴムを奥歯で思いっきり噛み潰したような、苦虫とも砂とも違った何とも言えない味わいのある感情です。

この時から、僕は死と永遠について、時折思い起こしては、暗い海の中で、ひときわ冷たい海流に足先が触れたときのように、うっかり暗い深淵を覗いたような気持ちになり、すぐに心の手を引っ込めてブルブルと震えるようになります。

余談ですが、このブログのタイトルが「セカイノカタチ」という名前なのも、死と永遠を探求するために、セカイノカタチをつまびらかにすることがどうしても必要だからです。

宇宙、神、物理現象としての死

銀河宇宙オデッセイという番組は、僕の人生に多大なる影響を与えています。

世界をモデル化するときには、宇宙規模での整合性を意識する必要があります。

もし、神がいるとすれば、この宇宙の外側の存在でしょう。

集合論によって、対象となる集合では表せない集合が必ず存在するというパラドックスが証明されています。

神というのは、おそらくこの宇宙の森羅万象を収めた集合には含まれておらず、集合のパラドックスを超えた存在なのでしょう。それこそ、人智を超えた存在であることの証となりますから。

そして、僕ら人間の生と死というのは、この宇宙の系の中にあります。

何とかして死後の世界についてモデル化できないかと、何度も試みたのですが、無理だということがわかりました。

我々が厳密な物理現象の中で存在している以上、精神世界というものは幻想に過ぎません。

また、意識が永遠に続くと仮定しても、何の解決にもならないのです。そのことは、最初に挙げたブログに書きました。

残念ながら、我々は短い寿命を持ち消えゆく定めの存在なのです。

死の恐怖、生きる意味

死の恐怖や永遠の恐怖に立ち向かうためにはどうしたら良いのでしょうか?

人それぞれだと思いますが、僕の場合は、なるべく整合性のある世界のモデルを構築することです。

そして、その中での自分を客観視し、死と自分の存在を普遍的事実として受け入れることです。

死を見つめることで、死の恐怖は去りませんが、死の存在に慣れることが出来ます。

当然ですが、みんな死にます。

死から逃れるのではなく、客観的な世界の一部として死を意識することで、生が輝いて見えるようになります。

輝ける有限の生を残された僅かな時間を少しでも良く生きる意識を強くすることが出来るのだと思います。

良い人生を生きる。つまり、永遠の淵で一瞬のキラメキを生きる意味があるのだと確信するためにはどうすれば良いでしょうか?

人間には、群れで生きる本能があります。その本能のあるがままに任せるのが、一番楽ちんに生きる意味を見出す方法だと思います。

他者に貢献すること、そして他者から信頼され感謝されることに喜びを見出すのは、本能の成せる技です。

この本能にしたがって、誰でも良いから周りの人に良いことをし、周りの人の良いことを最大限に賞賛することです。

答えはシンプルです。

つまり、死を意識し生を慈しみ、自己の人生を輝いた良い物にするために全力で他者に価値や承認を与えるというロジックです。

この考え方は、色々な宗教や自己啓発書の根源となるイデア的な思想とも上手く合致するはずです。

銀河宇宙オデッセイから、26年経ちました。

今のところ、僕が辿り着いたセカイノカタチです。

*1:この番組が、今の最新理論にアップデートされてリメイクされる事を心密かに願っています

HTC VIVEがプレイできるか自分のPCをチェック

ガジェット ゲーム 物欲

f:id:qtamaki:20160721221556p:plain

にわかに湧き上がるVRブーム。皆さん、いかがお過ごしでしょうか?

Playstation VRは、予約しそこねたので、HTC VIVEをチェックしてみました。

どうやら、Steamで、「SteamVR Performance Test」というツールを提供していて、VIVEに対応可能かチェックしてくれるみたいです。

SteamVR Performance Test on Steam

早速やってみたところ、惨敗です。バッチリ「使用不可」の所にゲージが来ました。(^^;

トホホ。

f:id:qtamaki:20160721221600p:plain
会社のPC。

f:id:qtamaki:20160721221602p:plain
自宅のPC。

両方惨敗。

VRするには、Playstation VRを買うか、グラボを買い換えるか。。。

GTX1060がこなれてきたら、現実的なラインになるかもしれません。

(でも、VIVEが\99,815するんだよな。。。)

LUMIX G 25mm/F1.7 届いた

カメラ デジカメ レンズ 写真 物欲

qtamaki.hatenablog.com

衝動的にヤフオクで落札したレンズですが、手元に届きました。

定形外郵便でお願いした割には早く届いて嬉しいです。^^

早速開封して、DMC-G7に付けてみました

f:id:qtamaki:20160721121253j:plain 手近にあった、謎のフィギュアを撮影。背景がトロトロになります。ぼんやり横縞が見えるのはブラインドの線です。

f:id:qtamaki:20160721124335j:plain さらに適当な一枚。机の上が散らかりまくっている上に、ペプシ飲み過ぎ疑惑。(^^;

f:id:qtamaki:20160721134054j:plain カメラに付けた感じはこんな感じです。収まり良くG7とマッチしていていい感じです。

気軽に持ち出せるカメラなので、描画性能が上がると嬉しいです。

LUMIX G 25mm/F1.7が急に値上がりしていたのでヤフオクで・・・

カメラ レンズ 写真 物欲

f:id:qtamaki:20160720155350p:plain

マイクロフォーサーズ用のLUMIX 25mmが欲しくて、時折価格コムをチェックしていたのですが、1万6千円台だったのが、急に2万5千円台にジャンプアップしていました。

なんじゃこりゃ?

これはヤバイとヤフオクを見に行ったら、その時点でまだ新品価格1万3千円即決があったので、即決しました。

思わず衝動買い。(^^;

現在持っているマイクロフォーサーズのレンズは、F2.8が一番明るいので、F1.7のこのレンズが届くのが楽しみです。

【PS4】GRAVITY DAZE 2 予約受付開始してたからポチった

ゲーム 物欲

f:id:qtamaki:20160720142455p:plain

PS4購入動機の一つだったのを忘れてました。

Twitterのタイムラインにあったプロモーションを見てポチってしまった。

Twitterのプロモーションが役立ったのは初めてだな。

【PS4】GRAVITY DAZE 2 初回限定版【Amazon.co.jp限定】オリジナルカスタムテーマDLC配信

【PS4】GRAVITY DAZE 2 初回限定版【Amazon.co.jp限定】オリジナルカスタムテーマDLC配信

飯能にある清流園で川遊びしてきました

写真 一眼レフ デジカメ カメラ

家族サービスです。

okumusashi.life.coocan.jp

子供が生まれてから、毎年行っている川沿いの遊び場に行っていました。

雨が降ったり、天候によって川の形や水温、水流が毎年違うのですが、今年は水も澄んでいて流れも穏やか。水温も最初「冷たっ」ってなりますが、慣れるとちょうと良い感じで、今まで行った中ではベストコンディションでした。 f:id:qtamaki:20160717095708j:plain こんな感じで、澄んだ水でした。

f:id:qtamaki:20160717095856j:plain 周りは木々に覆われていて、癒やされます。

f:id:qtamaki:20160717102926j:plain なんちゃってバーベキュー風にガスコンロで肉とパンを焼いて食べます。(^^;

食材は、前日にコストコで調達。

f:id:qtamaki:20160717102801j:plain 齧りつく息子。

f:id:qtamaki:20160717122714j:plain 流れが緩いところでは、小魚が一杯泳いでました。

残念ながら捕まえることはできず。

f:id:qtamaki:20150719100222j:plain こちらは、参考までに去年の様子。濁ってますね。

水も冷たく、流れも急で大変でした。子どもたちは、はしゃいでましたが。(^^;

今年の写真は、EOS5Dで撮りました。去年の写真は、EOS7Dです。

こうしてみると、どちらもよく写るな。