日本語命名について本気出して考えてみた

テストコードで日本語メソッドや日本語変数名を使うけどプロダクトでも使えるケースがあるのではないか?その際のメリットって何かを有識者の方々からお伺いしたのでまとめておきます。
8

煽られたのでまとめます。

というわけで本流

テスト書いてた時にふと思ったことをツイート

そーだい@初代ALF @soudai1025

テストコードで日本語名methodよく使うんだけどUTF8で統一された環境だしメソッド名や変数名に変な名前つけるくらいなら日本語名使うのもありなんじゃないかなって思ったりもするんだけどなかなかプロダクトで勇気でない。

2015-05-05 02:04:57

寝て起きたらきょんくんさんからレスついてた。

きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 僕もたまに思います。ただ、ものにもよると思うんですけど、日本語だとまた違う感じで命名しなければいけないのでいつもそこで諦めますね。。。日本語で考えるのが難しいというか。英語と日本語だと言語学的にも扱うものが違うというか。 [うさみみ*´×`*エンジニア]

2015-05-05 07:50:01

ちょっと意識高い高いした

そーだい@初代ALF @soudai1025

@kyon_mm 僕はプログラミング言語でも「サピア・ウォーフの仮説」はあり得ると思ってて(昔Matzも言ってた気がする)更に言うと言語内で利用する自然言語もクラス構造だったり設計に影響すると思うんですね。なので英語の方が目的をハッキリさせるのに向いてると思います(続く

2015-05-05 10:52:11
そーだい@初代ALF @soudai1025

@kyon_mm でも拙い英語と成熟した日本語ではどちらがより良いイメージを作れるかというと成熟した日本語と言うパターンもあり得るんじゃないか?と思ったりするんですよね。それをテストコードを書くときに感じる事が多々あるのでチャレンジする価値はあるかなと思います。(続く

2015-05-05 10:55:57
そーだい@初代ALF @soudai1025

@kyon_mm 例えば読む、読んだが英語だと両方「Read」だったりするじゃないですか。メソッドも明確な名前をつけるべきとか。そういうところは日本語名の方が適切に出来る事もあると思います。ただ命名に自由度が高すぎてgrepに弱いとかあるので命名規則が必要かもしれませんが。

2015-05-05 11:00:27
そーだい@初代ALF @soudai1025

@kyon_mm ということで長文になりましたが一人でコード書くときに試してみます!!!

2015-05-05 11:01:24

超わかりやすく僕のフワッとしたところを言語化していただいた

きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 いいですね。自分がよく思うのは、受動態や使役文の違いが大きいとかですね。メンタリティがちがうというか。日本語だと「彼は雨でずぶぬれになってしまった」だけど英語だと「雨が彼を濡らした」みたいになりますよね。そもそもオブジェクトに対する認知が違う。

2015-05-05 11:15:44
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 あと、受動態に対する捉え方って意外といろいろ違うとか。「AがBにXした」はAさんの行為に着目しているけど、「BがAにXされた」はXという事象に着目している。というように捉えがちなのが日本人には多いとか。

2015-05-05 11:17:32
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 文法や語彙をどう捉えるかという言語学という意味でも英語と日本語には大きく差異があると考えることも出来て、そのうえでプログラミング言語にするときは、まさに小説を書くかのように、プログラマーが世界をどう捉えているかが重要というか。

2015-05-05 11:19:06
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 たぶん、日本語でプログラミングするととても、ある面ではわかりにくくなるし、ある面ではコンテキストを非常に重要視するような書き方になると思います。例えば、「読む」だけでも「音読」「黙読」「心を読む」とかたくさんありますよね。

2015-05-05 11:20:54
きょん@アジャイルコーチ、システムアーキテクト @kyon_mm

@soudai1025 文化と語彙がプログラムコードに表現することはまさに文芸的プログラミングの台頭といえるし、僕はそれをまずは、タスク管理とテストコードで実践している感じです。(多分生粋のBDDerとかDDDerはそうなんだと思います。

2015-05-05 11:21:59

ちょっとだけ周囲に波紋が広がった

こざけさんがOptionの話をしてたので振ってみた

たしかにいきなりプロダクトで使うのは怖い。
あとこのまとめにはOptionの話は出てきません

そーだい@初代ALF @soudai1025

こざけんはLLやれば良いんじゃないかなと思ったけど下手にPHPを進めるとマサカリで死ぬのでそっと胸に閉まっておいた。

2015-05-05 11:03:39
だいくしー @daiksy

@soudai1025 twitter.com/garbagetown/st…

2015-05-05 11:04:38
がるがべさん (思秋期) @garbagetown

こざけさんのタイポ率と固有名詞のあやふやさと天然っぷりを見ていると、この人にLL書かせたらどうなっちゃうんだろうと思う

2015-05-03 15:03:23
そーだい@初代ALF @soudai1025

というわけでこざけさんにJavaで日本語メソッド名と日本語変数名をつかってプロダクトコード書くの試してほしい。

2015-05-05 11:06:24
こざけ @s_kozake

@soudai1025 テストコードは普通に日本語使いますね〜^^;

2015-05-05 11:10:10