第一回変数命名選手権!
「さあ始まりましたひまじんプログラマーでございますやってきましたー!はい、というわけでこのラジオは中級エンジニアが送る駆け出しエンジニアをキャリアアップさせるラジオということでやっております駆け出せ駆け出せ!駆け出せ!ダダダダダダダダ!足音がすごいボケが重なるんですね3人になるとねはい、というわけで自己紹介中級エンジニアのカイチですノリです初級エンジニアのジョンペイですというわけでこんな感じでやってますはい」
「今日は実験的な非常に革新的な企画を持ってきましたこれはもう革命が起きるかもしれませんポッドキャストにゲームだねこれはというわけで」
「第1回変数命名選手権でございますきましたー変数の命名なんて毎日やってますからねしかも我が子に名前をつけるくらい悩むと本当だよね悩みますねめちゃめちゃ悩んできましたしかもこれが難しいのが理論はあれど言うてセンスなんですよねセンスだねあと英語力とかも意外と問われる」
「それをねやっぱり中級エンジニアと駆け出しエンジニアのスキルのギャップであろうということでそこを埋める情報というかトレーニングをしていこうというところですいやでも順平がなんかいい命名してきたらなんか逆に傷つくなぁいやいやもうぜひ見せつけていきたいですね普通に僕はめちゃくちゃ苦手なので負ける可能性は全然ありますジャッジがあるんですねジャッジがあるんだ」
「まあてのでちょっと今回は実験的にやっていきますしょうかok室内は僕とのりさんで何本かずつやって吹いて最初にあえて順平に答えさせ後から僕らが答えるとなるほど時間ねー頑張ろうやーこれはね高校有利ですよそうですねそのフリータイルと同じだ俺ら先輩だからスタンとそういうね」
「リスクは踏まないようにしていきましょうか問題ごとに変えるところも無しですか?それは無しですね全部トップなのね全部トップだったねなのでぜひ聴いてる方も一緒に考えながらやってもらえればと思います頭の体操になるわこれじゃあ僕からいきましょうかレベルなんとなくで3つ付けてやってきたんですけどレベル1はもうこれはこれっしょみたいなやつなるほどね」
「いやでもこれは簡単これは多分簡単レベル2は何点でしょうまあ気をつけた方がいいよみたいなまあなんか知識を持ってる人はちゃんとつけるけどまあつけれるよね名前みたいなうんうんうんひょっとしたら悪いのになるかもみたいなやつレベル3は俺がちょっとよくわかってないやつおーなるほどはいで僕はあの最初言った通りセンスないのでその辺はちょっとご容赦くださいおーほんとかないきます第1問はいきました」
「ユーザー数を格納する変数名をお答えくださいユーザー数ゲットユーザー変数名ゲットユーザーはいかけだしエンジニアの順平くんの回答ゲットユーザーでございます先輩エンジニアのりさんユーザー数カウントちなみにその意図を聞きたいんですけど順平のどんな由来があって」

「ゲットユーザーになったんですか?とりあえずはもうユーザーを獲得してくるっていうところで複数系にしたかったんですけどできずできずできずできずとりあえずユーザーはゲットしてくるんだっていうののゲットユーザーで」
「なるほど変数から情報を引っ張るからそれの気持ちでゲットユーザーみたいなじゃあのひさんユーザーズカウントその心は普通にユーザーのカウント数というかちょっと悩んだのはナンバーオブユーザーズちょっとこの2択で悩んだんですけどナンバーオブユーザーズだとちょっとあまりにアメリカアメリカしすぎてるかなと思って日本だったら」
「ユーザーズカウントの方が通じやすいんじゃないかと思いましたなるほど一応僕が用意した正解で言うとユーザーカウントとかユーザーズカウントとかユーザーズ普通にシンプルになるほどねっていうのがあるのかなっていうのがレベル1でしたけどただ非常にいい問題作ってきたなと確かによかったいやいやいやこれはでもそれは順平の勉強にもなるしねこれね添削した方がいいなでも」
「変数名に動詞はつけないそれはね最後に言っても2問目以降もあるんだからここでちょっとレベルアップしていかないと変数名は名詞です基本的に関数名に動詞をつけようっていうのがまあ」
「暗黙のルールなのかな?混ざってましたね、俺そこなんか、FindbyIDみたいなユーザーFindbyIDみたいなイメージになってました変数名ですねありがとうございますじゃあ、第2問フォア文を思い浮かべてくださいはい配列」
「イメージファイルズっていう画像ファイルのデータがファイルパスがいっぱい入ってる配列があるんですけどそいつをフォア分で処理するときに一個ずつ取り出して処理するじゃないですかはいはいその一個ずつ取り出したやつの変数名フォア分で回すとき伝わりますかちなみにはいはいはいじゃあじゅんぺいさんお願いしますイメージイメージはいですはいのりさん同じですイメージイメージ数が元の配列で」
「それを単数形にした感じですねはいその通りでございますもしくはイメージファイルのパスだったりするのでイメージファイルでもいいのかなとか思ったりしましたけどでもその通りでございます配列から取って一個の要素だからこれはもうねiとかってつけんなよとかそういうメッセージですiだと情報が少ないと本当にシンプルなやつだったらいいと思うんですけどねはいじゃあレベル2に行きますはい」
「レベル2ですなんかのウェブアプリでサービスがあってユーザーが有料会員かどうかを表すフラグを格納する変数有料会員ユーザーが有料会員かどうかを格納する変数ですなんでトゥルーフォルスがあります辞書欲しいこれ残念ながらソラでお願いしますでもこれの模範回答というか僕が用意した回答も英語力ないかもしれない」

「ちなみにちゃんと調べてないんで僕はえー整った整った整いましたはいじゃあ順平からお願いしますはいえーマネーユーザーマネーユーザーマネーユーザーマネーユーザーマネーユーザーどれさんは?イズペイドユーザーおーなるほどー」
「なるほどじゃあちょっと順平からまあ由来もそんなないかもしれないけど一応由来お願いします苦し紛れで有料っていうのがもうお金だからマネーだろうって言うので会員使ってる人ユーザーなのでマネーユーザーですじゃあのりさんその心は僕はそのマネーの部分が支払ったに変えたんでペイドになりましたねあとトゥルーフォルスなんでこの場合だけはちょっと僕同士使うんですようんうん」
「isなんちゃらかんちゃらにするとif文の時とかにifispaiduserみたいな感じでちょっと英文ぽく読めるんで意味がわかりやすくなるんですよっていうので素晴らしいですね本当に勉強してますねちなみに僕が用意したのはispaiduserです模範回答いや模範回答じゃないかもしれない逆に僕の英語力ないからのりさんもない説もあるやばい」
「今のがレベル2なるほどこういう風にあるので型によって変わるんですよ配列だとS複数形になったりとかデュルフォルスブリンアン型だとイズなんとかとかあとなんかあったっけなそんなもんじゃないイズ何々みたいなそうですね名詞って言ったそばからあれなんですけど勉強になりますねそうっていう感じの付け方があります」
「次僕がまだよく分かってないやつです最高難易度は難易度は高くないですしこういうケースはあると思います問題ですあなたが作っている開発システムは外部APIと通信をします何かしらの」
「外部APIと通信するんですけどでその外部APIって認証が必要で認証のゲットをしてから本体の処理に入るわけなんですけどその認証処理で取ってきたレスポンスえぇはい」
「多分パイソンとかだとリクエストゲットなんとかコントカで取ってくるやつララベルってPHPとかJavaでもあると思うんですけどHTTPクライアントが取ってきたレスポンスになんて名前つけるか今回は認証処理っていうテーマでちなみに僕はよくわかってません認証処理なんで多分帰ってきたやつの中の中身のトークンを使えればいいだけだと思うんですけど一旦」
「まるっとレスポンスを受け取ると思うんでその1回まるっと受け取ったレスポンスに何と名前をつけるか整ったら教えてくださいはいこれムズだなこれは僕はよくわかってませんなんなら普段別にいやって適当にやってますいやー全然ムズいなとどめました大丈夫とどめましたはいじゃあじゅんぺいくん整ったときはやりましょうかはいじゅんぺいからお願いしますはいえー」

「ゲットレスポンスゲットレスポンスゲットしたやつのレスポンスですじゃあのりさんレスポンスレスポンスじゃあじゅんぺいその心はもう動詞使うなよと言われたんですけど使いたいなと思ってゲットしたんですよゲットしたやつゲットしたやつっていうまあもうレスポンスはレスポンスなのかなっていう感じですねのりさんはいやまあなんかちょっとこれ背景も」
「説明していいですか?あーどうぞどうぞ多分認証用でメソッド切ると思うんでレスポンスだけで十分かなって思いましたなるほどそのメソッド内にはレスポンスはそいつしか存在しないだろうそうそうそうオーソライズみたいなメソッド切ってその中に書くだろうからまあ名前つけなくてもいいかなっていううんうんうん」
「ちなみに僕が思ってたのはレスポンスですおーそうなんだ突っ込みつくのか同じところにただ本当にそれでいいのっていうのはちょっと僕の中でも答えがなくてそのオーソライズドっていうメソッドには入ってると思うんですけどまあでもねえ」
「なんだろそのapiログインなのかなログインapiなのかもしれないですけどなんかログインapiレスポンスなのかで情報足してもいいだろうしレスポンスでもそのレスポンスを受け取った後に多分トークンイコール何々みたいなのが入るって考えるとパッとこのレスポンスはすぐ使わなくなるトークン取り出すためのものだなみたいなのが読めたりするのかなと思うとレスポンスでもいいのかなそうね」
「っていうのでまぁ結局めんどくさいから今レスポンスしてるんだけどそうこれはねちょっとねなんかあの最近クリーンコード読んでてクリーンコードのあれをなんか本格的に守るとあんまりそういう書き方しないのかなって思いつついやでもレスポンスよくねって今思っててやってるっていうのを出してみました難しいしちゃうなぁ」
「難しいよね。動詞使いたくなっちゃうんですね。動詞はね、でもね、動詞は使わない方がいいよ。動詞は混ぜてるよ。それも間違いないですね。ブーリアンの時だけで。なるほど。せめて自動体とかで100歩譲って、パースドみたいな、こういう形にされたやつみたいな表現はあるのかもしれないけど、でもそれもあんまりやんないよね」
「なんでゲットレスポンスはやめるくださいはいやりませんじゃあ僕の問題は以上でございますちょっとでも高品質の問題だったなマジっすか嬉しいなそれはとりあえずあの全然僕が一番嬉しかったのは1問目でじゅんぺいが引っかかってくれたのが一番嬉しいこれ聞き返した時恥ずかしいな恥ずかしいやつだこれ」
「いやでもこれはあのねあのーなんでしょう聞いてる人もねうんまあこれで回答まあ僕と同じことを言ってたならそれに満足せずもっといい命名考えてください本当にでこれこうじゃねっていうのはちょっとコメントでいただけると僕らも成長できるのですごいなんかそういうのねちょっと聞きたいですね正解ないっすよねある程度ある」

「これ僕5ヶ月目ですけど1問目は結構恥ずかしい答えしたなって思いますねそうなんだでも僕1年目の時もそんなもんだってだから超バカにされたでもねそう出るんだよね結構変数の命名によってコードの読みやすさとかその人がどんだけちゃんとコーディングする時に気使ってるかみたいなのが見えるからこう押さえておきたいですねちっちゃいこと大事ですよ変数は」
「準備できました?はいうわぁ緊張するなぁうわでもちょっとなんかねあれだわカイチとね視点が違ったわあ、いいっすいいっすいいんじゃないですかいきますはい第1問じゃあ僕もちょっと思うレベル順でいきますねはいショッピングカートの中身を保持する変数ショッピングカートの中身をが入ってるってことですよねそうですはいうわぁちょっと待って英語力がないぞECサイトをイメージしてくださいいきましょうもう僕の英語が出ないのを諦めました」
「諦めましたか?諦めましたじゃあまずは先行の順平くんからカートリストカートリストじゃあ僕アイテムリストアイテムリストもうねアイテムは妥協しましたなるほどね思いつきませんそこの部分ちなみに何の日本語を英語にしようとしてるの?商品とかそういうニュアンスのやつが入れたかったですあーなるほどね」
「じゃあまずじゅんぺい君から解説を聞いていきましょうか僕はもうカートの中のまずはカートアイテムが商品が何個も入るわけなんでリストになるのかなっていうのをくっつけてカートリストなるほどなるほど僕はナニマルリスト系の名前の場合は物ユーザーが入ってたらユーザーリストらしいなんでそれぞれの要素を」
「プラスリストっていう名前にしようと思って商品が思いつかずアイテムになっちゃいましたなるほどね確かにその理論でいくとじゅんぺいのはカートの中身じゃなくてカートが並んでるショッピングカート軍団になってると確かに多分コード見てそう捉える人はいないとは思うけどそう捉えることもできてしまう名前になっていると」
「なるほどいいですねちなみにこれ僕の中だとカートアイテムスでしたねカートのアイテムスなんだなるほどカートかカートアイテムスとかつけちゃうかなカートってやっぱ一般的なんですかね結構使うような気がするななんかよく」
「カートというかECサイトっぽいチュートリアルとかあるじゃん結構あれとか見るとカートアイテムとかが多いかなっていうイメージはあるねなんかアメリカンですねだってカート押すことなんてあんまなくないですかカゴじゃないですかカゴ日本人の感覚でいくとアメリカンじゃないですかカゴまあ確かにねあの」
「コストコとかだよねドデカカート三兄弟みんな乗れますみたいなカート洋画でよく見るやつなんかちょっと文化を感じましたね言われたら確かにそりゃそうかとは思いますけど勉強になる勉強になりますねECサイトのチュートリアルやったことないポートフォリオしてないから次の問題これちょっと簡単かもこれもレベル1ぐらいですか?」

「了解です購入履歴を格納する変数はいはいはいOKですちょっとECサイト寄りになってます今僕ははい決心ついたね決心つきましたはいじゃあ」
「先行の順平君からいきますかはい行きます購入利益バイリストバイリストはいはいはいじゃあかいち君ははいパーチェイスドヒストリーズおーなるほどねすごいなるほどバイリストもまあ確かにちょっとこれから買うのか買ったのかが分かんないはいはい」
「ちなみに僕もパーチェストリストリー間違えたパーチェストリストリーでした履歴だから多分複数入ってくるだろうし購入したってなるとパーチェストになるのかなって」
「あと履歴っていう単語とヒストリーっていうのが結構よく使われるんだよねヒストリーコマンドっていうコマンド履歴を見るコマンドとかあとブラウザの履歴とかもヒストリーなんですかねヒストリーバックとか言わない?言うのかブラウザバックか履歴は割とヒストリーっていう言い方されがちこれはでも慣れてないと分かんないけどねでも」
「使ったことあります。思い出しました。使った回数は俺の方が多いから多分。そういうなんかそのさ、同じ単語だけど違うニュアンスというか細かいニュアンスまで表現するのもむずいですよね。むずい。うん。俺はもうなんかケースバイケースとしか言えん気がするわ。うん。いやー勉強になりました。はい。じゃあ次行きますよ。これねーシンプルなんだけど結構悩むやつ。うわー怖ぇー」
「なんかウェブサイトに検索用のフォームがあってそこで入力した値を受け取る変数ちなみに入力値はキーワードですねECサイトだったら商品名とか検索したフォームボタンを押した後に検索ワードを受け取る変数ですよねそう」
「決まりました。来た来た。じゃあちょっとじゅんぺいくんからいきますか。いいですか。はい。はい。サーチキーワード。サーチキーワード。じゃあかゆちくん。サーチキーワード。サーチキーワードが来た!これは嬉しい!いやーこれは自信ないですよ。なるほどね。いやこれちょっとでもね、俺も正直サーチワードとかにしちゃうかもしれない。うーん。その心は?」
「キーワードもワードも情報量同じかなみたいな気持ちではあるちょっと相談というか質問なんですけどはい」

「入力の変数がキーワードっていう命名がされてるのかなと思ってて入力の変数入力の時のさっき出題の時に入力の時のワードがキーワードですねって言ってたのはそうか他の変数とか関数で他の関数でキーワードって扱われてるのかなと思って文字を合わせて」
「キーワードにしてたんですけど表記ブレをなくすために表記ブレをなくすためのキーワードとなるほどねちょっとこれ悩んだのはサーチクエリーとかもちょっと悩んだ割と海外のサイトとか見るとさゲットのパラメーターのところクエリーとか9とかになってるじゃん」
「意外とそっちのワード使われるのかなとか思ったりねでもクエリはちょっと広い気がしますねクエリは広いクエリの中のキーワードな気がしますなるほどねクエリだとパラメータ全体になっちゃう全体になっちゃうんじゃないかなってその中でワードだけを入れるならキーワードになるからみたいななるほどねこれはちょっとねおもろいですね同じ回答でも質が全然違いますねなるほどなるほど勉強になるな」
「ちなみに言うと全然あるよ適当につけてる感じあるね収録だとちょっと緊張感ありますねパソコンで打つのとちょっと違いますからしかもこれを発信してるってやばいよね知無を晒してるわけですからね間違いない伸びるぞちゃんと評価される成長するぞ俺はじゃあもう一問あと2問かあと2問いきますよ第4問あるウェブサイトでバナーを」
「表示するかどうかの出し分けをするフラグですなるほど中身はブーリアンが入ってますはい悩みましょう悩みますこれは悩みましょう一瞬で回答してるみたいになってますけどカットしてるねそういうことです勘違いしないようにエンジニアの大半の時間は考える時間ですから本当ですよねはいじゃあまずはじゅんぺくんはいオープンバナー」
「オープンバナーオープンバナーオープンバナーカイチくんイズバナーイズバナー先ほどのなるほどねもう無理です僕は限界ですオープンバナーかイズバナーか無理だなニードバナーニードなのへー初めてでもちょっとね」
「苦し紛れのニードちょっとこれは諸説あるな苦し紛れのニードコメント荒らしてほしいですねこれはちょっとぜひ欲しいよねアイディアマジ無事イズバナーだとでもバナーかどうかみたいになっちゃうからなんか間に欲しい感はある確かにイズバナーだったそうだねバナーかなんか他のやつかかもしれんいやねその表示するっていう単語を入れたかったんですよ逆にショーバナーとかの方がなんか分かるのかショー」
「なんか表示とか出力出力出力っていう英語が出てこないなと思ってオープンに調べていいですかいいよ試しにショーバナーいい気がするないいっすね確かにうんIFショーバナーって通じるよねショーバナーだなショーバナーうんショーバナーがベストアンサーになりそうですかこれショーバナー」

「ショーバナーですねあとはショーバナーショーバナーっていう単語を見たときにブールかなっていうのが分かるかですよねたまにあるよね名詞から間違えたら動詞から始まって中にブーリアン格納されてるみたいなサンプルコードそんなに僕コードみたいなの分かんないですけどなるほどなんとなくイズとかハテナとかつけるっていう宗教にいるんで僕はあー分かるつけたくはなるよね」
「それ以外にありますよねパターン新口ショーとかキャンとかニームとかイグジストとかじゃないキャンシエンイエスそれはなんか権限ある系ですよねちょっとピンとくるのないなショーいいかもしれんですねなるほどめっちゃ勉強になるいいっすねラストラストはちょっとね」
「ちょっとこれ順平的に若干むずいかもしれないもう全然任せてくださいテストコードで使用するMockのオブジェクトなるほどMockはわかるわかりますMockのオブジェクト例えばそうだな今回よくECサイトの例を出してたので普通に何にしよう」
「ユーザーのデータベースを扱う層のオブジェクトのMockはい整いましたいいですかテストMockカイチ君元のオブジェクト名プラスMockなるほどどうするんですか普段そうやっちゃってましたそうやっちゃってましたはい」
「ちょっとこれ僕ねー揺れてるんですけどこれはいどっちかっていうとか一回地よりはいだけど元の奴と同じ名前にするかも全くその心要は木かどうかは意識しなくていいんじゃないかなっていうテストにおいてもっく使えるとだ多分インターフェースで抽象化してますよねうんはいなので」
「そもそもインターフェースで抽象化してるってことはその実態がなんであれ関係なく使えるってことじゃないですかってなった時にわざわざMockをつけなくてもいいんじゃないか派の人間なんですよ僕であなたなんて言いましたっけ僕はもう」
「テストモック全体をカバーしましたなるほどねちょっと広すぎる全く絞れてないちょっと広いな1個のポイントとしては絞るっていうのは命名のコツとしてあるかもしれないですね確かにね具体的にするっていうねモックつける話の意見としては」
「単体テストなんですよねなんで単体テストって他の関数の実態を使ってはいけないっていうのがあると思うのでちゃんとそれ守ってるぜっていうのを主張するためにもっくってつけるべきなんじゃないかなって思ってる派なんですけどなるほどどうなんでしょうねつける派ばつもいますそれはそうですよねそれは」

「これもちょっとあのぜひねあのキノコ竹のこのごとくねいやこれとで戦争していただいてかなりの戦争になると思います僕の5ヶ月目の経験で見るとパッと見見た時分かりやすいのはモックって入っても分かりやすいような感じはしますけどなるほどね」
「これははいあのちょう殴り合いで決着つけるスリ的なこの後やりますねはいいやちょっとでこれもう終わりですよねこれで終わりですやったの楽しかったらしかったらいやーこれを持ってないなぁオモロイためになるなぁしかもで問題は全然作れるしちょっとなんかもしこれで4」
「好評とかだったら今後関数名とか関数とかねいけるね広がりいっぱいあるんだよ今回第1回でしたからね第2回もあるしいけます変数でもまだまだ広げれる感じあるしね実際の現場とかでもこの変数名ってなった時の問題をオブラートにしてここに持ってくるそれもありだねそれありありあり」
「人狂になりましたしやっていこうこれを配信してる事実がまずすごいから多分一部を晒してるからなんならじゅんぺいが普段悩んだやつを持ってきてほしいよね持ってきてほしいじゃあちょっと問題はじゅんぺい次は考えてきてもらってねやりましょうというわけで話してもらえたんで終わりましょうか終わりますかまた次回バイバイバイバイバイ」
「イマジンプラグラマーではメールを募集していますトークテーマ悩み要望などなど何でも募集中です宛先はひまプロ11atmarkgmail.comhimapro11atmarkgmail.comになりますそれではまた次回」