#205 駆け出しエンジニアが意識できていない、ソフトウェアの複雑性とは?(A Philosophy of Software Design)

2023/12/24 ·

  • ノリさんじゅっぺー本日はですねカイチがフィロソフィーオブソフトウェアデザインという用詞を読んでいるのでフィロソフィーオブデザイン?



  • 読んでるのでそれについてちょっとお話しさせていただきたいんですけどはいはいはい幼少はいもうなんと人生初幼少うん30歳の目標だったんですがちょっとオーバーランして31歳になりたてで読み始めてます珍しい先越された珍しい青のにょろにょろ本ですね青のにょろにょろ本日本語に絶対翻訳されないで有名な青のにょろにょろ本読んでるんですけどちょっとこの本



  • この まあ 読んでる読み心地とかは ちょっと最後に回すんですがはい うんまあ そんな中で ちょっと 刺さってる刺さったポイント part1っていうお話ですおーすでにはい すでにまあ そんな読めてないですけど まだはいはいはいまあ でも面白い面白いんだうん 面白いそれは 英語を読んでる自分 面白いっていう そういう感じじゃない最後に話します はいちょっと もろもろはいそれも いろいろありますなるほどはいじゃあ まあ 順当に導入していくんですけどはい



  • ソフトウェア開発者の仕事とはソフトウェアを開発することであるその通りもう少し具体的に言ってほしいユーザーに価値を届けることであるちょっと抽象化がしましたね今コードを書くことなんですけどなるほどコードを書く中でも保守性のあるコードを書くことですねそれがソフトウェア開発者の仕事ですなるほどなのでただ動くだけじゃ十分じゃないですね必要十分じゃない



  • こういうところが個人プログラマーとか学生とかと違うところなんじゃないかなと思うんですね保守性を求められるなるほどねもっと言うと駆け出しエンジニアと中級エンジニアとの違いなんじゃないかなと思うんですよなるほど駆け出しエンジニアは動くものを作る中級エンジニアは動くし保守しやすいものを作るってことですかそうそうそうそうそうそうそうそう



  • そのね 僕も新卒の頃 動きゃええやんという気持ちで作ってましたし なんだり動いたらタスク終わったと思ってたんでで 多分 研修とかプログラミングスクールも そうなんじゃないかなと思うんですよどうなんですか? どうなんでしょう?割とチェックしますよ 素晴らしいそれはすごいな 点数名とか設計とか甘かったらチェックしますよ あっ いいですね



  • そういうのもじゃあちゃんとしてるとかちゃんとしてるんだななんか割と僕は学生でやってたんで本当に最初動けばいいやっていう気持ちになってしまってたんですけどでこの保守性のあるコードを書くっていうのがフィロソフィーオブソフトウェアデザインという本の大テーマなんですねそうなんだタイトルデザインというか設計入ってるのに設計のゴールがそこなんですよそうなんだ保守性のあるコードを書くための設計なんですね



  • なのでこの本のイントロダクション本当に最初の最初でこの本のゴールは2つあります1つはソフトウェアの複雑性の本質を説明すること2つ目が複雑性を最小限にする方法その複雑性の話をコントロールすると保守性のあるコードが書ける



  • 話の流れの本でしてなるほどそういう方法の本なんですねややこしいなのでその複雑性に関するいろんなことが書いている本というのがこのフィロソフィーオブソフトウェアデザインという本ですすごいなんかなんとなくボボウジさんのクリーンシリーズと似たような気配を感じてるんですけどはいはい



  • そういうイメージであってます?あってますでその別のポッドキャストでの知識ですけど深掘りで和田さんと岩下さんがこの本について話してた時はクリーンコードと対をなす本という話をしてましたねえマジ?全然違うことを言う全然違うことを言う対なんだ全然違うを言い過ぎかなでも違うことも結構言う



  • 秀吉と信長みたいな感じですかそうなんですかわかんないホトトギスベースで話しちゃったけどホトトギスベースはそうかもしらんけどホトトギスベースどうだろうなホトトギスベースでいくとあれ別にリアクションですからね何かに向かってるわけじゃなくて泣かないホトトギスに対する反応ですかねそういうことか3体目も出てきそうですよね3体目も出てきちゃいそうだね確かに



  • どういうこと?イエスですよね泣くまで待つ派が出てくるかもしれないからちょっとわかってないんですけど流してっていうクリーンコードと対応なす本でこれはこれ多分新しい考えが得れるだろうなと思って読んでたりするんですが今日はソフトウェアの保守性に大きく影響するソフトウェアの複雑性とは何かっていうのを解き明かしていくのが本日になります



  • もうですか?もう解き明かしちゃうんですか?はい、あのどうにかする方法はちょっとまた別のエピソードなんですけど複雑性ってこういうことだったんだっていうのが今日ですうんうんうんうんっていうのではい最初仮説を持ってやっぱ学んでいくのがね勉強する上で覚えられるコツかなと思うので最初仮説を持ってもらいたいんですけどうん



  • ソフトウェアの複雑性って何でしょうねと教えてあげな順平任せくださいソフトウェアの複雑性とはコードを書いていってたくさんファイルが出来上がってそれを理解している人もいるんですが代々受け継がれることによって把握できない人が増えていって



  • そのソフトウェアを説明できる人がどんどん少なくなってしまうことを言いますすごい現実に即している45点まあ言葉選びが良ければ60点までいけたかもしれない言葉選び良くなかったな分かりづらかった記述問題としては分かりづらかった非常になるほどね



  • 確かに 着地がいつ見えるかっていう感じだったから その理解を今日80まで上げます多分100の話をして 持って帰ってもらうの80を目標にしておく やっていく感じで大枠から入るんですけど 複雑性とは何かっていうと この本ではシステムを理解したり更新するのを難しくする ソフトウェアの構造に関わる全てのもの



  • っていうふわっとした概要をお話ししてますお話?記述してますあ、すいませんちなみにちょっと本日の話なんですが僕のフィルターを通した話になってるんでどうしても英語から日本語からの開地なんで英語からの日本語からの開地?はい開地より先に日本語ある?自分もわかんない英語からの開地からの日本語だよねただ



  • しかもそのこれ同じ意味じゃないみたいな英単語を使い分けてたりするんですよやっぱりそのニュアンスを頑張って調べて頑張って捉えてってやってるんですけどまぁ



  • 本当のところ知りたかったら 現状読んでくださいっていう前提で今日は日本語で カジュアルに聞けるっていう前提でちょっとお話しますで戻って複雑性はとにかくシステムを理解したり 更新したりするのを難しくするソフトウェアの構造に関わる 全てのものという話をしててなんとこの本複雑性の方程式 作っちゃってます数式で?数式であれですか?



  • どれだけ依存されてるかとどれだけ依存してるかの割り算のやつですか?惜しい違いますけどちょっと惜しいいやまぁちょっと違うか式としてはですねシステム全体の複雑性をCとしますとCラージCコンプレッキシティそういやどそうですねコンプレッキシティどっちだろうちょっと待ってくださいねどっちなんでしょうねコンプレックスかはいコンプレコンプリケイティとか



  • どっちも複雑とか複雑っていう複雑っていう単語で2個使い分けをしててそうなんだもう早速英語力出してきたただこの意味の違いは分かりませんでした僕はもうなんとなく読んでますここはいずれにせよCCイコール部分的な複雑性かける開発者がその部分に費やす時間の割合部分的な複雑性部分的な複雑性そのメソッドとか



  • コード単位ファイル単位の複雑性とそこに開発者がかける時間をかけたもの時間めっちゃかかるんだったらそれは膨れますよねそれらを全部足し合わせたものがシステム全体の複雑性ですとなるほどね普通に複雑性の個数とそれにかかる時間があってかけたら単純にかかる時間になるから複雑性につながるよねってことかそれがシステム全体の複雑性と表すことができる



  • いやいやちょっとまだあれですよ部分的な複雑性のカウント方法がいまいちピンとこないこれはですねやっぱり概念的な話なんで定量的に話すよりはそうやって複雑性って表せるよねっていうところまではなんとなく直感的にわかるじゃないですかさらにちょっとここからだんだんと解像度上げていくんですけどさっき言ったように一つ一つの複雑性を全部足し合わせたら全体の複雑性になるじゃないですかここからですね複雑性っていうのは



  • これちょっと音声で難しいんですけど全身的っていうんですね全身的っていうタグはむずいんですけどインクリメンタルインクリメンタルっていうのはだんだんと積み上がっていくそれこそアジャイル開発とかでも成果物をインクリメントって言いますけどそれはちょっとずつ積み上げて物を作っていくからインクリメントって言って僕が言ってるその全身的って言ってる全は全金銭の全ですねそっちやばい



  • 二水に斬撃の斬みたいなやつ二水に斬撃の斬って書くやつ複雑さだから全身的なんですよインクリメンタルハンピレーですねハンピレーの式でよく前近戦って言われません前近戦とはちょっと違うかもしれないけどだんだん積み上がっていくものなので複雑さって一気にできるんじゃないんですよ



  • 一つの複雑性で壊滅的なエラーを起こすんじゃなくてちっちゃいものが積み上がって積み上がって積み上がって積み上がって壊滅的なエラーを起こすものすみませんグラフにしたときに指数関数的になりますかそれはなりませんなりませんそれは発散ですよねちょっと分かんないですけどどこに向かうかによるかもしれないですけどめちゃめちゃ抽象化すると多分比例になります比例になるんだ線形的に増えるものはいはい



  • まあうにょうにょうにょってなりますけど積み上がっていくものでなるほどただ積み上がっていくっていうものだけですなるほどOKはいまあなので一つの何でしょう本当に複雑性っていうよりはもう本当に積み上がっていくことが積みうんなので積み上げないようにしていくっていううん



  • ところが本当にポイントになってくるのがその複雑性との付き合い方というか性質これ複雑性で一つ覚えておかなきゃいけないこと本当にあの割れ窓理論じゃないですけどちょっとずつ積み上がっていくんで本当にその割れた窓を作らないでボーイスカウトルールよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしよしじゃ シリス シリ



  • っていうのがまあ複雑性の性質ですねで複雑性があるとどういう困ったことがあるかというとですねさっき順平が言ってたものも含まれるんですけど大きく3つ変更箇所の増幅が1つ目2つ目が認知的負荷の増大3つ目なんでしょう想定外の知らないことが増えるっていうのが3つ困ることが起きるとこの本では言ってて最初の変更の増幅ですねこれは



  • 1箇所変更するだけで多くの場所がどんどん影響されると影響範囲の特定ができなくてうわここも変わったわみたいになるのが複雑性で困ることこれも分かるよねHTML、CSSでいうと



  • ここの箇所の色変えようと思ったらこっちも変わったーみたいなねあるーあるんですねあるーちょっとあんまり僕触んないんでありそうだなと思いつつっていうのが変更の増幅で2つ目これも分かりやすくて認知的負荷ですねこれ認知的負荷って何なのかっていうとですね読んで字のこととしてはあるんですが理解するのにめっちゃ大変ということですね分かるif文で否定をめっちゃ使ったりとかねそうそうそうそう



  • if文で否定使うなって言われるのもなんかなんて言うんでしょうねいい文章がないけど語尾になんとかじゃなくなくないって言った時にどっちってなる昨日ちょうど僕ソースコードでララベルの裏側のベンダーのところ見てたんですよちょっと謎の問題に出くわしてそこ読まざるを得なくなってそれの式見てた時に



  • この変数が存在してないかつ文字列じゃない時にってなってるからドモルガンの法則で考えるとこれが存在してるかもしくは文字列の時だからみたいななんかわけわかんないことになって結局わかんなくなりましたノリさんレベルでもそうなっちゃうんですねドモルガン入れるのやばいですねわかんなくなっちゃったね否定かつ否定はちょっとねわかんなくなっちゃったねあれ条件分岐とか本当に注意が必要ですよねうん



  • っていうのが認知的負荷ですねシステムの設計者っていうんですかはい行動行数から複雑性を想定しようとすることはありますよねはいステップ数ってやつですかねステップ数ってやつなのかなちょっと待ってくださいステップ数ってやつですねステップ数ってやつですねこのやろうとしてるけど本書曰くこれは認知負荷に関連するコストを無視してると言うてましてうん



  • 例えばフレームワークを使ったコードって数行で書けるけどそれらを理解するのってとても難しいと抽象化されてるから確かになので行数で認知的負荷に関連する複雑性を計測しようとするのは違うよねって話をしてます



  • なるほどねより多くのコード行数を必要とするアプローチが認知負荷を軽減するために実際にはよりシンプルであることが分かりますって話をしてて僕はこの一行読んでなんかちょっとクリーンコードと違うかもしれないなと思い始めてますなるほどね



  • これなんかすごいむずいなと思うんですけどミクロで見たらそうかもしれないけどマクロで見たときに統計的に有意な値出そうだなっていう感覚はちょっとありますねもう少しちょっと解説お願いしますミクロで見たときにそれに当てはまらないケースはいっぱいあると思うんですけどその案件を何個も集めたときに結局コード行数多い方が複雑なプログラム多くなるんじゃないかなっていう統計データ出そうだなっていう感覚もあります複雑って言いました?はい



  • 例えばですけど循環的複雑度っていうワードがあって条件分岐の数でバグの出やすさみたいな複雑性を計測するみたいなのがありますけど業数よりも結局複雑なやつは業数多いのか確かにそうかもしれないっていう両方の視点ありそうだなってのはちょっと思いましたね過度な抽象化も良くないけど



  • でも過度な抽象化すらしない人たち多分とんでもないことになってるぞってことですよねそれはありそう



  • はいっていうのがまあ認知的負荷という症状はいはいまあこれもありそうで次最後ですね想定外の知らないことまあちょっと英語でアンノンアンノーンズって書いててこれなんて訳すんだろうアンノンアンノーンズ多分想定外の知らないことってことなのかなと思ってるんですけどまあこれはあの何かをやる上で知っておく必要があるのにそれが何なのかすら問題があるのかどうかすら分かんないそれを知る術がないようなもの



  • させてて具体例が書いててさっき言ってたhtmlとcssの話でここのcssのこの値変更すると全ページの背景色一括で変わるよみたいな設定値があったとしますとそこを変えましたと変えたけどとあるページだけ変わりませんよく見るとそのページのひも付くcssに共通のバックグラウンド用の色を上書きするようなものが突如書いてましたみたいな



  • で そんなん知らんし なおかつ事前に知る術もないしで ページ数めちゃくちゃいっぱいあるから どうしようもないうん一個一個手で確認していかなきゃいけないうんうんみたいなものを アンノーン・アンノーンズって言うらしいですなるほどね 驚き最小の原則の驚きの部分みたいなのまあそうかもしれないですねっていう この3つの症状 複雑だと変更が増幅されたり 認知的負荷が上がったりアンノーン・アンノーンズが出てくるとうん



  • というのが複雑性があるとこういう困ったことが起きますよねという話です起きるわこの辺でもうなんかその順平が言ってた言いたかったことをなんかより言葉にしてくれてる感があって僕ももともと割とその順平に近い理解だったんですよ複雑性って迷惑なものでこういうこと起きるねっていうのは思ってたんですけどこうやって体系的に整理するんだっていう楽しさを得ながらこの本を読んでましたなるほど



  • で、じゃあ複雑性が何って話とあるとどう困るかっていうのは分かりましたねとじゃあ原因を探っていきましょうなぜ起きるのかっていうところでで、2つ原因があるという風に言ってますちなみに何だと思います?1つ目1人で作らないから自分だけが全てを自分で作ればそいつは把握できてアンノーンアンノーンズが生まれないそれは複雑でもいいってこと?自分



  • 自分だけで作ってれば自分が全部把握してれば複雑でも良い違う違うんですけどいいよ言葉にしてみて二つ目で複雑にしないようにするっていう何かを言いたいんですけど出てきませんちょっと待って複雑性の原因聞いてるよ複雑性の原因聞いてるのに複雑にしないようにするって何って



  • ギブアップです ギブアップです ギブアップです複雑性の原因 それはギリギリの脳機です1つ目 ギリギリの脳機はい2つ目2つ目 エンジニアの主体性の欠如です本書きそうな勢いだなはいエンジニアの主体性の欠如みたいなありがとうございますはいもうちょっと 同じくらいかな 理由とこの本ではですね 2つ1つが依存性 依存関係



  • 二つ目が不明瞭さっていう風に整理してますなるほどもうちょい抽象的なレイヤーでよかったってことかそうかもしれない結構依存性と不明瞭さは割と具体的だなと僕は捉えててそうなんだコードにフォーカスしてるじゃないですかエンジニアの時間がないとかエンジニアの問題なんでアクティビティにフォーカスしちゃってそうかもしれないですね最初の依存性っていうのは



  • メソッド同士で依存してるとかそういう全般でそんな完全に排除することはできませんともちろん依存性が入り込むように設計しますと入り込むように設計します普段みんな僕もそうですしそういうもんじゃないですかただ一方で複雑性を減らすコーディングをするっていう観点で言うと依存性を減らすっていうことをやっていかなきゃいけないほう



  • ほうですよなるほどはいただそんなゼロにするのは無理なんでシンプルで適切な依存関係を作っていくそこだよね出た出た出た少なければ少ないほどいいわけじゃないなっていう感覚があるんですよねはいそうですそうですで



  • まあこれはですね本当に依存関係を作るときにこれって本当に適切な依存関係なんだろうかっていうのを一時一時というか都度整理しながらやっていく必要があるらしいんですがちょっとその辺のテクニックはちょっとまた別のエピソードでって感じで一つはその適切な依存関係が大事ですねっていうところが一つちょっと例があって適切じゃない依存関係はさっきのhtml cssの話で



  • とにかくマスターカラーみたいな色だったとしてその色はいろんなところに引用されてますっていうカオスな依存関係があったとしてもうこれはカオスな依存関係ですそれを背景色用のやつ抜け出して背景色でいろんなところに依存させるこれは適切な依存関係ですなるほどなぜならそれが



  • 一体何の役割をしているのかっていうのが分かりやすいから後で追いやすい検索しやすいっていう形で依存関係は次の不明瞭さにも繋がるかもしれないですけど明瞭にしていくことで



  • 複雑性を下げていくことができるよねみたいな話がどうやら書いてそうです確かになんかあれですね明瞭さとセットな感じのイメージしちゃいました今明瞭な依存関係はOKっていうまあそうですね明瞭もしかして明瞭でシンプル分かりやすい2つ目不明瞭さですねでこれ単純な例は変数名とかですね何に使っとるんやこれみたいなこの関西一体何をするんやと



  • 分かるわこれは本当にヒマプロも偉いもんでこの不明瞭さに立ち向かうコンテンツとかもありましたからねもう今やってない明明選手権とかあれはもう複雑さ下げるためにやってたんで我々そうですよ順平もだいぶ複雑じゃない行動をかけるようになってるんじゃないでしょうかだいぶシンプルな行動をかけるようになりましたねあのエピソードのおかげでいいことだね



  • っていうのでそういう不明瞭さをどんどん取り除いていこうと同じ命名の変数が2つの異なる目的で使われたりとかするとねもうなんなんやってなったりしますしそうですね変数とか関数の命名もそうですしあとは今ある依存関係じゃないや例えばですけど新機能追加にあたってエラーを追加しますとバックエンドにエラーを追加するときにそのエラーステータスに紐づいたメッセージ



  • すでにあるエラーメッセージテーブルみたいなやつに足さなきゃいけないかもしれないけどそんなんあるかどうかわからんとかが読み取れないとかそういう不明瞭さもあるんですねそういう不明瞭さってコードもそうですけどドキュメントがない不十分であるというところにも不明瞭さが不明瞭さが生じたりするんですねなるほどなんかフラグがあって



  • 01だけじゃなくていろんなフラグがあるけどこれ2だと何なのみたいなそういうやつそれも不明瞭さですよね書いとけよコメントアウトでとかコードのコメントアウトで書いてるやつドキュメント違うんですけどとかねあるねそういう不明瞭さもね減らしていくことで複雑性というのはやっぱ減らせると原因なので



  • 本当にちゃんとすることを求められるというかなあというのを感じていたりしました以上2つが複雑性の原因依存性と不明瞭さそれが



  • あると変更の増幅認知的負荷アンノンアンノンズが出たりとかしてどんどん物を作ったりバグを修正したりするのが大変だよクソ大変になるからもうちょっと分かりやすいシンプルなシステム作ってこうねっていうのがこの本というので本日複雑性の



  • 解明複雑性とはっていうところで原因はこういう要因からできてこれがあるとこういうことが起きるよっていうちょっとお話をさせていただきましたなるほどねうわこれ絶対好きな内容の本だわこれね面白くてほっとに面白くてまずめっちゃ薄いですらしいねKindleだからね全部同じ薄さに感じるんですけどKindleで174ページぐらいなんで薄いなおかつですね



  • 内容が適度に新しくて僕の中で今年僕結構システム設計とかの本読んでたんでこの本でこう言ってたことこれだとこう言ってんだみたいなこの本に関してはいい設計は複雑性っていうアプローチで論ずるんだとかそういうおもろしどそらかったりとか単語が簡単なんかわからんけど全体的にそうなんだデイリードットデブとか読んだんですけどデイリードットデブより読みやすい



  • 定理度といえば1文ごとに見たことない単語出てくるよねそうそうそうそういうのありますよね僕は多分トイック何点くらいなので500から600くらいだと思うんですけど今は一生当たりわからん単語を多分6個くらい6個とか7個とかです多分ここから減っていくんでしょうから徐々に読みやすくなりそうなんか本当に何でしょう技術書初めて用書で読んだんですけどはいはい



  • 本ですでに読んでるんで、なんとなくわかるんですよ。「あっ、この単語、たぶん日本語で言うとこれだわ」みたいな。技術書で読んでる知識があるんで。で、僕かつてすごく英語苦手で、大学入試とかも、たぶん当時、日本語の本読んでたら、英語もっとできたんだろうなと思いました。日本語の本読んでたら。あー、そういうことか。



  • 情報の紐付け力が圧倒的に高いんですよ今の方が日本語の本読んでるおかげで日本語の背景知識があるんで技術的な結構それに近いことがいっぱい書かれてるんですごく分かりやすい複雑性って言って単語を言われたとしてもイメージできるじゃないですかさっきの順平みたいに



  • たぶんプログラミングソフトウェア開発における複雑性ってこういうことを言っててゲームもこういうことだろうなってなんとなく想像つくと思っててそれっぽいことが書いてるとなるほどね背景知識あるのとないのだと同じ文章読んでも全然入ってくると違うよね違うあと僕並行してもまた単語勉強したんですけど英単語英単語勉強するより全然単語覚えれる



  • なるほどねインデックスがすごいからこの本というか本というか文章だとってのをすごい思ってなんかエンジニアで



  • 英語をちょっと勉強したいなと思ってる人英語の記事読むよりもこっちの方が簡単なんじゃないかなとそうなんだなんか要所読むハードル下がりましたわ今かなりてかこの本がって感じかこの本がですねたぶんのりさん以前Googleのエンジニアリングの要所読んで大変だったって話してたんですよねあとあれはオーディブルだからねやばいね何言ってなるオーディブルはやばいなんて言ったのってなっちゃうねオーディブルやばいっすよねいやーね



  • 字幕出るんですか?オーディオって 深井:でん!でん! 深井:いやだからあの聞き取れない単語は一生聞き取れない 深井:いやですよね



  • ほんとっすよねー。いや、そう。なので、すごくこれは、あの、思ってるハードル低いっす。なんか、やってみて思いました。なんか、やっぱり、もちろん、日本語で読んだら、マジ一瞬で終わるんすよ、一生。それよりは、めちゃくちゃ時間かかるんすけど、とはいえ、そんなにかからん。し、情報密度が高い。結構、あの、僕、今日お話しましたけど、割とそのまま喋ってるんで、なんか、



  • 読みやすいです本当にエッセンスって感じでっていうのでちょっとすごくおすすめですしあとなんか要所読むの悪くないです今のとこいや絶対いいわ別の本は分からんす自尊心とかも上がりそうどうでしょうねあのこれ自尊心レベルで言うとはい一個前のあのチャットGPTの本読んでる時の方が自尊心高かったそうなんだえどういうこといやあのうんこれも脱線したんですけどうんやっぱスラック



  • でメンションつけたら色々やってくれるアプリ作れるわけですよGPT呼び出しだから自尊心高いですよあれそうなんだそういうことか俺流行り乗ってるわー感があってなるほどね確かに今回はなんかガクッと



  • あれですよGAじゃないですよ学ぶ生徒のほうね教授に読めって言われたから読んでるみたいなそのぐらいのテンションではありますけどでも楽しい興味ある用書を読むのいいなって



  • 30超えてやっと気づいて あーなんかもっと早くやれるとよかったなーと思いながら まあ人生今が一番若い日だからいっかっていう話ですね 樋口:それではね わーそれいい言葉本当に 今日一番若ぇからな 深井:そうです 誰だっけ 樋口:学徒? 深井:違います 樋口:いっぱいいますね学徒 深井:ライオンの人 樋口:大西ライオン? 深井:違います



  • リベ大の寮学長のエンディングに絶対言う言葉人生今日が一番若い日です



  • 深井:言いますね 樋口:へえ 深井:って言ってまあ色々チャレンジしていこうっていうのを僕のもう大事にしてるんで 樋口:なるほど深井:ちょっといいですかそれアップデートして僕、俺もちょっと思ってたんですけど今日が一番若い日をアップデートして明日が前世紀っていうのが僕的にアップデートなんですけど樋口:ちょっと待ってどういうこと?



  • 樋口 今日レベルアップしたら明日のが強いよねってこと?深井 常に明日が最強っていう今を超え続けていってるっていう樋口 ああそういうことですね深井 今若いかつ頑張ってその一番良かった日を翌日超えているっていう明日が前世紀がアップデートしました樋口 なるほどね今日の順平昨日と比べてどう?深井 あの気はどいな気はどいな



  • これからや昨日お酒飲んでたからな今日ポッドキャスト撮って超えてくから今カイさんから聞いてるエピソード吸収して確かに複雑性はね言葉にできると多分普段の開発体験変わる気がするんで確かに



  • 依存するときに「わぁ、これ複雑にしてるわ」なのか不明瞭さとか意識すると「わぁ、これ今複雑にしてるわ」ってなるんで、たぶんヤンヤン:たしかに。言語化してから認知しますからね、人間は 深井:そうそうそう、ほんとにそうだから言語化大事でっていうのがちょっと皆さんの言語化のお手伝いになれたらなというところでちょっとお話しましたこれからもちょっと僕の理解がてらもうこれね、読むだけじゃね、ぶっちゃけわからんかもしれん、俺は英語と日本語が、英語かいち日本語が大変すぎて



  • わかる英語さあれじゃない?俺daily.dev読んでて思ったことがあるんですけどあれの記事で読んだことめっちゃ記憶しにくいそう?翻訳が大変すぎてそっちにリソース持ってかれてる気がしてるそれはあるかも確かにあのポッドキャストで話したもの以外はあんまりかもしれないあとツイートしたの以外アウトプット大事だなアウトプットしないと翻訳系はちょっと無理だなと思ってるはいなのでちょっとアウトプットさせていただきますちょっとあの



  • 本当に洋書読むのハードル低い人にも違う高い人にも届けられるようにちょっと頑張ってお話するんで引き続きお願いしますお願いしますお願いします締めちゃっていいですかはいはいハッシュタグひまじんプログラマーでSNSのXでフィードバック募集してますので



  • 要所読んだよーっていう人頑張ってっていう人ツイートポストお願いします簡単にできるよポストあとは説明欄からグーグルフォームで番組への質問要望等募集してますのでそちらお気軽にお願いいたしますこっちも簡単にできるよポストあとは各種ポッドキャストプラットフォームでのフォロー高評価お待ちしてますので高評価お願いしますこれ一番簡単だよフォロービーはい



  • じゃあ複雑性を理解したところではいこれ人生にも言えると思うんでシンプルにいきましょうシンプル大事はいではまた次回バイバイバイ次回納期間に合わずデバッグ

0:00 34:35

#205 駆け出しエンジニアが意識できていない、ソフトウェアの複雑性とは?(A Philosophy of Software Design)