Upgrade to Pro — share decks privately, control downloads, hide ads and more …

脱オブジェクト指向講座(5分LT資料)

 脱オブジェクト指向講座(5分LT資料)

2022/5/14に開催されたTechFeed Conference 2022の5分LTでの登壇資料です

9e840766611f942c7c0a9ad6987a5d78?s=128

Naoki Kishida

May 14, 2022
Tweet

More Decks by Naoki Kishida

Other Decks in Programming

Transcript

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

  2. 05/14/2022 2 自己紹介 • きしだ なおき (@kis) • LINE Fukuoka

    • 「プロになるJava」デテマス • 今日の話の具体的なコードのせてます
  3. 05/14/2022 3 「プログラミングの勉強を始めたけどオブジェクト指向わからん」 • 始めたばかりでオブジェクト指向なんか気にしなくていい • そもそもちゃんと処理が書けるようになろう • オブジェクト指向は30年前のコード整理術 •

    いまはもっといろんな考え方がある • むしろいまの考え方にはあっていない
  4. 05/14/2022 4 オブジェクト指向の特徴 • オブジェクト指向ならではの特徴 • 継承によるモジュールの分類 • 継承による差分プログラミング •

    データと処理をまとめるのはオブジェクト指向固有ではない • 抽象データ型 • オブジェクト指向の役割 • ポリモーフィズムを使った、状態の管理に対する差分プログラミング
  5. 05/14/2022 5 差分プログラミング • 似たような処理のうち異なる部分を抜き出す • メソッドは似たような処理のうち共通部分を抜き出す • CPUが遅くメモリが少ないときは継承が使われていた •

    いまはラムダで 実装するのが手軽
  6. 05/14/2022 6 アプリケーションの構造 • レイヤー構造 • 各レイヤーはステートレス(状態をもたない) • 各レイヤーとの受け渡しは関数的 •

    データは抽象データ型 • データとそのデータに処理をもつ • 正規化 • 表現のバリエーション • UIにはオブジェクト指向が適切 • しかしHTML(DOM)やWidgetでラップされる • アプリケーションはイベント処理を関数的に書く
  7. 05/14/2022 7 まとめ • コーディングテクニックとして関数型がつかえる • 差分プログラミングのためにオブジェクトの多態で難しい構造を作ら なくてよい • デザインパターンもほとんど不要

    • ラムダの使えないC++でラムダをやる方法をシチュエーション別にまとめたもの • アプリケーション構造も関数的になる • データは抽象データとして考える • データとまとめる処理は正規化と表現のバリエーション • 他のオブジェクトとやりとりしない • そもそも処理が書けるようになってから