1. Yokohama North AM
  2. ep 35 @handm871とゲストにつ..
00:06
こんばんは、Yokohama North AM第35回です。
Yokohama North AMは、ウェブ系エンジニアがテク系のキーワードをネタにして雑談をするポッドキャストです。
ホスト役は、自称フルサイクルエンジニアのハンハン1978です。
本日の相手は、松尾さんです。
こんばんは、松尾って言います。
松尾さん、よろしくお願いします。
この松尾は誰だって、多分ね、普段のリスナーさんは思うんですよね。
なぜかというとですね、ペチパー界にはですね、ローカルディスクさんという松尾さんがいるんですが、
この松尾さんは、僕の今の現場の知り合いの松尾裕樹さんということで、よろしくお願いします。
よろしくお願いします。
今日、実はですね、今までのポッドキャスト35回やってきた中で、
一番マジで全然知らない人の、あんまり知らない人の何を話したもんかっていう。
昨日ね、ツイッターでポッドキャストの出演者を募集したら、DMを出してくれて、
誰だろうと思ったら、現場の松尾さんです、松尾ですって言ってくれたんで。
ということで、今日来ていただきました。よろしくお願いします。
よろしくお願いします。
今日のテーマなんですけど、僕はマジで知らないので、ゲストについて聞きたいということで、テーマ1はゲストの松尾さんについて。
テーマ2は松尾さんは俺のことを知らないということなんで、僕について松尾さんから100の質問をしてもらいます。
で、テーマの3が、松尾さん、軽くだけ紹介しておくと、まだ若手のバックエンドエンジニアの方で4年半ぐらいなんですかね。
なので、トミノコさん、新しい現場で気をつけていることって何ですかって聞かれたので、それについて話しますかということですね。
なので、この3つでよろしくお願いします。
はい。
じゃあまずゲストについてなんですけど、何者ですか。何者なんですか。
この松尾は現在フリーランス。
フリーランス。
で、主にPHPを書いてる人です。
そうですね。同じ現場ってだけで同じチームじゃないので、あんま知らないんですよね。
本当にそうですね。
その割に結構話しかけてくれますよね、スラックとかで。
そうですね。その辺がなんかあれかもしれないですね。僕は人に対する距離感を常に言っちゃうタイプの人なのかもしれないです。
でもありがたかったですよ。
そうなんですね。
だって、基本スラックじゃないですか。
はい。
03:01
だから誰も話しかけてくれないと寂しいっていうか。
そう、なんか強めでも接触してくれてる人がいると、あ、俺認知されてるなみたいな感じで助かるんで。
ちょっと嬉しかったです。
じゃあ良かったです。
良かったですよ。
で、バックエンドでフリーランス。
はい。
主にPHPと。
はい。
主にPHPって大学時代からPHP書いてたんですか?
いや、全然大学時代は僕文系出身なので。
出た、文系出身。
はい、文系出身でパソコンは触ってたんですけどプログラムは書いたことがなくて。
それでなぜにフリーランスでPHPを書いちゃうんですか?
ちょっとそこまでの期間がすごい色々ありすぎて長くなっちゃうんですけど。
どうぞどうぞ、全然いいですよ。
ありがとうございます。
はい、喋って問題ない話であればどうぞ。
全然大丈夫ですよ。
最初僕、メーカーの営業マンになりたくて、なんとなく。
で、福利構成が良くて、はい。
福利構成。
すいません。
いや、良いと思います。
いや、ゆとり世代なので。
僕もそれにもすごく納得です。
福利構成は良いに越したことがないです。
福利構成が良くて、家賃補助が出て、ボーナスが高くて休めるっていう会社が良かったです。
いいですね。
最低ですよね。
いやいやいや、最高じゃないですか。
最高ですか。
最高最高。
で、市場価値の高い商品を持っているメーカーに行って、それを売れればいいんじゃないかと思って、そのキャリアを目指そうとしたんですよ。
最初は。
そしたらなぜか、兵庫県豊岡市っていう、木の先にてっていう小説があるじゃないですか。
はい、ありますね。
国語の教科書に出てくる。
谷崎純一郎ですか、木の先。
誰だっけ。
志賀直也でした。
志賀直也、そうそう、その辺の人ですね。
近くに住んでくれって言われて。
本社が大阪だったんですけど、あそこになぜか飛ばされて。
いきなり。
いきなりですね。
ちなみになんですけど、松尾さんはどちらご出身なんですか。
僕、岐阜県ですね。
岐阜。で、もしかして大学は関西とかってそういうこと?
そうですね、大学は志賀大学っていうところだったんですけど。
志賀大学、なるほどなるほど。
06:01
志賀大で兵庫に行けと。
はい。
なるほど、本当は大阪が良かったんですか。
本当は大阪でシティライフを送りたかったっていう。
シティライフって面白い。
では結論から言うと、僕営業マンとしてキャリアを選びたかったはずなんですけど、工場の現場の強い人になってほしいみたいな感じになっちゃってて。
そうですね、工場、現場入って、工場の室温が常に40度を超えてるんですよ。
めっちゃあったかいですね。
いや、半端ないです。湿度120%くらいで。
長袖で。
お肌に。
そうなんですね。そこでしばらくやられてたんですか。
3、4ヶ月くらいしたら、もう体にガタガタが来てバタッと倒れたんですよ。
熱くて。
はい。
その工場で働いてる人たちは半端ないですね。
そうですね、ひとか向けてますね。
なるほど。
向けては向けない。何か向けてますね、きっと。
で、倒れてどうなったんですか。
熱中症で倒れて、病院でこうやってベッドの上で点滴を受けてるんですよね。
結構長いじゃないですか、点滴を受けてる間って。
その時、就職活動ちょっとだらしない理由でやりすぎたなと思って。
自分が本当は。
すいません。
いや、そうですか。俺も全然だらしないと思わないですけどね。
すごく目的を持って市場価値が高い商品を売っていて、福利構成が良くて、休めてボーナスがもらえるメーカーの営業。
ちゃんとターゲットとか目標を持ってないと、それが間違ってたか間違ってなかったか分かんないじゃないですか。
すごく良いと思います。ものすごく良い目の付けどころだと思う。
いや、マジでマジで。
ありがとうございます。
ただ、あれこれって、工場で仕事してて楽しくなかったですね。
ガスバーナーで鉄の棒を切るみたいな、そこの技術を、
実際の商品で練習しろみたいな感じで言われて。
ミスったら商品にならないから怒られるみたいな。
辛い。
あれ?営業じゃない?
そう、全然営業じゃないですよ。
工場の現場の人になれみたいな感じだったんで。
なるほど。
それで、自分の好きなことなんだっけって考えた時にパッて浮かんだことがあったんですよ。
それがロックマンエグゼっていうゲームだったんですね。
09:01
いきなりロックマンエグゼになりました。
ロックマンエグゼ、ちっちゃい頃めっちゃやってたなっていうのを思い出してですね。
ロックマンエグゼって、インターネットのウイルスを倒すっていうゲームなんですけど。
確かにそれが好きで、パソコンを触り出したなっていうのを思い出して。
そこからIT業界の道が開かれましたね。
え、開かれるのこれ?開かれてるこれ?
え、開かれるんだ。
でも、もともとパソコンはいじってたんですか?なんかやってた?
そうですね。インターネットで何でもやろうとする人だったんで。
じゃあホームページ作ったりみたいなことはやってたみたいなことは?
いや、作ったことはないですね、あまり。
なかったんか。
そういう系は全然なくったですね。
え、でもここから、え、この時点でどのくらい経ってます?まだ半年くらい?
半年くらいですね。
え、ここからどうIT業界に行くの?
そこから実家帰って、ITって言ったら都会にあると思ったんで、名古屋の会社に通ってましたね、1年ぐらい。
え、いきなりじゃああれですか、第二新卒みたいな感じで名古屋のIT系の会社に転職みたいな、そんな感じ?
おっしゃる通りですね。
なるほどなるほど。そっかそっか。
じゃあまだあれですかね、新卒のくくりみたいな感じでIT系になんとか滑りがんした?
はい。
なるほど。理解しました。
ありがとうございます。
じゃあ名古屋で何をされてたんですか?
名古屋では受託開発。マッチングアプリの受託開発を先輩に引っ付いてやってて。
最初の1ヶ月はHTMLとCSSの本、これ書いてあるから読んどいてって言われて、2ヶ月ぐらいからテンプレートエンジンの文言直してって言われて。
3ヶ月目からじゃあプログラミングやろっかみたいな感じで、実際のプロダクトコードを見て何が書いてあるか全然わからんみたいな。
それPHPですか?
PHPです。
なるほど、ここが始まった。
CodeIgniterっていう。
CodeIgniter?CodeIgniterのいくつだろう?3?
3でしたね。
CodeIgniter3。
じゃあここで基本は割とじっくり学べたというか。
松尾の8割ぐらいの知識はここでつきましたね。
12:02
すごいですね、松尾80%ここ。
そう、80%ここでつきました。
なるほどなるほど。これが何年ぐらい?
トータルで1年半ぐらい。
でもここでまだ2年しか経ってないじゃないですか。
そこからいきなりフリーランス?
違います、そこから東京に来て。
東京進出。
その時お金なかったんで、SESの会社で引越し代と家全部出すから来るみたいな感じで。
ただで東京行ける。
やったー。
なるほどなるほど。
会わなかったら帰ればいいやっていう軽い感じで来ました。
なるほど。
じゃあ今もここに所属してるって感じですか?
今はしてないです。
じゃあここからさらにワンホップしてフリーランスって感じなんだ。
そうですね。
すごいですね、よくこの短期間に鉄を切る現場からアイデアが入っていって。
自分的にはどうなんですか?ロックマンエグゼに近づいてるんですか?
自分的にはそうですね、今もウイルスバスティングしてるんで、バグを潰すって意味で。
なるほど。
確かに、紹介文にユニットテストが好きって書いてありましたもんね。
そうですね、確かに。
すごいなー、じゃあPHPユニットでバグを倒すと。
松尾マンエグゼが倒している。
なるほど、でも面白いですね。こういう変遷の仕方はあるんですね。
そうですね。
てっきりなんかテックキャンプとかあの系あるじゃないですか。
はい。
エンジニアに転職するためにまずはここで半年間かけて、レールを作ってアプリを作ってみたいな。
ああいう方向性なのかと思ったんですけど、新卒カードを使ったのは賢かったかもしれないですね。
そうですね。僕の時も流行ってたんですよ、そういうの。
ああ、そうなんですね。
はい。ただお金ないっていう、お金がないっていう。
そっちか。
そっちもあったんですけど、僕ちょっと考えたんですよ。
その学校行ったらお金たくさん払ってくれるっていうか、お客さんのためになるエンジニアになれるかって言われたら違うかなと思って。
それだったら部落企業に入って、
15:01
すごい、お金を払って勉強するんじゃなくて、お金をもらいながら仕事をした方が、お客さんは仕事をしたんなら、じゃあこれやってくれって言ってくれるんじゃないかなと思って、その道を選びましたね。
すごいですよね。これ完全に正解の道ですよね。
はい。
でもブラックで打ち死にする可能性も多少あるかもしれない。
人によっては。
そう、人によっては。
やったんですね。
はい。
分かりました。いやもうでもだいぶ理解できました、俺も。
どういう人なのかっていう。
ありがとうございます。
助かりました。
素敵ですね。
全然素敵じゃないと思いますよ。
いやー何回何回デスマッチしたことか。
いいじゃないですか。だって今やって4年半ぐらいでしょ、歴。
それでデスマッチ何回もして、でもまだそんなに明るく笑ってエンジニアやってられるじゃないですか。
そういうことですか。
これは素晴らしいことだと思いますよ。
素晴らしいことなんですね。
最初の名古屋の現場、実は良かったんじゃないですか。
でも若干ブラックだったんですか。
ブラックはブラックだったんですけど。
ブラックだったんかい。
スーパーブラックでしたよ。
スーパーブラックだった。
1ヶ月300時間働いて残業代1万とかでしたから。
やば。
でもあれですよね、それを覚悟して言ってるからまあ大丈夫ってところもあるのかな。
そうですね。
手に触付けに行ったみたいな、とにかく。
はい。
今ツイッター上でいいカリキュラムだったのかなっていうコメントがあったんで、どうだったんだろうと思って聞いてみたんですけど。
カリキュラムはないですね。
つまりこれはもう完全な生存バイアスです。
死ねないし、仕事しないとご飯食べれないから頑張る。
頑張るみたいな。
夜10時に帰ったら嬉しい。
でもその気持ちはちょっとわかるかもしれない。
僕も住宅にいたんで、10時ってちょっと早いみたいな。
なるほど、そうだったんですね。
とりあえず松尾ひろきさんについて。
多分松尾さんも僕のこと知らないと思うんで、テーマの2番目ですけど、僕について何か聞きたいことってありますか。
転職の面接みたいな。
いやでも仕事していく上でそういうバックグラウンドがあった方が、僕も富所さんに聞きたいこととか聞けると思うんで、ちょっと質問させてください。
どうぞどうぞ。
とみどころさんがこの業界を志すに至ったきっかけを聞きたいですね。
僕はもう完全に結婚したかったからですね。
どういうことですか。
18:01
僕の年齢、今42歳なんですけど、ちょうど大学卒業した頃の2000年頃って就職表書きちょい明けたぐらいだったんですよ。
就職先がないっていう状態。
僕の同級生たち何やってたかっていうと、ITバブルがちょっとずつ出てきてたんで、SEになるって言ってみんなSEになったんですよ。
理系の子が。
で、僕はそれを見て、物理学科だったんですけど、もうこいつらは全員志が低すぎると思ってたんですよ。
もっとちゃんと企業の研究職とか目指させようと思ってて。
こいつらみたいには俺は絶対ならない。SEなんか出て死んでもなるもんかってその時思ってたんですけど、その後僕は大学院行って卒業した後に、どうにも仕事がないと。
どうにも仕事がないけど、その当時今の奥さんと結婚するって話になってたんで。
奥さんの実家に挨拶に行きたかったんですけど、流石に就職も決まってないのはちょっと罰が悪いなと思って。
で、あまりにも仕事がないから諦めて、SEの会社を上から順番に片っ端から受けようって言って。
当時リクナビみたいなサイトで多分出てる会社を上から順番に受けていって、多分3番目ぐらいの会社に受かってそれで行くことにしました。
やっぱ3はマジックナンバーなんですね。
はい、3番目でしたね。僕もほんとね、なめきって就職活動してたんで、半袖で脳ネクタイとかで普通に面接してた。
なんで君ネクタイ締めてないのって言われたら、大体暑いからって言ってて。
だからネクタイ締めてる方が頭おかしいんですっていう理論を言ってた。
これで雇ってくれる場所を探してて。
それでちょっと頭のおかしい人々の人がいる会社があって雇ってくれたんですよ。
その理論すごくわかります。
その年めちゃくちゃ夏暑かったんですよ。
この状態でスーツを着てる奴はそもそも判断能力が怪しいっていうのが俺の理論で。
だから採用しない方がいいですよって言って、あいつら全員バカですって話を俺はしてたんですけど。
でも3社目ぐらいで上手いこと入れて良かった。
おめでとうございます。
ありがとうございます。
ちなみにプログラミングはめちゃくちゃ得意でした。
それはすごいな。
21:00
大学の授業とかはいつも全然。
できるのは分かってたんですけど、なりたくはなかったんですけど、しょうがないんで。
奥さんの両親に会いさせていけないんで。
これも運命ですね。
運命ですね。
で、しょうがないんでプログラマーになりました。
それが動機だったんですね。
それが動機でした。
すごくいいですね。
心の底からの欲っていうんですかね。
そうだからそうみたいな。
あと大学院に行った時にすっごい思ったんですよ。
さっき松尾さんも同じようなこと言ってたんですけど、
なんで俺はお金を払って勉強しなきゃいけないなって思ったんですよ。
1円の得にもならないじゃんって思って。
飛びどころさんはできちゃうから。
なんでこんなに勉強してんだろうと思って。
で、すごい教授とかに怒られるし。
課題とかやらなきゃいけないし。
おかしいと思って。
こんなのは絶対おかしいと思って。
俺は働かなきゃと思って。
せめて勉強したら金をもらわないといけないと思って、
とにかく就職しようと思ってました。
やっぱり悟るんですね、勉強したら。
あれ、なんでお金払って勉強してるんだろうって。
おかしいと思って。
こんなのはおかしいと思って。
馬鹿げてると思って。
もしや、もう質問は終わりで大丈夫?
いやいやいや。そんなわけないじゃないですか。
そんなわけないですか。
なんですか、なんでも答えます。
今まででエンジニアになれたきっかけはお聞きしたんですけど、
次は、ちゃんといいコードを書きたいなって思ったきっかけとか。
いいコードって富所さんにとってどんなコードかっていうのをお聞きしたいんですけど。
最近だとものすごく明確に1個だけあって、
複雑じゃないソースコードですね。
複雑じゃないソースコード。
複雑性を上げないソースコードが正しいコードだって言ってますと。
なので僕のレビューの観点は基本それですね。
まだ茹で上げてないスパゲッティ、パスタの麺みたいな。
そうですね。だから中身がスパゲッティでいいけど、
インターフェースが簡単で、利用者がそれを意識しないのでいいのであれば、
スパゲッティでも構わないし、そこは柔軟に考えた方がいいなと思っていて。
でも天気は2、3回あったかなと思いますね。
一番最初本当ラッキーだったんですけど、
初めて僕の上長になってくれた人が、
24:01
僕に言ったんですよ。1週間ぐらい経った時に、
君はもう大丈夫だって言われて、
もう俺は上長しなくていいと。
お前はもう育ってるから、これ以上育てる必要はなかったっつって。
最後に本を1冊くれたんですよ。
それがマーティン・ファウラーのリファクタリングっていう本で。
それが僕のリファクタリングとの運命の出会いで。
Jユニットですね。Javaだったんだ。
Jユニットを使って、とりあえずテストコードを書いて、
ソースコードを書くっていうテスト駆動開発をずっとやってて、
2年目ぐらいまでずっとそれをやってて、
周りの人はやってないんですよ。
あんまりやってなくて、受託の会社だったんですけど。
そうすると僕だけめちゃくちゃバグの混入率低いんですよ。
そうですよね。
だから僕はもしかしたらこの世の中で一番優れたエンジニアなんじゃないかって、
2年目ぐらいの時にものすごい勘違いをしてたんですね。
その頃、勉強会とかが開かれる初めた頃で、
エンジニアで勉強会に参加して、
もう本当に雷に打たれたんですよ。
やばいと。
生態の霹靂ですか。
俺はミジンコだったと。
ちょっと昨日まで世界一だと思ってたけど、
実はミジンコでしたっていう話が分かって、
そっからずっといいコードってなんだろうっていうのを勉強してるって感じ。
もちろん今も継続して勉強されてるっていう感じなんですね。
この業界ずっと勉強ですよね。
不安でしょうがない。
不安だから勉強するみたいなとこありますよね。
2年前ぐらいにPhilosophy of Software Designっていう本に出会って、
それが僕の中で一番しっくりきてる。
そこにかかえて複雑性を下げるのが一番だよって言ってて、
それがすっごく吸って入ってきたんで、
最近はもうそれを一番ベースにして書いてます。
この英語の本ですか。
そうなんですよ。日本語訳ないんですよ。
英語も読めちゃうっていうすごいですね。
たまたま読めるんですけど。
いいんですかね。
たまたまですね。
たまたま読めます。
たまたまですね。
たまたまです、たまたま。
偶然ですね。
僕の中でのいいコードっていうのはそれ。
やっぱりテスト駆動開発から始まってるんですね。
そうですね。
リファクタリングの中でテスト駆動のJユニットとかの使って
リファクタリングしていくっていう方法で、
さらにその後はケントベックっていう人が書いてる
テスト駆動開発っていう本があるんですけど、
あれはまさにJユニットとかを使って
27:03
テストを書きながらいかに設計を改善していくかっていう
ループした開発の仕方を紹介してあって、
要はTDDっていうのはテストするのが目的ではなくて、
良いコードを生み出すためのプロセスの一つみたいな考え方なんですよね。
だからそこら辺がやっぱすごい良かったな。
だけどそれもプロセスはプロセスで、
じゃあ最終的に目指すの何っていうところに
さっき言ってた複雑性を下げるみたいな、
そういうピースが最近ハマったって感じですね。
最近なんですね、それは。
それは2年前ぐらいにハマって、
これだと思って、それ以来これの宣伝をしてます。
あの本の宣伝をしてます。
じゃあ僕も英語を読めるようになった方がいいかもしれないですね。
一応要約は作ってあるんで、見たかったらいつでも。
いいんですか?
大丈夫です。
友達には無料で。
僕も実はブラック企業に入って、
PHPとPHPユニットセットで叩き込まれたんですよ。
じゃあいいブラックじゃないですか。
そうですね。
なのでテストのないコードはクソだって常に先輩に言われて、
テストを書いているうちにリファクタリングっていう謎の言葉がわかるようになって、
リファクタリングしていくうちに、あれなんかテスト書きにくい。
このコードクソじゃねって思って。
そうなんですよ。
なんでクソなんだろうって考えたら、
たくさん書いてあるFATコントローラーだからもっと分かりやすくしろって言われて、
テスト書いて直してみたいなのがわかってきました。
一旦そこ気づくともうテスト書かないのないよねってなりますよね。
なりますね。
そこの間にものすごい断絶があるんですよ。
エンジニアでも。
一旦そこのレベルまで上がるとテストがないのが不安でしょうがないっていう状態になるんですよね。
いいですね。
すごいな。4年半でいいエンジニア。
いいブラックでしたね。
先輩語りはちょっと頭が上がらないですね。
いいと思う。よかったね。
いい先輩だと思う。
300時間はあれだけど。
今の現場でもユニットテストをどんどん広めていってほしいって言われてるんですけど、
その質問が結構難しいなと思っていて、
ユニットテストを広めることは簡単っちゃ簡単なんですけど、
その文化を根付かせるとかっていうのがどうやったらいいかなってずっと考えてましたね。
30:04
でもすごくそれは大事な視点ですよね。
DDDと軽量DDDみたいな話があって、
形だけDDDの形をするのは良くない話っていうのにちょっと似てるなと思って、
PHPユニットとかも、じゃあPHPユニットでかばれちゃえばいいのかって話とはちょっと違うじゃないですか。
もう全然違いますね。
要はテスタブルにするにはどうしたらいいかっていうところに頭を使うみたいなところが一番大事で。
そうですよね。すごいよくわかりますね。
すいません前半めちゃくちゃふざけてたからリスナーの方々に頭おかしいやつが。
頭おかしくないですよ。俺の中では非常に実感して、ちゃんとした目的ですよ。
やっぱり俺はフクリ構成の時からしっかりした人だなと思って。
じゃあ僕への質問はもう終わりということで大丈夫。
もう一問くらいしようかな。
まだ全然時間ありますごめんなさい。
残り1分ですとか現場の勉強会だったら煽られちゃうから。
煽ってましたね。始まって残り1分ですって出しててかわいそうだなと思って。
煽れれば煽られるとして楽しいですね。
そうですね。作るの大事ですから。
じゃあちょっと技術的な質問してもいいですか。
エンジニアリングにはあんまり自信がないんですけどどうぞ大丈夫です。
わかりました。
そうですね。ユニットテストを構造化することに対する富所さんの意見について聞いてみたいです。
構造化するっていうのはどういうことですか。具体的には。
例えばAコントローラーっていうのがあってBメソッドってあるとするじゃないですか。
AコントローラーにBメソッド。
そのBメソッドのデータを生成するためのプライベートメソッドCを作って。
テスト側に。
テストクラスに。
それでAコントローラーのメソッドでだ。
だのテストにもその構造化したテストクラスのプライベートメソッドCを使う。
ということについて富所さんはどうやって考えるか聞いてみたいです。
いろいろ僕もPHPに限らずユニットテストでいろいろやってきてデータ生成について共通化すると
ろくな目に合わないっていうのは僕の今までの経験上の結論ですと。
33:02
はい。
なのでほぼ単体でテストメソッドが動作するようにテストメソッド間でデータ生成部分を共有しないようにするっていうのがいつもいます。
なので今さっき言われたみたいにテストクラスの中で同じデータ生成メソッドを使い回すっていうのはあんまり良くない。
とはいえマスターみたいなデータあるじゃないですか。
そういうのは別に構わないと思うんですけど。
例えばララベルだったらシーダーで流しちゃえばっていうようなものでそれは別に構わないけど。
トランザクションのデータに関して言うとやっぱそれぞれのテストクラス特定の目的を持って作られてるわけなので
それに適したデータっていうのをそのメソッドのために作るっていうコードにしておかないとテストクラスのメンテナンサビリティが異常に落ちるっていうのは私の考えですね。
なので僕だったらしないですね。
それぞれにデータ生成を作らないとそのテストがこけた時に単体でそいつを直せなくなっちゃうんで。
はい。
ありますね。
だからテストクラスの構造化それを構造化というのであれば極めて慎重にやっていかないと。
要はテストを作るのを最速でやるには同じデータ生成メソッドを使い回すのが早いんですけど。
テストのメンテナンスまでを長期視点で考えた場合はそれぞれを分けたほうが僕は絶対いいと。
やばい真面目に答えちゃった。
いやすいませんでした。
僕も今までの短い人生の中であんまりテストのことを語られる人がいなかったので
富戸黒さんに質問させていただきました。
僕も同じ意見を持ってたんですけど
以前そういうふうにレビューEの人に指摘をされて
あれ?どっちもあり得る。
言いたいことは分かるんだけど
実際にテスト長く書いてきた人にしか分からない答えを僕は持ってると思って
それをどうやって納得させようと思って
昔もやっとした時期があったんですよ。
そうですね。それぞれ独立。
テストクラスのテスト関数の独立性を保たないと
テストが直せなくなっちゃうので
メンテナンスできなくなっちゃうので
データプロバイダーとかも考えもんなんですよね。
あれは本当に人類が当たりに早すぎたんじゃないかなと思ってます。
データプロバイダーで
網羅したくなっちゃうんですよ。データプロバイダーっていう仕組みがあるから。
分かるんですよね。それも。
36:01
そうすると全部のクラスで同じデータプロバイダー使おうやみたいな話になって
そうすると実はこれではこのデータプロバイダー使えないなって
結局また新しいデータプロバイダーが必要になるみたいな
じゃあ最初から別々にしとけばいいじゃないかみたいな
データプロバイダーいるの?みたいな話になってくるんですね。
そうですね。
ハイレス作ってフォーミッジでダメだろうみたいな。
そうなんですよね。データプロバイダーの中にAのテストに必要なデータは
2個しか入ってないみたいな状態が生まれてしまうのが
よくないだろうなって思いますね。
ありがとうございます。仲良くなれそうです。
仲良くなるそうですか。よかった。
いやー怖いよね。若手にこいつ使えなさそうなオッサンだなって思えば
すごい嫌だから。
ちょっとおこがましいですけどそういう人には絡まないですよ。
絡まない。絡まない。
そうですね。でっかくなってくると本当にテスト独立性が大事ですね。
効いてきますね。
効いてきますよね。後々すっごい効いてくる。
まだ大丈夫ですよ。40分です。
これでラストの質問にしますか。
もう一個ラストの質問ですか。
そうですね。
じゃあこれもまたエンジニアリング的な話なんですけど。
変数名を付けるときの長さについて考えたこととかってありますか。
はいあります。
この富所さん的な価値基準を参考にさせていただきたいです。
ケースバイケースではあるんですよ。
そもそも一時変数使うなって話ではあるんですけど。
まずパターンとして分けると
一時変数みたいなものってあるじゃないですか。
ループの中で使うインデックスのiだったりとか。
ああいったものに関しては一文字でいいかな。
別に使い捨てだし。
大して意味を持たないものであったりするんで。
一文字でいいかなと。
例えばクラスのメンバー変数の名前とか。
っていうものに関してはできればシンプルで短いほうがいいなって思います。
長くなってる場合は僕の経験上は
クラスとかディレクトリ構造がそもそも悪いんじゃないっていう風に考えちゃいます。
あまりにもジェネリックなクラス名がついてるから
変数名は具体的なんだけど
具体性を表すためにかなり長文を書かなきゃいけない。
形容詞つけなきゃいけないみたいな状態が生まれてるんじゃないんですか。
っていうのがパターンかなって思います。
39:01
名前が長くなるっていうのは大体そのパターンだと思ってて。
例えばユーザーこれ例ですけど
ユーザーズっていうディレクトリが切ってあって
その中にさらに何々みたいな名称があった場合
ユーザーズとかはしょっちゃっていいじゃないですか。
パッケージがユーザーズなんだから
これは完全にユーザーズに関わる何かであるよねっていうのがわかる。
その中のクラスのさらに何かっていうのは多分
一単語で示せるはずなんで。
でもフラグ系とかになってくるとまた話が変わるんだけどな。
まあそうですね。
とは言え20文字を超えたくないみたいなところがある。
じゃあ飛びどころさん的には変数は短ければ短い方がいい。
だってわかりやすいですからね。
短くないっていうことは何かをやらかしてるっていう匂いだなと。
バッドスメールですね。
何かそこに夢が詰まってるだろう。
詰めすぎちゃった夢は例えばenumとかで解決するのか
バリオブジェクトみたいな他のオブジェクトとして評価とか
何か他の形があるんじゃないかなって思っちゃいます。
どういう答えを返事いただけるかなって考えてたんですけど
僕がずっと思ってたことと一緒だったんで
一緒に仕事させてもらったらちょっとやばいかもしれないですね。
やばいですか?
はい、やばいです。
現場の他の方々とバチれるなと思ってしまった。
バチりましょうか。
バチらないです、僕は。
すごく平和なおじさんのふりをしていきたいんですよ。
ずるいなー。でも騒ぎ起こすのは若手の僕でしょうね。やるとしたら。
もういいです。騒ぎとかそういうのはもう。
そんな感じですね。
変数ですね。
メビューの段階とかだと指摘しづらいんですよね結構。
そうですね。
ディレクトリコードとかも決まっちゃってるとどうしようもないから
何か言いたいけど言ったら言いちゃうものみたいな感じだから
スルーするかみたいになっちゃうから。
よくないね。
僕その辺はこのコロナ禍っていうこともあって
チームでMOBプロ?
はいはいはい。
ジェットブレインズのコードウィズミーとか
ウエストコードのライブシェアとかやって
ちょっとここ悩んでるんだけどとか
もう自分でリンク貼って誰かちょっと相談持ってよとか
そもそもなんかレビューの時点で
この人変数名長い癖あるなと思ったら
よしちょっと価値観の擦り合わせをしようと思って。
42:01
あるよね。
変数名の付け方に独特の感性がある人とか
Gitのブランチ名に独特の感性がある人とかいるじゃん。
明らかに横並びでおんびんな名前つければいいって思うのに
なんでお前ここで自分を表現しようとしちゃうんだみたいな人いるから
すごいわかる。
初めに早めにモブプロだ
スラックコールでもズームでも何でもいいけど
話し合えるといいよね。
余計な変なヘイトがお互い溜まっちゃう。
それをやった結果ですよ。
今3人のチームで回してるんですけど開発者は
ほぼほぼみんな同じような感じでユニットテストも書くし
変数も定義するしディレクタリも切るしみたいな
その文化を初めて広めることができたって思って
やばいじゃないですか。
めちゃめちゃ感動しました。
なんとブラックで受け継いだプラクティスを
ホワイトに広めている。
でもいいですね。やっぱモブプロ効きそうですね。
モブプロいいな。
半端ないですよ。
ライブシェアはやったことあるんですかね?
コードウィズニーはまだやったことなくて。
平原は倫儀がおりましたので。
倫儀がおりたって言うからじゃあ使おうと思った。
僕のチームの社員の人に
これ使いたいんでお願いしますってお願いしたら
オッケー出ました。
ツールにお金かけられる会社はどうですね。
そうですね。
みんななんかツールバラバラだとちょっと
あれだね。
そういう意味で言うとジェットブレイン偉いですよね。
本当にすごいですね。
みんなPHPストームで話が。
ありがとうございます。
最後のトピック。
最後のトピックだけめちゃめちゃ毛色が違いますけど
新しいメンバーで気をつけることってなんだろう?
僕もSESとか
いろんな現場を経験して
自分なりに気をつけていること
松尾流で気をつけていることはあるんですけど
それ以外にもなんか
あるんじゃないかなと思って
いろんな現場を渡り歩いて
来られたであろうトピドコロさんに
気をつけられていることを。
でも多分あんま変わんないんじゃないかなと思うんですけど
何ですかね。
全力で空気を読むとかですかね。
全力で。
45:01
僕自身は
すごくあれなんですよ。
多分エンジニアの文化的に言うと
求心派の方なんですよ。
だから自分の素の状態だと
新しいものをどんどん取り入れたくなるし
PHPはどんどんバージョンアップしたいし
プラグインは
全て最新のバージョンを使いたいし
それがキープできないっていうのは
恥と思おうぜみたいなのが
僕の中での僕なんですよね。
やり方。だけど現場では違うじゃないですか。
現場の全体がそういう空気になってないと
ただのそれって傷んじで
騒いでるおじさんになっちゃうんで。
そこはうまく擦り合わせるようにっていうのを
いっつもしますね。
じゃないと一人だけ
さっきの複雑性の話もそうなんですけど
あるじゃないですか
僕も昔若い頃やっちゃったことがあるんで
次回でもあるんですけど
古臭いコードがあったとして
古臭いけどでも一貫性があると
みんな同じようなあんまり良くない書き方をしてるけど
みんな同じような書き方をしていて
それはそれでわかる。もっといい書き方はあるし
もっといいやり方はあるけど
その現場ではそういうやり方をしていて
っていう状態の時に突然急新腹が現れて
リファクタリングをして
突然新しい理由が生まれて
一部だけ非常に先進的な書き方が書かれている
っていうコードが生まれたとすると
それって一貫性は著しく損なわれてるんですよね。
新しいから正義っていうわけではなくて
それまでと同じく右へ習いをしているコードを書く方が
正しいっていうことももちろんある。
もしリファクタリングをやるんであれば
その方向にしていこうよっていう雰囲気作りとか
文化作りとかができた上でやっていかないと
ただ一人で暴れてるおっさんみたいな状態になるから
そういうのもものすごくいつも気をつけてますね。
その空気を生んでますね。
とはいえ汚れてくとか複雑になってくのは
すっごく嫌いなんで
それをいかに自然にいい方向に流していくのか
っていうのをどのツボを押すと治るかなみたいな
のをいつもあんまり直接的に何かをするっていうよりかは
どの飛行を押すとこの病気治るかなみたいな
どうすると一番よく一貫性を損なわずに
綺麗なっていうことはものすごく考えですね。
48:01
なるほど。
それパッと思いついた簡単な質問なんですけど
それってたぶん一丁言い過ぎたら無理だと思うんですけど
プロダクトに関わるチームメンバーに仲間を作るじゃないですけど
一つの点がちょっとずつ広がっていって
そうやって派閥を変えていくためには
コミュニケーションを取ったりだとか
実際にこういう感じでできるんだけど
どう反応見たりとかってすることはありますかね
ありますありますあります
というかめちゃくちゃそれをすると思います
なるべく信頼感を得られるようにして
この人が言うんだったら大丈夫だよねって思われるような
信頼感とか実績を出すとかですかね
めちゃくちゃ真面目な答えをしてるな
ダメですね
でもそんなこと考えてますね
ありがとうございます
とんでもないです
逆に松尾さん何気をつけてるんですか
僕はそうですね
いい意味でも悪い意味でも
悪い意味でも取られることがあるんですけど
とりあえずうるさい
うるさくて話すことを気をつけてますね
すごいこのリスナーの方々の耳に触ることかもしれないですけど
僕がエンジニアに対して抱いていたイメージって
すごい自分に自信がない人が多いんじゃないかなって
思ったんですね
僕はエンジニアになってみて
エンジニアの仕事ってすごい
社会のために人のためになってる
大義を背負った仕事をしてると思ってるんですよ
本当に
だったら全員が全員
それを的する必要はないと思いますし
自分のスタイルでやればいいと思うんですけど
僕は胸張って
僕はエンジニアこれを大事にして
仕事に取り組んでるっていう
気持ちを持っていろんな人と喋るようにしてますね
なるほどいいと思いますよ
だから最初の方にも言ったけど
スラックで話しかけてくれたりとか
このご時世だから出社もものすごい少ないじゃないですか
でも出社がちょうどあった時とかに
ちゃんと話しかけてきてくれて
エンジニアとかだとスルーしちゃう人も結構いるから
そうですね
この人はちゃんと話しかけてくれる人なんだと思って
嬉しいなと思いました
51:01
単純に嬉しいなと思いました
でも僕も思いますよ
ちょっとアホのフリした方がいいなっていう時
でありますよね
わざと大声上げるみたいな
これでいいんでしたっけみたいな
僕はアホなんで分かんないんですけどみたいな
それはすごい大事ですよね
じゃないとみんなこう嘘ついちゃうというか
ただ真面目な人みたいな
ただ真面目な人たちがお見合いしてるみたいな
変な状態になっちゃうんで
すごいですね
すごい良い心がけだと思う
本当ですか
良いと思いますよ
だって言うほど騒がしいっていう感じでもないから
本当ですか
すごく良いバランスだと思います
バランスとなるとまた結構難しいですね
そうバランスとなると結構難しい
僕とかも結構過剰に元気なんで
出社とかしてると多分すごいうるさいんですよ
ガーガー喋りながらプログラミングするし
僕とかバスケとかすごい好きなんで
NBA好き同士でバーバー喋りながら
バーってタイミングしたりするんで
周りからすると多分うるさいんですよ
リモートなんて分かんなくなったんですけど
それだと僕のチームのスラックチャンネル
多分やばいですね
一生僕喋ってますね
なんか今あれですよね
常時接続してやってるっていう話聞いたから
そうですそうです
それもいいなと思って
でもそれもあれですよね
みんなの信頼関係とか
その雰囲気づくりとかですよね
中にはちょっとあれがいるじゃないですか
ピエロ役というか盛り上げ役じゃないですけど
心理的安全性みたいなのを保つ
やっぱ必要だから
絶対いると思いますよ
僕もそういうの気になっちゃうから
過剰に喋るんですよね
毎日誰を笑わせよっかなみたいなネタ考えますもんね
何か引き出せたってなるとちょっと嬉しいですよね
嬉しいですね笑ってくれたよしみたいな
というわけで
だいぶ僕は多分松尾さんと気が合いそうだ
ということが分かりました
そうですね
分かっちゃいましたね
今回のラジオを
ポッドキャストで
ポッドキャストか
でもすごいですよね
ポッドキャストに出たいって言ってくれること自体も
すごいなと思ったんで
じゃあもうあれじゃないですか
カンファレンスに登壇しちゃえばいいじゃないですか
出た
こんだけ喋っておいてあれなんですけど
54:01
人前で喋るのは苦手なんですよ
また
本当に緊張しちゃって
大丈夫ですよ
みんなそんな聞いてないから大丈夫ですよ
みんな聞いてるふりしてツイッターやってるから大丈夫です
聞いてる人がやっぱ強い先輩とかも聞きに来てるんですよ
いやでも強ければ強いほど
自分のことを強いと思ってない説があるんで
そうすると
強い人はこの世の中にいないんで
大丈夫ですよ
僕の頭の中だけにいるっていう
そうなんですよ
なんでとりあえずペチパー会議のCFPの締め切りが十値なんで
4つ出すと
4つですか
だって今聞いただけでもテストかけるでしょ
はい
Code with meの話できるでしょ
はい
あとブラック企業の話もできるよね
ブラック企業はよくないですかすごいネガキャン
でもなんかあれですよ
そんなに変わんないんですよ
カンファレンスで喋ってる側も聞いてる側も
なんで足踏み出したもん勝ちってとこはあると思うんで
本当にやってみたらいいと思いますよ
強いって思ってる人たち本当にそんなに強いとみんな思ってないから
そうですね最終目的はそういうでっかいカンファレンスですけど
会社の勉強会をやってちょっとちっちゃめの勉強会やって
それからちょっと
最初に一番熱いお湯に入るっていうのいいじゃないですか
皮膚フヤフヤになっちゃいますよ
大丈夫ですよ本当本当僕がもう僕だって実証してますもん
僕だって一番最初がPHPカンファレンス東京のLTで
目の前に500人ぐらい人バーってLTしました
それが僕の生まれた初めてのLTだから
すごい
だから大丈夫です
だってあれでしょジム行くでしょ
はい
ジム行ってバーベルとかガーって上げて
はい
そうするとだんだん訳分かんなくなってくるじゃないですか
はい
そしたらCFP出せると思いますよ多分
筋トレしてる気持ちで
騙されたと思ってちょっとやってみてください
CFP出すのはただだから
間違えて通っちゃったら
間違えて通っちゃったら
それはその時考えればいいかな
57:03
ネタを考えますね
そうですね
あのね素晴らしいスライドがあるんですよ
え?
あのペチパー会議の主催者の人が長谷川さんという人なんですけど
はい
あのその人がねあるんだったらね
カンファレンスのね向こう側とこっち側みたいなスライドがあって
はい
要はまあ要するに何が言いたいかっていうと
気軽に気軽に登壇しようぜって話なんですけど
はい
それ本当にすごくいいスライドなんだ後で送りますね
あーありがとうございます
うん
それを見てですね
それを見てジムに行くと
多分CFPが出せる
ベンチプレス上げ終わった後にポチみたいな
そうですねポチって
最初にCFPの文言書いて
でもちょっとこれ自信ないな出したくないなっていう気持ちになった後
ベンチプレスして投稿ボタンが押せるみたいな
そういうパターンですね
あそのために僕はジムに行ってたんですね
そうなんですよ
実は
実は僕もそのために走ってるんですよ
ハイになるために
そうハイになるために
ちょっとバカになると押せるんで
はい
人間なんかあれなんですよ
学習しすぎておじけづいちゃうんですよねすぐ
あーまあそれはありますね
そうそのなんか臆病さを忘れればなんかやれるんで
ちょっと試してみてください
わかりました
別にできなくても全然問題ないですし
最近はねなんかPHP界隈でいうとRAXさんっていう会社がね
毎月いろいろな勉強会やってるんで
はい
多分ねLTがメインなんでね
ああいうとこ出すといいと思いますよ
ああいう会社さんがやってくれてる間に
はいはいはい
うん
あのそういう気軽な場で
登壇を重ねていくと
はい
あのいい経験集めると思うんで
はい
うん
ありがとうございます
話してるとなんと1時間経ってしまいました
早いですね
早いんですよ
いやこれ仕事だったらちょっとあの旋律しますね
あれやっぱり時間溶けた
いや毎日毎日時間溶かしてますけど
はい
あすごいリズナーさんが教えてくれたスピーカーデックのリンク
あーすいませんありがとうございます
そうそうカンファレンスのあちら側とこちら側っていうのが
はい
これねめちゃくちゃいいですよ
これはねかなりエモいんで
エモいですか
これエモいですね
これ見るとねちょっとね出したくなるかもしんない
おお
いやネタですね
と思われ
いやあるんですよ
人間はね本当はネタを持ってるんですよ
1:00:01
あ持ってるんですか
持ってるんですよ
松尾さんをこうギュッて絞るとポタポタ垂れてくるんですよ
松尾汁が
松尾汁
まだ絞ってないでしょ
あるんですよ
絞ったらあったわーってあるんですか
絞られてる
あるんです大丈夫です本当にあるんでびっくりしますよ
みんな聞きたいのはそっちなんで
絞って出る話が好き
なるほど
そうそう
なんか真面目にテスト駆動開発やってますとかうまくいってますとかって話あんま面白くないんで
それはそうですね
そうそうむちろん生の話が聞きたいはずなんですよね
だったらあれかな
それってその現場で
例えば僕だったら1年まだいかないぐらいスクラム初めてやってみた感想とか
そうそうそうでもそれでもいいと思うんですよね
その若手が見てどういうふうに思ったかとかそれはもう切り口の話じゃないですか
はい
そうそうそれをいかに魅力的な角度で切るかみたいなのが言い方みたいなとこなんで
あんまり話を盛るタイトルで盛っちゃうと後で自分が辛いだけなんで
そこはバランスを見て使うけど
って感じですかね
はい
LTだったら最悪ね5分間我慢すれば終わるんで
そうですね
それぐらいの軽い気持ちで行くといいと思います
はい
じゃあ終了の銀行きますね
はい
今週も放送を聞いただきありがとうございます
番組のフィードバックや要望はハッシュタグ横浜の声もつけてツイートしてください
本日の相手は松尾さんでしたありがとうございました
ありがとうございました
横浜の声
01:01:57

コメント

スクロール