ギルドワークスの増田です。
最近、ある分野(株価)に特化した SNS サービスのドメインモデルを設計する機会がありました。
設計で悩ましいのはクラス名やパッケージ名に良い「名前」を見つけることです。
今回は、モデリングの初期の段階で、私がどのようにクラス名やパッケージ名の候補を探したか、そのやり方を紹介します。
※注意:この記事は2014年10月27日にGuildWorks Blogで公開したエントリをリライトしたものです。
オンラインマニュアル
モデリングにあたって、最初に参考にしたのが twitter と facebook のヘルプ画面です。
twitter の用語集
facebook のプロファイルとタイムラインの利用ガイド
この情報がありがたいのは、同じ内容を日本語でも英語でも見ることができる「多言語対応」になっていることです。この日本語は英語だとなんていうんだ、という疑問のほとんどは、この日英のページを見比べて解決できました。
ありがたかったのは「用語集」も「利用ガイド」も、「説明文」が載っていることです。
オンラインの和英辞書を使えば単語の候補は見つかります。しかし、複数の候補が併記されていて、どういう場合に、どの単語を使えばよいのかはっきりしません。
ある問題領域(ドメイン)のクラス名やメソッド名を探すときに、文章形式の情報はたいせつです。
説明が文章になっていると、単語と単語のつながりや使い分け方が、具体的でわかりやすいからです。
twitter も facebookもオンラインヘルプの説明文の英語はとても平易でわかりやすい印象でした。中学英語くらいのレベルじゃないでしょうか。私自身が、twitter や facebook を使っているので、背景知識があるから理解しやすかったのかもしれません。
モデリングや設計をする時に、クラス名やパッケージ名の候補を探すには、類似サービスのオンラインマニュアルは、便利で役にたつ情報の宝庫です。
英語の入門書
今回のサービスの対象分野は「株価」です。 こちらも、株価サービスの英語のサイトをいくつか調べましたが、残念ながら、どこに何が書いてあるか探すだけでもたいへんで、あまり役に立ちませんでした。
twitter や facebook と違い、私自身が「株取引」の経験がありません。そういう未知の分野のサービスの英語サイトを覗いてみても、ちんぷんかんぷんになるのはあたりまえですね。
そこで思いついたのが「株取引」の英語の入門書を探すことです。
まずは「株取引」の基本用語をおさえようと。
Trading in a nutshell
入門書といっても300ページほどありますので、開発の真っ最中なので全部をじっくり読み通すなんて、もちろんできません。
この本で実際に使ったのは「目次」「概念図」「索引」くらいです。
しかし、これだけでも相当、役に立ちました。
とくに目次の章構成や概念的な全体図は、そのままパッケージ構成の設計のたたき台になりました。
用語集や利用ガイドは、個別の単語(クラス名)の情報源としては、役に立ちました。しかし、全体の構造の設計にはあまり役に立ちませんでした。
書籍の場合は、目次の章構成や全体の説明図があり、これが対象分野の理解やソフトウェア全体のパッケージ構成の設計に役に立ちました。
英語の入門書は、この本のように XXX in a nutshell とか、 YYY in 100 pages, ZZZ in 60 minutes とかの書名で探してみると、面白い本がいろいろみつかります。 illustrated とか、 explained とかも入門書探しの良いキーワードです。
オンラインの辞書
オンラインの和英辞書は、単語の意味や使い分け情報が少く、クラス名の候補を探す手段としてそれほど使いませんでした。
それでも、クラス名やメソッド名に困ったときに、オンラインの辞書のお世話にはなりました。
役にたった使い方をいくつか紹介しておきます。
シソーラス(同義語/反意語の辞書)
dictionary.com の thesaurus
設計しているときに、異なる文脈で「キャンセル」とか「取り消し」とか同じ単語が何度もでてきて、メソッド名の使い分けに迷った時に、よりしっくりくる単語を探すのに重宝したのが、このシソーラスです。
語彙が増えるほど(選択肢が広がるほど)、より良い名前を見つけるチャンスが増えることを実感できました。
折り返し翻訳
space alc
折り返し翻訳とは、まず和英辞書で、日本語に該当する英語を探します。
次に、その英語を英和辞書で、日本語に訳し戻してみます。
そうすると、意外と、最初の日本語と別の日本語が見つかることが多い。
日本語から英語にするとき、ひとつの日本語に複数の英語が見つかります。
それぞれの英語を折り返して日本語に翻訳すると、こちらも複数の単語が見つかります。
最初にぴったりの候補が見つからない時に、この折り返し翻訳を何往復かやってみると「おお、この言葉があったか」と発見できることがあります。
最初に見つけた言葉が、なにかしっくりこない時には、シソーラス検索や折り返し翻訳は、やってみる価値があります。
現場で、コードレベルで、実際に
今回は、初期のドメインモデリングで、クラス名やパッケージ名の候補を探すやり方を紹介してみました。
ギルドワークスでは、こういうモデリングや設計の考え方とやり方を学ぶワークショップセミナーを開催しています。また、みなさんの現場に出かけて実際のコードを題材にやってみるオンサイトのワークショップにも力を入れています。 ご興味を持たれた方はギルドワークスのホームページからお気軽にお問い合わせください。
Photo credit: https://www.flickr.com/photos/torisan3500/2287541289
1
取り消す
この記事に共感したら、何度でも押してこの記事のポイントをみんなでアップしよう。