2021-10-29 19:43

変数名・関数名指摘おじさんになりたくないけど、命名センスはマジで大事だと思う。

みなさん、コードレビューでどれくらい変数名関数名の指摘している、もしくはされていますかね? 変数名関数名の命名センスって直接的にプログラムのパフォーマンスに影響しないし、もし指摘したとしてもそっちの方が良いという明確な根拠を提示しにくいのでなかなか難しいなーと思っています。

---

Peingを開設しました!質問や取り扱って欲しいテーマなど送っていただけると僕たちのモチベーションが爆上がりします。

https://peing.net/ja/9045551273053f#question-form

---

Work illustrations by Storyset

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

00:01
みなさんこんにちは、TRY-CATCH FMです。
このポッドキャストは、IBMに新卒で同期入社した中期エンジニアの2人が、プログラミング学習、最新のテクノロジー、働き方、練習などについてゆっくり話していきます。
では、やっていきましょう。
おそらく今年度分、ふるさと納税もうやりました?
やろうやろうと思ってね、年末まで行くのがふるさと納税です。
間違いない。
お馴染みの動きですね。
ちょっとそろそろね、いろいろ始めようかなと思って。
そうね。
いろいろね、選んでたんですよ、今週。
何かいいのあった?
うーん。
いや、これと言ってっていうやつはない気もするけど。
でもまあ、なんか、そうね。
長持ちするやつがいいじゃないですか、基本的に。
そうね、結構でも食べ物とかだと冷凍物が多いから、そのまま入れとけば結構持つよね。
果物とかはちょっと早く消費しなきゃいけないから、気をつけようとは思ってるけど。
果物欲しいんだけどね、独り物には量が多いんだよね。
そうそうそうそう。
まあ、なのでアイスとかジュースとか。
肉とか米とかね。
そうね、まあそういうやつを選んでるかな。
うん。
オロナミンCとか無駄に頼んとるわ。
別にいらないものを頼まなくていいのよ。
おいしいけどね、おいしいけど。
そうそうそう。
ちなみにどこでやってる?
佐藤フルでやっております。
佐藤フルでやってるんだ。
なんかいいとこある?
僕はふるさとチョイスか楽天でやってたけど、結局チョイスでやってるかな。
佐藤フルはペイペイ使えるっぽいっていうのは知ってるから、それだけの理由で佐藤フルやってるんだけど。
パラオタも使えるのかな?分かんないけど。
Yahooと提携してるんじゃないかな、佐藤フルって。
あーかもしんない。
多分ね、最初の年は佐藤フルが見やすかった。
サイトがすげー見やすいと思って、あそこシンプルでいいから使ってて。
すごいビジで見づらいけど、ふるさとチョイスとか楽天も返礼品の種類が多いからいいかなと思って。
そうなんだ、変わるんだね。
ふるさとチョイスがトップとかじゃない?
そうなんだ、なるほどなるほど。
で、この間佐藤フル使って、カートに入れてペイペイで払おうと思ったんですよ。
03:06
したらね、クレジットカートで払う場合は全ての自治体に対して一気に決済できるんだけど、ペイペイの場合は自治体ごとに手続きをしないといけなくて。
っていうのがあるらしく。
でもまぁそこまで多くもないし、じゃあやるかって。
要は作業としてはさ、パソコンで何々県何々市の手続き進むってクリックして、
ポチポチ入力して、そうするとペイペイのQRが出てくるからスマホでそれを取って決済するみたいな、そういう作業なんですよ。
でもね、これ2、3万くらい使うと、要は2、3回くらい決済するとペイペイのリミットにかかってしまうみたいな状況になってて。
こんなことある?こんなことある?
特殊な設定してるんじゃない?
特殊な設定してるだけなのかな、俺が。なんかね、時間を置いて再度試しくださいみたいな。
1万、1万、1万とかで使うと。
あー、ある。連続とかだとあるかもね。
そうそうそうそう。一気に10万ドーンとかだったらいいのかもしれないけど。
それはね、いける。固定資産税の支払いとかそういうので5万とかそれ以上とかをポンって入れたことあるけど全然取った。
だからやっぱりね、なんかちょっとめんどくさいんだよね。
時間を置いてっていうのがどれくらいかもわかんないし。
だから1日2、3自治体くらいやってみたいな。地道に繰り返してる。
とはいえさ、ワンストップで確定申告なしでやりたかったら、あれじゃん、5自治体以内に収めないといけないから、なんかそんなに理解くらいで済むんじゃない?
あれ?そうだっけ?ごめんちょっと俺そこを忘れてたかもしれない。
確か6以上になると。
ワンストップで6以上になるとダメなんか。
多分ちょっと変わってなければね。
やらかしたかも。
確定申告マン。
やらかした。確かそんなのあったね。
確か。
それにお前副業を始めたんやんか。
まあそうそうそうそう。
だからどうせやるよね。じゃあいいんじゃない?
副業をやり始めるから。
あ、あるわ。1年間の寄付先が5自治体以内であることってあるから。
意味ね、ワンストップのあれ、変装してくださいっていうやつ、送ってもらったけど、意味ねえな。
06:02
あれは念のために入れといてもまあいいものなので。
まあまあまあ。確かに。なんだろうこの意味が絡んでるのは。
それなんでそれがあるのかは今一応わからないんだよな。
うん。
なるほどね、なるほどね。まあいいや。
まあでもたぶんね、確定しく楽になるから、たぶん。
そうだね。
来年、今年したときにもうちょっとマイナンバー云々の関係で、来年の手続きもうちょっと楽になるっぽいみたいなやつが書いてあったから、たぶんちょっと楽になるんじゃないかと思う。何かしらが。
はいはいはい。了解です。じゃあおとなしくやります。
じゃあ雑談こんな感じで、本題の方です。
本題がですね、ちょっとこれネタ帳そのまま読むと、円数名関数名指定教授さんにはなりたくないけど、命名センスはマジで大事だと思う。
っていう話です。
まあエンジニア向けの話になるんですけど。
これは大事だよ。超大事。超大事で僕がめっちゃ下手。
コードレビューあるじゃないですか。コードレビューやっぱするじゃないですか。
で、そう俺はあの円数名関数名指定教授さんなんですよ。
やっぱね、めっちゃ気になっちゃうというか、なんかこの単語不妙じゃねえとか、文法的におかしくねえとか、たまに嫌がられることがあるんだけど。
リーダークーブルコードとかは読んだし、単語の選び方とか、単語に同じ意味の単語でもコンテキスト的にこっち使った方がいいんじゃないとか、監修的にこっち使った方がいいんじゃないとかができてなかったり、
なんかこう長くなったりとかなんかちょっと下手なんですよ。いやもうそこはちゃんと考えてもうちょっと学べばもっと上手くなるやろうと思うのでやられるんだけど。
結構指摘もらうんだけど、僕は割とポジティブに受け取ってるっていうか、なるほどなるほどって。
それ何回か指摘もらってさ、直してればたぶん近いうちにできるようになるじゃん、あれに関しては。
まあね、まあね、確かに。
フィーリングがないし別にっていう。
なんかさ、英文法的にはおかしいんだけど、日本人なら理解できるっていう変数名とかあったりするじゃん。
例えば、何だろうな、
なんか、
イズ、イズショー、
イズショーメニューとか。
09:00
ショーってあれですよ、あのショータイムのショーですよ。
同じもの。
まあだから、なんかそのままビー同士同士ってやっちゃうようなね。
そうそうそうそう。
なんかね、確かに、なんかこう、ブーリアンで出したいからとりあえずイズとかでいいかってやったっていうね。
で、ショーをちょっと同名詞とかにするのかっていうところを何かなって言ってやんなかったパターンとかがそうなりね。
俺は大体そういうのはイズメニュービジブルとかっていう風にしたりするんだけど。
そもそも単語の選定がおかしいのであってっていう。
ショーとか使うからあかんのじゃね?
そうそうそうそう。
でもまあそういうのを細かく指摘するのはちょっと気が引けるというか、
しかもそれをさ、変数名と関数名とかでさ、いろんなところでも書いてきたりしたらさ、
これ全部直してください。ちょっとなんか違和感あるんだよとか、英文法的におかしいんだよとか言うと、
なんか嫌がられないかなーっていう気はしてる。
なるほどね。パッケージ名とかフォルダ名レベルだとちょっと早めに確認しとけばよかったらダリになってなるけど、
変数名はさ、もうグレップして時間してテストちゃんと通して、変更箇所全部見て、
で、あとはもうテスト通せばよくないって感じはちょっとあるけどね。
そんなグローバルな変数ばっかでもないしね。
いるの中だけで関係するものが多いし。
あとそのなんか微妙な変数名が、
例えば曖昧な単語とかになって、
例えばなんかターゲットとかエレメントとか、
例えば曖昧じゃないですか、
そういうものがそのシステムの収穫となるドメインとかに名付けられてたら、
後々さ、入ってくる人が読むときもめっちゃコストかかっちゃうじゃない?
だから大事だなとは思う一方で、なかなか指摘も難しいなっていう。
それだったらなんかやっぱりこれはこっちの方が明らかに早いですよとか、
そういう指摘の方がやりやすいんだけど。
動くかつスピードは変わらんみたいなものに対する指摘。
もっとコメントつけてとかね。
ちょっとね、心苦しいってなっちゃうのは分からんじゃない?
そこは別に全然あ、そっかって言って、
人の気持ち含めなかったなって言ってやるから、
そこは別に指摘受ける分には良いんだけど、
12:02
するとなると嫌がる人いないかなってなるよね。
そうですね。
そのために変数名とか番数名とか自動で命名してくれる、
日本語から自動で翻訳して命名してくれるサイトもあるっちゃあるけど、
あんま使われてないよな。
どうなのあれ?いい感じの出てくる。
使ったことないんじゃない?
じゃあちょっと今使ってみますか。
変数にネーミングコーディックっていうサービスがある。
じゃあ日本語を入力するとネーミングを生成します。
じゃあメニューを表示するか否か。
いやこれ微妙だな。めっちゃ微妙だなこれ。
メニューディスプレイisnotisっていう謎の変数名が出てきた。
これは使いませんな。
そうだね。
あ、しかもこれはあれだな。
あれ?更新ボタンある?それとも入れたら勝手に更新される?
入れたら勝手にGoogle翻訳的に隣に出てくるけど。
だよね。これね助詞変えてもあんま変わんねえな。
あ、そうなんだ。
そのisnotisのやつ、メニューを表示するか否か、メニューに表示するか否か、メニューが表示するか否かって入れても全部同じのが出てくる。
あ、それは良くないよ。
だいぶ意味変わってくるよね。オートにで。
なるほどね。まあ難しいよな実際。
そうだね。ジェネレーターはより難しいよなって感じはあるから。
やっていって学ぶっていうのと観点だよね。
さっきみやちが言ったのが結構大事で、知らない人がそれ見たときに明確に分かるかっていうのが一番大事で、僕がそれ結構苦手ポイントだから今練習中なんだけど。
僕もねターゲットって使いたくなる。
ターゲットって。
大きいところでは使わないんだよ。
僕一部の対象に対してこれをやるよっていうメソッドのインプットのところをターゲットなんとかにしたくなるっていうかそういうレベルの話。
でもあんまターゲットってしない方がいいよなって。
もうちょっと分かりやすいのにするか、ローカル関数だからそんなに。
他に波及しないっていう意味でね。
なんかすごいシンプルなさ、頭文字だけ取った2文字ぐらいのやつとか使ったりするじゃない。
俺ねそれあんま好きじゃないんだよな。
2回しか出てこない、中業のメソッドだから2回しか出てこない変数で長くつけるか問題が存在するんだよね。
15:00
そこは僕もねどうしようかなっていうところはあるんだけど。
ちょっとそこも含めてない?そこは結構プロジェクトによるとか人によるところはある。
確かにそうかもしれない。変数名であんま使わない方がいい単語で言うとターゲット、エレメント。
HTMLエレメントだと結構エレメント使ったりするけど。
あとそれ以外で間違いないのはデータとかインフォってやつだね。
使いがち。俺も使っちゃうかも。
インフォはねたまに使うんだけど。
あとバリレート的なやつ。判断するよみたいな雰囲気のやつ。何を判断するのか判断したらどうなるのかわからない。
バリレートユーザーとかね。
インバリットなんとか使うときもあるけど使わない方がいいときもありとあって。
それ聞くわよく確かに。
この辺がねちょっと学び中ですね僕も。
あと変数名の話をする時に日本語変数がありなのかどうなのかっていう話があるじゃないですか。
あれはねもう日本のメンバー以外を入れない覚悟をしてるならばありなんじゃない?って感じで。
まあそうだね。
データベースとかもさ移り名を論理名のヘボン式ローマ字に固定するとかいうプロジェクトもあるにもあって。
もう確かにそれだと人による英語センスの差とかに全く左右されない。
それに論理名からわかるから。
一時に振り切っちゃうっていうのもありな気もするが。
結構多分各社の事業会社の社用システムには存在するんだよ。
そうね。
お客さんからもらうデータはだいたいそうだから。
確かに。
めっちゃローマ字使うやんっていうのがあって。
ローマ字の頭3文字取りましたみたいなやつとかもあるしね。
PSなんとかってなんだみたいな。
区分でKBLな。
まじもうわけわかんない。
あれ本当に面白い。
そこは割り切って完全にローマ字してほしいんだよな。
区分から英語で書けよっていうな。
なんかのドメインの英語に翻訳するのが難しいようなやつだったらまだわかる。
区分をアルファベット、ローマ字で書いて、それをさらに訳すのよって思っちゃうね。
18:06
この辺はやっぱりやるなら日本人しか言えない格語を持ってローマ字にするか、
略さないローマ字にするか、ちゃんと英語で頑張るかどっちかだと思うね。
SIRとかでも全然中国とかフィリピンとかお願いするからさ。
大きいとこはほんとにやったほうがいいよ英語で。
本当に?
僕らだって中国のピンインとかで書かれたら困るじゃん。
確かに。
わからんがってなる。
中国人の人にさ、これはKBNっていうのは日本語の区分の略でして、説明すんの悲しすぎるもん。
お互いつらい。
こんな感じですね。皆さん変数名は字外の意味も込めてやっていきましょう。
永遠の課題だから多分どんなにGUIにしてもかな。
多分物同士をつなげていくっていう形がプログラムにある限り、
永遠に僕らが付き合う問題だからこれ。
そうですね。
名前っていうのは。
はい。
じゃあこんな感じでですね、週2回のペースで配信しているので、
Apple PodcastもしくはSpotifyの方はぜひフォローお願いします。
じゃあ今日はこれで終わりましょう。ありがとうございました。
ありがとうございました。またね。
またね。
19:43

コメント

スクロール