関数名の付け方は難しいね。

3
ほえほえ@スプシマン @hoehoe1234

関数は 動詞+名詞(または逆) なんだけど、形容詞的なものをどうするか?は名詞の後か前かはよくなやむ。それはおいといて、動詞と過去分詞は使い分けないと順序が逆になるので注意だね。

2021-06-10 17:42:14
ほえほえ@スプシマン @hoehoe1234

過去分詞は名詞(の仲間)なので名詞の位置におかなきゃいけないんだよね。これ、よく間違える。次にあるのが「アクション」を名前につけるか「戻すもの」を名前につけるかの葛藤。これは答えがでていない。

2021-06-10 17:43:54
ほえほえ@スプシマン @hoehoe1234

tk_sort関数は、ソートするというアクションを関数の名前にしている。一方、tk_sorted関数は「ソートされたものを返す」という戻りデータを関数名に採用している。前者は動詞なので機能、後者は名詞なのでデータを示唆しているんだね。これは両方合理性があるのでよく悩みます。

2021-06-10 17:45:30
ほえほえ@スプシマン @hoehoe1234

これは動詞が ①そのまま使うと機能をあらわし ②過去分詞にするとデータを表す ことに由来しているので、たぶん、プログラミングというよりも分類学とかそういった体系を勉強しないと深堀りはできない感じなのかな?

2021-06-10 17:46:37
ほえほえ@スプシマン @hoehoe1234

これだけ多くの人が関数名に悩んでいるので「分類学からみた関数名の付け方」みたいな書籍があってもいいとおもうんだけどね。sheet_bulueはbule_sheetでもよくて言語により並び順が違うしね。

2021-06-10 17:48:05
ほえほえ@スプシマン @hoehoe1234

very_firstも、first_veryでも特に問題はないんだよね。どちらも動詞と名詞を修飾するので位置は自然ときまるんだけど、思い出しやすさからは動詞、名詞が先にきたほうがよいとおもうんだよね。

2021-06-10 17:49:24
ほえほえ@スプシマン @hoehoe1234

obj_blueとblue_objでは関数を思い出すときに、名詞が先に思いつくのでobj_blueのほうがよいと思うし、very_firstも同じ理由で副詞が後がいいとおもうだけど、たとえばmore_token関数などだと状態を表すmoreが先のほうがわかりやすい気がする。

2021-06-10 17:51:32
ほえほえ@スプシマン @hoehoe1234

オブジェクト指向との親和性なら 名詞+動詞になるんだけどこの名詞の前後に形容詞的なものが、動詞の前後に副詞的なものがつくので、仮に関数名を名詞+動詞と決めたのであれば

2021-06-10 17:52:27
ほえほえ@スプシマン @hoehoe1234

①(形容詞)+名詞+(形容詞)+(副詞)+動詞+(副詞) になって、かつ、isとかhasのようなものは別扱い。って感じでいいのかな?しかし、動詞を過去分詞にした場合の名詞としての扱いは、本質的な名詞とは違うような気もしてるんだよね。

2021-06-10 17:54:04