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

OOC 2020 メディアドゥ スポンサーセッション/ooc_2020_mediado

OOC 2020 メディアドゥ スポンサーセッション/ooc_2020_mediado

OOC 2020にてスポンサーセッションにて登壇した内容です。

kent-hamaguchi

February 16, 2020
Tweet

More Decks by kent-hamaguchi

Other Decks in Technology

Transcript

  1. 5 作 者 電 子 書 店 読 者 情報の集積

    出 版 社 電子書籍の取次事業
  2. 濱口賢人 • 開発手法 ◦ スクラム ◦ Clean Architecture, DDD •

    技術スタック ◦ C, Java, PHP, Go, Python ◦ クラウド, 主にAWS ◦ オンプレミス運用, 監視など ◦ バックエンド、フロントエンド • 趣味 ◦ システム開発, ギター, ゲーム
  3. オブジェクトって何?モデル? • そもそもオブジェクトとは!? ◦ 振る舞い か ◦ 構成 か ◦

    はたまた hogehoge か • 本セッションでは オブジェクト ≠ プログラム ※アラン・ケイ Smalltalk メッセージに対してどのように振る舞うかが重要
  4. 各レイヤーのオブジェクト • 経営観点 • 組織観点 • プロダクト観点 • システム観点 •

    インフラ観点 • ソフトウェア観点 • etc... 目的・達成定義が 伝わっているか 目的に合うように 作られているか
  5. 各レイヤーのオブジェクト • 経営観点 • 組織観点 • プロダクト観点 • システム観点 •

    インフラ観点 • ソフトウェア観点 • etc... 各種レイヤーで考えられる 目的達成の手段・モデルは それぞれ個別の オブジェクトと考えられる
  6. 各レイヤーのオブジェクト • 組織もオブジェクト ◦ メディアドゥという会社は電子書籍の取次事業をするオブジェクト • システムもオブジェクト ◦ 電子書籍の配信システムも一つのオブジェクト ◦

    書店運用のためのシステムも一つのオブジェクト • システムを支えるプログラムもオブジェクト ◦ データ入出力を取り扱うオブジェクト ◦ 操作の入出力を取り扱うオブジェクト ◦ ビジネスロジックを取り扱うオブジェクト
  7. オブジェクトを支える • 仮説 ◦ 目的への達成方法を、論理設計する ▪ ソフトウェア開発は論理的なコンピュータを扱う (勿論、物理の世界も論理である ) ▪

    故に論理的に成り立っているべきである • 証明 ◦ 仮説を結果へ導くように成果物を作成し、実証する ▪ 論理的・数学的に成り立つものであれば、実装できるべきである
  8. オブジェクトを支える • 仮説 -> 実証 の流れをアジャイル・スクラムで回していくが・・・ ◦ コーディングに入った途端にわからなくなる ◦ ゴールを見失う

    • 振る舞いはなんとか担保できても、内部構造が破綻してしまう ◦ 継続的な改善ができない ◦ そもそも後から理解できない
  9. 開発への落とし込み • オブジェクトを使う目的 ◦ 個人にしても組織にしても、社会に対して何を提供し恩恵を出すのかが源泉 ◦ 最終的には人が価値を判断する、そのレベルにオブジェクトのバランスが保たれるべき ▪ 関心事の分離、ドメイン、コンテキスト •

    オブジェクトを支える ◦ オブジェクトが期待される振る舞いを続けられる構造を保つ ◦ ゴールに沿った論理設計を行い、コードはそれを素直に表現できること ▪ ソフトウェアアーキテクチャや実装パターンが役立つ
  10. We’re Hiring ! • Engineer • Engineering Manager • Product

    Owner https://www.mediado.jp/mediado/recruit/