スピーカー 2
そうですね。だから最近は正直ないんですよ。なぜならAIのせいで。
スピーカー 1
なるほど。
スピーカー 2
でもTDDって開発手法としてはかなり好きで、ちょこちょこテスト書いて、コード書いて、レッド・グリーンやってみたいな。
っていうのがうまくハマってる時って結構ゲーム感覚でプログラミングができるから結構好きなんで。
取り組む課題が全容が見えてるというわけで、部分的に見えてる時はやったりしてるかな。
全然自分の中でまだフワッとしてるなっていう時はテスト書かず、とりあえず動くもの書いたりするけど。
でもなるべくやれるタイミングではやるようにしてます。
スピーカー 1
確かに。フワッとしてる時、書けないよね。そもそも固まってないんだからテストが。
スピーカー 2
書くテストが困らないからとりあえず動かすものを作って、ちょっと自分の頭の中を整理するというか。
スピーカー 1
なるほどね。
意識するんだけど、今言ってたようにやっぱりフワッとしてる時に。
フワッとしてる時にそもそも手を動かすなって話なのかもしれないけど。
スピーカー 2
幅との違いだから。
スピーカー 1
手を動かしたから気づけることもあるし、イメージできることもあるから。
この辺りはテスト駆動を毎回全部やるっていうのは結構僕自身難しいなぁと思っていますね。
リファクタリングはどうですか?やってます?
スピーカー 2
うーん、そうですね。そんなにガッツリリファクターしたみたいなことはそう多くはないんですが、
とはいえやるときはやってるんで、そういったときはテストがなければテスト書いてリファクターするし、
あればそのままちょこちょこ変えつつテストと行ったり来たりしながらリファクタリングみたいなことは、
最近はそれこそこれもAIのせいでそんなにガッツリすることはないですけど、やったりはしてましたね。
スピーカー 1
なるほど。リファクターで読んだ本とかあります?
スピーカー 2
でも、マッチンファウラーの。
スピーカー 1
リファクタリング。
スピーカー 2
あれは1回読んだかな。第2版の方読んだんで、僕JS力が低いんで部分的によくわからんなっていうところもたまにあったけど。
スピーカー 1
そうだった。
スピーカー 2
まあまあでもあれは1回は読みましたね。
スピーカー 1
あとクリーンコードとか。
スピーカー 2
クリーンコードは6章とか5章ぐらいまでしか読んでない。
スピーカー 1
なんか挫折ポイントがあったのか、そこに。
スピーカー 2
いや、かなり経験が浅いときに読んでて、とりあえずこの辺まで読もうって決めてその時は読んで、それ以降クリーンコードを読んでない。
スピーカー 1
なるほど。確かに本の内容によってはかなり難解なもの、なんだろう結構経験積まないとわからないようなことがピンとこないことがある気がする。
スピーカー 2
リファクター系でいけば、まあがっつりリファクターというよりは説得度ですけど、ケントベックのやつは読んで、あれは社協しましたね。
スピーカー 1
ああ、TDDな。Tワザさんも書いてるやつ。あ、翻訳してるやつか。
スピーカー 2
リファクターのフェーズあったんで、まあそういう意味だとリファクターの本と部分的には言えるという意味だよ、それも。
そんなもんかな、まだ覚えてないですよ。
スピーカー 1
めっちゃメジャーなので、メジャーかつ初学者向けで行くとDWコードとかがその部類ではある気がする。
スピーカー 2
リファクター要素あったんでしたっけ、全然覚えてない。
スピーカー 1
なんか関数名短くしろとか。
スピーカー 2
ああまあまあ確かに。
スピーカー 1
そういうの結構。あれ読んでる人はまあ多い。
スピーカー 2
なんかまず読む本ぐらいなイメージあるもん。
スピーカー 1
そうだね、まず勧められる本。
あとはなんだろう、初学者向けだとふわっとわかった気になれるのは、あのプリンシップルオブプログラミング。
スピーカー 2
あの白いやつ。
スピーカー 1
そう。
スピーカー 2
白と金の。
スピーカー 1
あんまり深くはほぼわからないけど、なんかそういう単語があるんだぐらい、概念があるんだぐらいは、あれでさらっとおさらいできる気がするな。
スピーカー 2
あれもいろいろと載ってたもんね。
スピーカー 1
僕読んでないけど、最近だとなんか良いコード、悪いコードで学ぶ設計入門みたいなのも、これもあれなのかな。
スピーカー 2
あーみんのくどさんのやつ。
スピーカー 1
みのさんなのこれ。
スピーカー 2
悪いコード。
スピーカー 1
あ、ほんとだ、みのさんだ。
最近第二版出ましたね。
スピーカー 1
最近でもないか。
あ、そうなんだ。
これはなんかわりと読んでないけど。
スピーカー 2
うん、これは初版は読みましたね。
スピーカー 1
初学者向け?これも。
スピーカー 2
うーん、そんなに難しくなかったと思いますよ。
スピーカー 1
あー。
スピーカー 2
多分。ちょっと前に読んだからあんま覚えてないけど。
スピーカー 1
タイディーファーストはちょっとむずいね。
スピーカー 2
あーまあ確かに1冊目とかに読む本じゃないかも。
スピーカー 1
あんだけ薄いけど。
スピーカー 2
うーん。
スピーカー 1
内容が。
スピーカー 2
そうですね、まあ読みやすいは読みやすかったけど、初学者向けではないですね。
スピーカー 1
僕がなんかそのリファクタリングのテクニックではないんだけど、
結構推してる本として、
まあそういうコーディングをするにあたっての心構えとか思想的なところで、
推してる本としては、
まあ達人プログラマーとユニックスという考え方っていうのは結構してて、
どっちも面白い本だ。
スピーカー 2
僕、原則としてドライ原則が一番好きなんですよ。
で、達人プログラマーがそれの原点。
だからそういう意味で好きです。
スピーカー 1
なるほどね。
結構達人プログラマーから学べるものあるよね。
なんだっけ、ボーイスカウトの原則?
スピーカー 2
大体タイディーファーストみたいな話ですよね。
スピーカー 1
タイディーファースト。
スピーカー 2
ちょっと整理するみたいな。
スピーカー 1
そうそう、立ち寄ったらそのままにするんじゃなくて、
その都度きれいにして帰りなよっていう原則だっけ。
もう一回読んでもいいかな。
第二版結局買ったけど読んでないんだよ。
スピーカー 2
意外とボリュームあるからな。
スピーカー 1
そうそう、結構長いんだよね。
今読めば面白く感じるところもあるのかもな。
スピーカー 2
確かに。
スピーカー 1
なんかそう、読み返してみようかなみたいな、
昔読んだ本で、
リファクタリングもそうだし、
クリーンコードもそうだし、
達人プログラマーもそうだけど、
昔読んで、
まあもう記憶とかも薄れてるけど、
地肉とはなってるようなものをもう一度読み直して、
見ようかなって最近思ったりして。
スピーカー 2
いやその、読み直すタイミングが難しくて、
一回読んだ本より、
つんどくこんなにあるんだからつんどく消化する方が、
得だと思っちゃう。
だから知ってるとはいえば忘れてはいるものの、
一回読んだ本より読んでない本を読む方が、
お得感を感じちゃうせいであんま読み直して知ってないんだよ。
スピーカー 1
いやそう、分かる。それは本当に分かるし、
そういう時もあったんだけど、
なんか最近、いっぱいいろいろ本読む中で、
出会う本出会う本で、
本当に面白い本って、
ほんと一握りで、
だいたい途中まで読んでやめること多くて、
最後まで行こうって感想しようって思える本が少ない、
なーって最近思ってて、
だったら、もう分かってる名著に、
名著をもう一回読む方が、もしかしたら、
なんか、得るものは多いんじゃないかみたいな。
スピーカー 2
いやーそれはありそうだな。
スピーカー 1
って最近思うようになってきている。
スピーカー 2
なんだかんだ読むと、なんだろうな、
似たようなことが書いてるケースがもう多いですしね。
スピーカー 1
そうそうそう。
なんか、あまり新しいものを得られなかったりすることが、
結構あったから、
その辺りで、もしかしたら前の本を読んだ方が、
得られるものが多いのかもしれないとか思い始めてたり。
スピーカー 2
確かにな。しかも一回読んでる分、読みやすいってのもあるだろうし。
スピーカー 1
そうそうそうそう。
で、何の話だって感じなんだけど。
違う話しすぎてるけど、
まあリファクタリング、コーディングの話ですね。
スピーカー 1
なんか、僕はですね、
勉強、結構真面目に勉強した派ですと。
特にマーチン・ファウラーのリファクタリングに関しては、
もう全部社協して、
しかも動かしたりしてとか、
たぶん2、3ヶ月ぐらいあの本だけで、
毎週勉強してた感じですね。
スピーカー 2
もう社協して2、3ヶ月って早い感じもあるけどね。
スピーカー 1
まあ確かにあの暑さで、
まあでもほぼ土日あれに費やしてたからね。
スピーカー 2
ああ。
スピーカー 1
マジであれしか知らなかった時期があったな。
あれがいいところは、
まあ結構、かなりたくさんのテクニックを紹介していて、本の中で。
で、しかもビフォーアフターをちゃんと用意してくれている。
こういうコードがこういう風に良くなりますよっていうのを出してくれているし、
1個ずつ解説、なんだろう、
こういうところで素結合になってるよとか、
あとデザインパターンのこういうの使うよとか、
そういうのが結構載ってて。
あれをだから2、3ヶ月やって、
ちょうどその時って業務でコードもゴリゴリ書いてたんで、
なんか実践に移せるというか、
土日の勉強をそのまま実践に移すみたいなことは結構して、
そこがやっぱりブレークスルーになったかなって個人的には思って。
スピーカー 2
なんか、あとちょっと一瞬本の話しちゃうんですけど、
あの本ってなんか珍しいなというか、他であんまないなって思うのが、
例えばAをBにファクタリングするっていうことを書いてる本っていっぱいあるんだけど、
逆のBをAにするパターンも載せたりするじゃないですか、結構。
スピーカー 1
BをAに、元に戻すってこと?
スピーカー 2
そう、だから何だろうな、説明がむずいな。
Aの状態をBにするリファクタリングをします、
それが最適なケースもあればBのものをAにリファクタリングするのが最適なケース。
逆のリファクタリング?
ちょっと例出そう。
スピーカー 1
そんなのあったっけ?
スピーカー 2
なんか結構そういうのが載ってた記憶があって、あんまそういうのないイメージが。
スピーカー 1
これもさ、めっちゃ一生懸命やったけど、もう覚えてないから。
リファクタリングをする上で、こういうやり方、こういう順序で、こういう手順でやるのが一番効率がいいっていうのは、
この本からめちゃくちゃ学んだし、
なんかストラテジーとかそういうデザインパターンを具体的にどうやって使うのかっていうのも、
この本で学んだんだけど、
実際の本の中身はあんま覚えてないっていう。
まあ、そりゃそっかって。
スピーカー 2
まあ、しにくいなってりゃいいって話はありますからね。
スピーカー 1
まあまあ、そりゃそう。
スピーカー 2
例えば、関数の抽出があって、で、逆として関数のインライン化みたいな。
スピーカー 1
あー、はいはいはい。
スピーカー 2
その逆パターンもなんか載ってるみたいな。
で、この時はこっちやらなきゃいけないし、こっちの時は逆のこっちやらなきゃいけないみたいなのを書いてるのってあんま見ない気がしていて。
スピーカー 1
確かにな。結構状況に応じて。
これがいつでも最適なんじゃないよっていう、関数をただ抽出するのが最適じゃないよっていうのは、確かに言ってる気がするな。
このマーチン・ファウラーとケント・ベックも所々で確か、なんか書いてくれてるはずなんだけど。
2人はなんか本当に、エンジニアリングとは銀の弾丸はないよっていうのを本当にずっと言ってそうな2人だなって感じです。
スピーカー 2
すいません、戻します。
まあ、そんな感じで勉強してましたね。
で、この中でそのリファクタリングを学んでいく中で思ったのは、
なんだろう、美しいコードってあると思うんだけど。
スピーカー 2
はい。
スピーカー 1
美しいコードってなんだと思う?
スピーカー 2
なんだと思う?
なんだと定義してる?何か定義ある?
スピーカー 2
定義はないけど、感覚として読んでて気持ちいいコードは美しいというふうには思います。
スピーカー 1
読んでて気持ちいいって、どんなところの繋がり、すごい物語のように読めるみたいな。
スピーカー 2
そうですね、頭に入っていきやすいっていうところな気はするな。
何やってるかわかりにくいコードにはやっぱ美しさは感じないけど、
すっきり読めた時はそこに美しさを感じるというか。
スピーカー 1
すっきり読めない時って何なんだろうね、散らばってるとかなんかあっち行ったりこっち行ったりするみたいな。
スピーカー 2
そうですね、なんかいろんな処理入ってるせいで、ここで一番言いたいことがわかんないとか、
あとその関数長くて、初見でうってなるとか。
あとどういうのかな。
スピーカー 1
なんか関数名が短くて、中身が膨大にあったら圧倒されちゃうよね。
スピーカー 2
そうですね、一旦それ読むのにふーってしなきゃ読めない。
スピーカー 1
あれがね、僕だからコード解析する時ってどうする?ずっと頭の中で。
スピーカー 2
コメント残しながらやってるから、書くように。
スピーカー 1
あーなるほどね。
スピーカー 2
その量が少なければ頭に残してやるけど、
一旦それでやっていくんだけど、あーこれ多いわ多いわってなって戻ってコメントしながら切り替える。
スピーカー 1
あーなるほどね。
スピーカー 2
動かせる関係があるんだったら動かしながら、デバッグでちょっとずつ動かしながらとか。
スピーカー 1
確かに。
僕もコメント残してってやり方もちょっと試してみたりしたんだけど、
僕はなんか、めっちゃ多いと塊ごとに一応区切ってメモツールに移して、
それをこうステップごとに何やってるのか書き出していくっていうことをやるかな。
スピーカー 2
あとなんかするなと思ったのが、一旦開発者を信頼するっていうのもしてて、
メソッド名こうなんだからこの書類はこうだよねって決め打ってるケースもある。
スピーカー 1
あーなるほどね。
スピーカー 2
あとあと読むには行くんだけど、とりあえずその一旦はそこはそういうもんだと思って読んでいく。
スピーカー 1
それがなんか、もうちょっとコンパクトに小分けされてて、関数が。
なので、だったらまあ、で、その関数で関数名からやってることが容易に想像がつきそうな名前なのであればできるけど、
割と名前もね、何したいのかわかんない時とかもあったりするから、難しいなって思いながら。
まあでもなんか、美しいコードの定義って、関数名だけで何しているのか分かったりとか、
なんか構造的にきれいな文章を読んでいるように頭にスッと入ってくる、だったりとか。
まあ責務が分かれてて、モジュール単位で見ればスリムな関数がいっぱいあったりとか。
スピーカー 2
うん。
スピーカー 1
まあなんか課題に対する答えとして最も適したテクニックが使われてたりとか。
まあいろんなテクニック多分、トレートとかもあると思うし、なんかそういうのが適切に使われているとか。
そうしてまあ読み手に優しいコードっていうのが、なんかいいコードなんだと思うんですけど、定義がむずい、結局な話。
でもなんか、なんだろうな、割と、僕リファクタリング好きできれいなコード書きたいっていう欲結構あるタイプなんだけど。
はい。
スピーカー 1
でもなんか、その時に自分でこう見返す?見返して、コード見返して、もうなんかフィードバックってあんまなくて、なんだろうな、
もうだって自分の中の全力出し尽くしてるから、これ以上変更することってないし、自分の中で美しいって思ってたりするんだよね。
スピーカー 2
そのフィードバックっていうのは、内製してみた上でのフィードバックみたいな。
スピーカー 1
そうそう、内製してみた上でのフィードバック。
で、まあレビューに回すじゃん、その後に。
で、レビューからもう、今の組織での関係性もあるけど、あんまちゃんと見てくれないし、そんなフィードバックがちゃんとくることもないから、リファクタリングにおいて。
っていうのもあって、じゃあどこで実感するの?ってなると、リファクタリング自体はもうその時は自己満足でしかないんだけど、コードって寿命長いじゃん。
ずっと後に、1年後でも半年後でもいいんだけど、なんかそのコードと自分が書いたコードと出会う時があるわけじゃん。
スピーカー 2
そうですね。
スピーカー 1
その時に、やるじゃんって思うと、気持ちいい。
むしろもうそれが、それが気持ちよくてリファクタリングしてるまであるかもしれない。
スピーカー 2
だからその、やるじゃんっていうのは自分が停滞してるわけじゃなく、ちゃんと成長した上でやるじゃんって思ってるってこと?
スピーカー 1
そうそうそうそう。
スピーカー 2
それは確かにいいっすね。
スピーカー 1
よく考えたなーって。
昔の自分を褒められる。
まあ、何こいつ何してんの?みたいな。こっち迷ってんなーとか複雑にすぎだとか、なんか凝りすぎみたいな時もあるんだけど。
やるじゃんってなった時はもう本当気持ちいい。
スピーカー 2
まあそうですね、確かに。自分でこれ、なんかいいこと書いてるな誰だ?って言ってブレイブ見て、自分だ!ってなった時は嬉しいもん。
いいの書いてんじゃん。
スピーカー 1
そうそう。いいの書いてるじゃんって思っちゃうよね。
スピーカー 2
逆もよくあるけど。なんだこのクソコードって見たら自分みたいな。
スピーカー 1
まあそれもあるね。
スピーカー 1
いやでもなんか、僕結構コーディング、リファクタリングの、コーディングはもうもっと広いけど、リファクタリングの技術って結構今後も重要なんじゃないかって個人的には思っていると。
スピーカー 2
今後っていうのはAIが今ご利用になってる上で今後って言ってるってことですね。
スピーカー 1
そうそう、もっと重要になってくるんじゃないかって思っていて、そもそもリファクタリングの能力を勉強するとコードの品質っていうものを担保できるようになりますと。
そうすると自然とレビュアになる。コードレビューを担っていくことになると思います。
これがどちらか技術的なところのレビューをするっていうのが一つ、コーディングをするだけの人から一つ上のステージだとするのであれば、
技術を身につけて到達しなければいけない。ジュニアとかミドルのメンバーの目指すべき地点なのかなとは思っていて。
もちろんそれ以外にもドメイン知識、我々プロダクト開発って結局技術だけじゃダメで、業務領域についても詳しくないといけないから、
ドメインかける技術があってやっとコードレビューって完成する。ちゃんとしたコード品質を担保できるんだと思うんだけど。
今後今この前の最近AIの話もなんだかんだして割としてると思うんだけど、前々回のクロードコードの話とかもそうだけど、
やっぱりコーディングはもうあいつらめっちゃやってくれるから、我々に必要なのって多分今後コードレビュー力になるんじゃないかって。
スピーカー 2
それは思いますね。
スピーカー 1
そう思っていて、だからこそコードレビュー力って、リファクタリング力とか綺麗なコードってどうやって書くのとか品質ってどうやって担保するのっていうところになってくるから、
リファクタリングってすごく今後重要になってくるんじゃないのかなって思って今日この話題を持ってきた。
スピーカー 2
一方で言われてるのが、多分AIのステージが今の段階であるとそうだなってすごく思うんだけど、
1、2週間くらい前、この撮ってるのが今2月23日ですが、
1、2週間くらい前にGitHubの元CEOがレビューの仕方は今後変わっていくみたいな、
こうじゃなくてもっとその中心的な目的とかそこのレビューが主になっていくみたいな話があってしてて、
そうなってくる、その未来が実現すると人間がそんなにコードを細かく見ることすらなくなっていくのではみたいなことが騒がれていて、
そうなってくると、そもそもエンジニアいるなって話もあるんですが、
コードのレビューするってことも減っていくのかなと思ったりもしましたね。
スピーカー 1
なるほどね。だから保守のこと、コードを保守するっていうことを全部任せられるんなら多分そうなんだろうなって思うんで。
それこそドメインを理解した上で、その辺りを担保できる。
結局マーチン・ファーランの本でもさっき言ってたように、状況によって使うべきテクニックって変わってくるっていう話。
で、ドメインによってとか、そのプロダクトの歴史によってできる最前種って変わってくると思うから、
そこまでだからAIが読み取れるようになったら、確かにもういらんよなって思うのと、
もう1個あるとしたら、毎回フルスクラッチで作るとか。文章だけ、目的とかやってることとか機能とかの文章だけが用意されて、
その文章を更新して毎回フルスクラッチで作ってデプロイするみたいな。
でもそれをしても、商用の環境だとやっぱバグとか障害って出せないじゃん。
テストってどれくらいするのとかも、そうなるにはいろんな壁がありそうな気は個人的にはしてるけど。
スピーカー 2
僕も全然それに現実味を感じないから、そうなんかなと思ってみれるけど。
スピーカー 1
なんか難しそう。すごい進化してるし、いろんなポッドキャストとか記事とかXとか見てると、やっぱクロードコードでできることって増えてんだなって実感はわかる。
スピーカー 2
だからテストの重要性なんかは増してくるのかな。そのコードを頑張らない代わりにテスト頑張るようになるみたいな。
スピーカー 1
でも中身わかんなかったらさ、どうすんだろうね。僕らはさ、ユーザーにプロダクトを売ってる、使ってもらってっていう感じで、
安定に運用保守できることが重要、すごく重要じゃない。
スピーカー 2
そうですね。
スピーカー 1
コードの中身わかんなくて、もし障害が起きたときに、怖くねって思っちゃうんだけど。
スピーカー 2
でもその未来においてはその風格修正もAIに任せるっていう話だから。
スピーカー 1
ああ、まあそうか。だからAI次第ってことだもんね。
全部AIに依存するってことは、障害が起きてて、いつ終わるんだって、AIがちょっとって。
まあでも人間も同じようなもんか。
開発者に聞いてくれって言って、今まだ調査中でわかんないんですよって言って。
で、それがAIに聞いても調査中でわかんないんですよって返されるだけだから。
スピーカー 2
まあ確かにビジネスサイドから見れば何も変わってないのかもしれない。
スピーカー 1
何も変わってない。
スピーカー 2
確かに。
スピーカー 1
まあありえるっちゃありえるか。
スピーカー 2
プログラミングは仕事じゃなくて趣味としか成り立たないという未来も可能性としては。
スピーカー 1
なんかでもまだやっぱり組み込む、AIに組み込むの。
なんか01で作るのはもう完璧じゃん、本当に。
もうクロードコードとかAIで全然いっぱいできるし、もうそれでいいと思うから。
なんかちょっとしたアプリとかも今は任せちゃっていいと思うんだけど。
運用フェーズに入っているアプリケーション開発するワークロードにどう適応していくかっていうのは結構まだまだ手探りな感じがする。
そうですね。
スピーカー 2
AIの話に脱線しすぎたんですよ。
スピーカー 1
いやでもさ、思うんだけど、
ジュニアの子とかジュニアの人とか、ジュニアのエンジニアとかミドルのエンジニアこそ、
AIに頼りすぎず書いたほうがいいと思ってて。
我々はある程度もう学習してきたし、めっちゃゴリゴリに書いてた時期もあって、
大体こういうの作りたいよねっていうのがわかるし、
なんなら書くのめんどくせえなって時だってあるわけじゃん。
そうですね。
でもなんかジュニアとかミドルの人たちはやっぱ、まず書くことを楽しんだほうがいいなって思うんだよね。
スピーカー 2
うん、なんかそもそも自分が書けないと、さっきの話と関連すると思うんですけど、
AIが出してきたものの良し悪しがわかんないじゃないですか。
結局そうすると、よく言われている上の人間のレビューコストが増えちゃうっていう話になってくるから、
一旦書く、書かないわ、置いとくにしても何かしら自分でちゃんとキャッチアップして、
そこの良し悪しのあんどころを見つけていかないことには、っていうのは思いますね。
スピーカー 1
いやそう、なんだろうな、僕らが多分エンジニアになった頃とかも、
結構ハンズオン形式とか、もうウェブアプリが結構流行ってたから、
簡単になんかDockerとかインストールして、手順通りにララベルとかReactとか準備したら、
もうなんとなく開発できちゃう、みたいな状況だったと思うんだけど、
でもハンズオン形式ばっかりやってても、やっぱ基礎って身につかないじゃない。
スピーカー 2
基礎しか身につかないじゃなく。
スピーカー 1
そう、基礎ってさ、ハンズオンでやってることって上側っていうか、
要するになんか、すごい表面上見えてるもの、表のところしか見えてないから、
もっと基礎の部分って、例えばコンピューターサイエンスだとか、
メモリーとかインフラ周り、ネットワークとかっていうところって、
なんか学ぼうとしないと学べないようなもの。
スピーカー 1
で今ってそれが、今まではそういうハンズオン形式だったのがさらに上位になって、
AIがもうやってくれるようになってるから、
多分自分でこう、なんだろ、手を動かそうとか、
あの当時僕もコンピューターサイエンスが基礎だから、
スピーカー 1
基礎を知らないと応用に回せないから、そっちの勉強一生懸命やろうって思って、
気合い入れてやってたんだけど、
だからそれが今は、それがすごく生きてると思うし、
でもなんか、今のAI時代でコードも書かないし、
少なくともリアクトとかララベルのハンズオン形式でやってた時はコードは書いてたじゃない、
でも今コードも書かなくなるってなったら、
自分でそういうのこう、わざわざ手間暇かかる方法を採用してやっていかないと、
身についていかないんじゃないのかなって思ってるっていう。
スピーカー 2
そうだと思いますね。
なんか聞く話としては、今まではボトムアップでやって、
知識を蓄えてたのが、今はトップダウンというか、
一回ドンと作って、その後の修正なんかで、
こういう時はこういう修正をするのかっていうようなのを学んでいくっていうのが
主流になっていくみたいなのは見たから、
部分的なところの知識は身につくけど、
深い部分、基礎のところとかの理解っていうのはなかなか、
できるにしても以前の学習法に比べればだいぶ遅く、
身につきづらいっていう状況はあるんだろうなとは思いましたね。
スピーカー 1
簡単に作れちゃうからなあ、そこから、
しかも知識ないと疑問に持てることも少ないから、
やっぱりどうにかして、もっとエンジニアとしてやっていくってなったら、
そういうのをこう、込ん詰めてやらないといけない。
泥臭い学習をしないといけない。
だろうなあって思った。
スピーカー 2
なんだかんだ、結局その辺の基礎を学ぶほうが、
いろいろとその後の理解も深まりますし、
でも多分主流じゃない学び方になっていくんだと思います。
スピーカー 1
なんかAIとかもそれこそ、
僕もなんだろう、AIに分かんないこと聞いて深掘っていくのって、
めちゃくちゃ学習コスト低いというか、
学習効率がいいなあって思っていて、
だからAI活用して勉強の方法とか確立できれば、
すごく成長できそうな気はしますね。
スピーカー 2
そうですね、うまく使えればいいツールですからね。
スピーカー 1
うん。
というわけで、だいぶAIの話、
もうね、トレンドすぎてね、何なんでもAIに結びつけられる時代になってしまったから。
スピーカー 2
そうですね、どっかしらにフックがあるから、AIの。
スピーカー 1
そうなんだよな。
なんか考えちゃうもんなあ、このAI時代でとか、
なんかそういう、何だろうな、疑念みたいなのも結構あるしね、
AIに対するなんか、こう、違和感というか。
っていうのはあったりするんで、
なんかいろんな話がもうつながってしまうが。
スピーカー 2
まあまあ、でもつなげずに話すのが、
今後は老害化していく感じもあるから、
まあまあ、つなげて話す方が健全なのかもしれない。
スピーカー 1
じゃあ最後に、リファクタリングを学びたい人に一つだけオススメするなら、
どんな本ですか?
スピーカー 2
え、どんな本?
スピーカー 1
何、何オススメしますか?
何でもいいです。
スピーカー 2
まあまあ、でもやる気があるんであれば、
マーチンファウラーのリファクタリングとか、
ケントベックのTDDとかを社教するっていうのはやっぱいいんじゃないかとは思いますけどね。
スピーカー 1
なるほど。
スピーカー 2
やっぱ社教ですよね、まず何よりは。
スピーカー 1
社教だね。
スピーカー 2
なんか普通に読むだけだと楽だし、ぽんぽん読めて学んだ気にはなるけど、
やっぱその浅い理解にしかならないから。
スピーカー 1
ならないね。
スピーカー 2
何を読むにしても社教はするべきだと思いますね。
スピーカー 1
確かに。コードが書かれているものは社教せよっていうのは確かに。
あれみんな流し読みして分かった気になってるけど、全然分かってない可能性高い。
スピーカー 2
いやそうですね、分かった気にはなれるんですけどね。
スピーカー 1
リファクタリングとか、僕もクーリングコードとかをちゃんと社教して、
一冊時間かけて忍耐強くやっていくのがテストだと思います。
スピーカー 2
そうですね、時間がかかるのはしょうがないんで、
でもやるしかないんで、本気を出すなら、是非社教していただいて。
スピーカー 1
AI時代にこそ多分必要になってくる能力だと思うので。
スピーカー 2
そうですね、だから極力AIの補完とかも使わず、
IDの出してくるサジェストというか、みたいなのは良いと思うけど、
パイロットのタブでポンポンをかけるのはしない方がいい。
スピーカー 1
確かに。
あとちゃんと関数名とかもね、考える癖とか。
あれ昔だってさ、ねえねえってめちゃくちゃ時間かけたからなあ。
スピーカー 2
それこそクーリングコードかな、クーリングコードに名々には時間かけていいって書いてますよね、確か。
スピーカー 1
うん、書いてある。
今なんかね、こういう関数作りたいんだけどってAIに投げたらリスト出してくれるけど、
昔はこのコンテキストでどの単語がいいんだろうとか、
めっちゃ考え、だってもうGoogle翻訳しかない時代だから、
めっちゃあれに時間かけてたよなあって思う。
スピーカー 2
でも今の本当AIでいろいろと出してくれるからいいですね。
その中でもちょっとニュアンス違うんだから、こういうニュアンスでーとかってやったらまた出してくれって、
あーこれ近い近いこれ近いんだけどちょっとまだ違うみたいな。
スピーカー 1
それいいよなあ。あんだけ明々にめっちゃ時間かけてたもんなあ。
また出すにしそう。こんなところですかね。
スピーカー 2
はい、そんなところです。
はい、じゃあ終わりましょう。ありがとうございました。
スピーカー 1
ありがとうございました。