« インターネット接続料金を参照するメソッド | Main | 手続き型プログラミングっぽいメソッド名 »

getData()のコアイメージ

先日の出題を再掲します。

<問1>Javaプログラミングで、出力用データを生成するメソッド名称を決める際、英語としての可読性がよい選択肢を1つ選びなさ い。

(a) createOutputData()
(b) makeOutputData()
(c) どちらも可読性はよい、大差なし

結果を見る

このアンケートに対して、読者からコメントが届きました。

↑の答えは(a)でしょうけど、ファイル等にはきだすのではなく、ただメモリ上に値をもらう場合は、 Get とかもシンプルで良いかと。結局は英語うんぬんよりも、「マイクロソフトとかGoogleとかはどうしているのか」に寄る事も多いですね。(日本人/オフショア経験豊富)


ご意見ありがとうございます。他にも、英語が苦手な日本人SEが犯しがちな英語報告の失敗例も紹介してもらいました。

ファイル等にはきだすのではなく、ただメモリ上に値をもらう場合のメソッド名称として getOutputData() でもいいのではないか、とのご意見について、英単語のコアイメージの観点から補足説明します。


まず、英単語 get のコアイメージについて。

get のコアイメージは「状態変化」です。
決して「取る(ゲットする)」ではありません。

すなわち、get を使う局面では、前提条件として「以前の状態」と「変化後の状態」の二つの要素が暗黙のうちに想定されます。


もし、出力用データを新規生成するメソッド名称を決める際、特に「新規性」に強調するなら get よりも create を使った方がよりイメージが伝わります。

- createOutputData() ... 普通に新規データ生成の印象


一方、重要なアルゴリズムによって「既存データが変換」されて出力用データが生成される際には、make を使うとそれっぽい印象が醸し出せます。

make のコアイメージより「ある原材料に人が手を加えてデータ生成した」印象が強調されます。

- makeOutputData() ... データがわざわざ「作られた」感アリ


一方、getOutputData() を使うと、空っぽの状態だったメモリ空間に、所定の出力用データが移されてメモリ空間が満たされた状態に変化した印象が強調されます。

- getOutputData() ... 何らかの変化? → 普通は取得という!


だからこそ、getOutputData() は「データ生成」よりも「データ取得」の役割がピッタリ当てはまります。英単語 get のコアイメージは「取る(ゲットする)」ではなく「状態変化」だと覚えましょう。


■ 問いかけ

今日も、以下のクイズに挑戦

【課題】あなたは、設計書の指示にしたがって Java 言語でプログラミングします。メソッドや変数を英語で適切に命名しなさい。

<問1>あるルーチン内で、一時的に利用された後すぐに破棄される儚い運命のデータを生成して作業用メモリに保管するメソッドに相応しい名称(例えば、並べ替えアルゴリズムで作業用データを一時的に取得したい場合)

(a) getData()
(b) holdData()
(c) openData()
(d) keepData()


あなたの直感を信じて「これだ!」と思う選択肢をクリックしまし
ょう。結果は後日集計されて、今後のオフショア大學講座に反映さ
れます。ご協力のほど、よろしくお願いいたします。

結果を見る

締切:2014年09月05日18時00分
協力:クリックアンケート http://clickenquete.com/

|

« インターネット接続料金を参照するメソッド | Main | 手続き型プログラミングっぽいメソッド名 »

Comments

一時利用される儚い運命のデータを生成するだけなら、普通に createTempData() がしっくりくる。

本設問は生成+一時保存。

もし、私が、こんな指示を受けたら「元の設計が悪いのでは?」と悪態をつきそう。

当設問は、あくまでも英語のお勉強ということで、ご了承ください。

Posted by: 幸地司 | August 31, 2014 11:57 AM

答:holdData()

解説:英単語holdのコアイメージは「一時的に確保」。一方、英単語keepのコアイメージは「長期間、特別な領域に確保」。この二つを比べると、要求仕様に近いのはholdData()であるといえる。

一方、get を使うと、空っぽの状態だったメモリ空間に、所定の出力用データが移されてメモリ空間が満たされた状態に変化した印象が強調される。

getData()は「データ取得」の意味としてピッタリだが、はやり「一時的に作業用メモリに保管する」イメージが伝わりにくい。決して悪い答えではないが、あえてここでは不正解とする。

同様に、Openだと「作業用メモリに保管する」イメージが伝わらないため不適切。

Posted by: 幸地司 | August 31, 2014 12:09 PM

The comments to this entry are closed.

« インターネット接続料金を参照するメソッド | Main | 手続き型プログラミングっぽいメソッド名 »