# 【10月】オブジェクト指向実践ガイド輪読会🚴‍♂️ ###### tag: オブジェクト指向設計実践ガイド輪読会 ## 2023-10-07(土) ### role - 司会: haruguchi - ドライバー: Maeda ### 読んだところ p. 3.3 依存方向の管理 ~ p.84 まとめの手前 ### 次回 p.85 まとめから ### 議題 ### 疑問点・気づき・学んだこと - @haruguchi-yuma - 変わりにくいものに依存する(組み込みクラスとか、フレームワーク、抽象は変わりにくい) - 依存する数は少なく - AがBに依存している。BがAに依存しているといった方向ってあまり気にしたことなかったので、ちょっと気にしてみようと思った。 - まっきー - 「変わりにくいものに依存する」これに尽きるのでしっかり頭に叩き込みたい - 領域A(依存されている数が多く、要件が変わる可能性が低い)には意図せず具象クラスが入る場合もあるので注意する(他人のコードレビューの際にも) - Ruby(=動的型付け言語)はインターフェースを考えずに済む(=ダックタイピングが可能) - @fuwa - 依存先を考えて依存しないといけないんだなぁと思いました - 依存するなら抽象クラス、変わりにくいものに - s-miya - 初めて参加させていただいた。過去の文脈も適宜フォローあり助かりました - 最近、コーディングしてないので理解がふわっとしてますが、具象化できれば大量に依存させてイイ。わけではない? - コーディングしてるとどっちでもよくないか? となりそうなときの指針みたいなことが書かれてたと思いました - alto - 具象と抽象、依存関係を意識してコーディングしたい - 未来の要件の変更の可能性を考えながら設計をしていきたい - tomo - 依存の方向、意識していないと何も考えずに決めてしまいそう - 依存性注入をするときは暗黙のうちにインタフェースを定義しているというのは面白いと思った - 今回の話を踏まえるとオブジェクト指向設計においては静的型付け言語が有利、という結論になりそうだが… - saki - 変わりにくいものに依存する - 依存関係の方向、考えたことなかったのでこれから意識していこう - @AntiSatori - Row Polymorphismのある言語ならインターフェースの定義をしなくても型推論出来たりするので、静的型付け言語でも必ずしもインターフェースが必要になるわけではないと思った。 ### 振り返り、近況報告、その他何でも - haruguchi - 最近会社で資格取ることを推奨されてLinuCという資格の勉強を始めました(まだ始めてない) - 最近数学力が落ちてるので線形代数を勉強し直してます(これも今日からやる) - 離散数学を教えてもらいたいです - 基本的に土日にやることを詰めるけど、土日はゆっくりしててそんなにいっぱいできない。 - まっきー - ホワイトニング始めて2週間でだんだん白くなってきた🙌🦷 - @fuwa - 昨日机を買い替えたので慣れないことばかりです - 何cm ? - 連休明けから仕事なの、全く実感が湧かないです〜〜〜 - :+1::+1: - tomo - 仕事用にトラックボールを買ったら不良品で、でもサポートに連絡したらすぐ交換品を送ってくれた - s-miya - 職場環境かわり、いまのところ毎日出社ですが、体重は増える一方です🥲 - saki - 今月は大江戸ruby会議やkaigi on railsなどイベント盛りだくさんですね〜 kaigi on railsオフライン参加かオンライン参加か迷う - 大江戸行くんすか?↓ - いや、行かないと思いますww 永和の方めちゃいらっしゃいますね。 - alto - 職場が変わってキャッチアップするものがたくさんある。大変半分面白い半分 ## 2023-10-21(土) ### role - 司会: haruguchi - ドライバー: Maeda ### 読んだところ 3.4 まとめ ~ 4.2インターフェースを定義する ### 次回 4.3 パブリックインターフェースを見つける ### 議題 ### 疑問点・気づき・学んだこと - まっきー - ダックタイピングもインターフェースのひとつ(片方がもう片方に依存してない?) - 料理の作り方(=ソートメソッドの中身のロジック)は相手が知る必要のない情報なのでプライベートメソッド - Rubyの強み弱み(好き嫌い?)がだんだんわかってきたかも - maeda - メソッドをpublicにするかどうかは使用者の立場になって考えると慎重に議論すべきだと思った - 一旦publicにするとそのメソッドの振る舞いは変更不可になる - privateメソッドをテストしたい時の話 - https://bootcamp.fjord.jp/questions/579#answer_1285 - umizaru - OOPはクラスだけではなくクラス間のメッセージ(振る舞い、メソッド)で成り立つ。 - 相手が知る必要の無いデータはパブリックにしない。仕事でも同じ? - ドライヤーのオンオフ、Hot/Coolを選ぶボタンもインタフェース(パブリック)の一つなのかもと思った。 - s-miya - 一旦公開してしまったら戻せないから、とりまパブリックというのはよくない。運用という観点 - 依存しても安全と思われたところが変更されるのが、破壊的な変更なのかなぁと思いました - 穏便なやり方は、ある程度の期間かけてWarningとか非推奨とかを出す。研鑽Rubyに考え方が書かれてるとのこと - haruguchi - 料理の話は分かりやすかった - インターフェースを考えてもらうときプログラムを使ってもらう側の視点が必要だと感じた(使うのは自分も含め) - @fuwa - インターフェースの概念ってわりとふんわりしているのかも?いろいろ定義がある - なんでもかんでもパブリックにしておく、というのは後からプライベートにできないので危険 ### 振り返り、近況報告、その他何でも - まっきー - このあとmaedaさんのボウリングのコード見に行きます! - 質問タイムでの話だったので、PRでのやりとりはないかもです..😢  - 完成形で大丈夫です👍 - 5章のダックタイピングの章も先行して読んでみることにする(今なら少しは理解できるかも) - 来週は輪読会ありますか?(KaigionRails) - haruguchi - 今日話していたインターフェースは要はAPIだからAPIで色々調べても理解が深まりそう - 最近体調が終わってて、今日も病院行くために1時間開催でした。 - 元気になったら4時間開催しましょう!!w - s-miya - 今回で2回目の参加でした。序盤の読めてないところも読んでおきたいです - @fuwa - 社会復帰して早2週間です - ついに前回挫折していたところまで辿り着きました! - umizaru - インタフェースって意味がたくさんあるから概念を理解しづらいのかも。 - 11月中旬に東京でパフェもく会(リアルもくもく会の後にみんなでパフェを食べる会)をやります。企画中です。ご参加ぜひ! - maeda - 久しぶりの参加でした - JSConfチケットがいつも売り切れてる・・ - https://pretix.eu/jsconfjp/2023/