Slide 1

Slide 1 text

2022/05/14 脱オブジェクト指向講座 LINE Fukuoka きしだ なおき

Slide 2

Slide 2 text

05/14/2022 2 自己紹介 ● きしだ なおき (@kis) ● LINE Fukuoka ● 「プロになるJava」デテマス ● 今日の話の具体的なコードのせてます

Slide 3

Slide 3 text

05/14/2022 3 「プログラミングの勉強を始めたけどオブジェクト指向わからん」 ● 始めたばかりでオブジェクト指向なんか気にしなくていい ● そもそもちゃんと処理が書けるようになろう ● オブジェクト指向は30年前のコード整理術 ● いまはもっといろんな考え方がある ● むしろいまの考え方にはあっていない

Slide 4

Slide 4 text

05/14/2022 4 オブジェクト指向の特徴 ● オブジェクト指向ならではの特徴 ● 継承によるモジュールの分類 ● 継承による差分プログラミング ● データと処理をまとめるのはオブジェクト指向固有ではない ● 抽象データ型 ● オブジェクト指向の役割 ● ポリモーフィズムを使った、状態の管理に対する差分プログラミング

Slide 5

Slide 5 text

05/14/2022 5 差分プログラミング ● 似たような処理のうち異なる部分を抜き出す ● メソッドは似たような処理のうち共通部分を抜き出す ● CPUが遅くメモリが少ないときは継承が使われていた ● いまはラムダで 実装するのが手軽

Slide 6

Slide 6 text

05/14/2022 6 アプリケーションの構造 ● レイヤー構造 ● 各レイヤーはステートレス(状態をもたない) ● 各レイヤーとの受け渡しは関数的 ● データは抽象データ型 ● データとそのデータに処理をもつ ● 正規化 ● 表現のバリエーション ● UIにはオブジェクト指向が適切 ● しかしHTML(DOM)やWidgetでラップされる ● アプリケーションはイベント処理を関数的に書く

Slide 7

Slide 7 text

05/14/2022 7 まとめ ● コーディングテクニックとして関数型がつかえる ● 差分プログラミングのためにオブジェクトの多態で難しい構造を作ら なくてよい ● デザインパターンもほとんど不要 ● ラムダの使えないC++でラムダをやる方法をシチュエーション別にまとめたもの ● アプリケーション構造も関数的になる ● データは抽象データとして考える ● データとまとめる処理は正規化と表現のバリエーション ● 他のオブジェクトとやりとりしない ● そもそも処理が書けるようになってから