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

WEBフロントエンドにおけるソフトウェア設計の考察

philomagi
February 09, 2020

 WEBフロントエンドにおけるソフトウェア設計の考察

philomagi

February 09, 2020
Tweet

More Decks by philomagi

Other Decks in Technology

Transcript

  1. Atomic Designと「設計」 31 • Atomic Design はUIパーツの設計方法論 ◦ ソフトウェアの設計までカバーするものでは ない

    ◦ Atomic Design のスコープは「UIパーツをど う組み立てるか」まで ◦ Atomic Design で「設計」は完結しない
  2. 60 横道)フロントエンドと「ロジック」 • ここで言う「ロジック」とは何か? • 「ロジック」=ビジネスルール・業務ルールとは限らない ◦ 「ロジック」といえばビジネスルール・業務ルールというのは、主にバックエンドというコンテクスト における表現 ◦

    この意味での「ロジック」ならば、フロントエンドには無い(むしろ、有ってはいけない) • フロントエンドにおける「ロジック」は、表示と操作のルール ◦ そもそもフロントエンドとバックエンドでコンテクストが異なるのだから、「ロジック」が同じ意味で あるという保証は無い ◦ むしろ、それぞれ関心事が違うのだから、扱う「ロジック」は異なって当然
  3. 84

  4. 86

  5. 87

  6. • ドメインは避けられない ◦ ドメインを分析し理解することは、サーバーサイドだけの仕事ではな い ◦ ドメインの分析・理解は、フロントにおいても重要な仕事 • 「設計」も避けられない ◦

    「表示するだけ」では最早済まない。画面の奥に潜むロジックを飼い 慣らす術を身に着けよう 「フロントエンド」に立ち向おう 101
  7. 参考資料(敬称略) 102 • エリック・エヴァンスのドメイン駆動設計 ◦ Eric Evans(著)今関 剛(監訳)和智 右桂、牧野祐子(訳) •

    Clean Architecture 達人に学ぶソフトウェアの構造と設計 ◦ Robert C. Martin(著)角 征典、高木 正弘(訳) • 未来を作った人々 - ゼロックス・パロアルト研究所とコンピュータエイジの黎明 ◦ Michael Hiltzik(著)エ・ビスコム・テック・ラボ(監訳)鴨沢眞夫(訳) • オブジェクト指向のハードコア ◦ https://www.zerobase.jp/salon/2019/05/25/hardcore-oo.html ◦ (2) 哲学 ◦ (3) Smalltalk by @sumim ◦ (8) GUI by 上野学(@manabuueno) • クライアントアプリの「中心」とは何か ◦ by @takasek ◦ https://speakerdeck.com/takasek/20200121-the-center-of-the-client-number-ios-ca
  8. 参考資料(敬称略) 103 • 複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ ◦ by しんぺい(@shinpei0213) ◦ https://speakerdeck.com/shinpeim/fu-za-najavascriptapurikesiyonnili-tixiang-kautamefalseakit ekutiya

    ◦ http://techblog.reraku.co.jp/entry/2017/08/08/184313 • Almin.js | JavaScriptアーキテクチャ ◦ by azu(@azu_re) ◦ https://azu.github.io/slide/2016/child_process_sushi/almin-javascript-architecture.html • CQRS+ES(再)入門 ◦ by かとじゅん(@j5ik2o) ◦ https://speakerdeck.com/j5ik2o/cqrs-plus-es-zai-ru-men • Facebook の決断:MVCはスケールしない。ならば Flux だ。 ◦ https://www.infoq.com/jp/news/2014/05/facebook-mvc-flux/ • Vue.js + デザインパターンによるコンポーネント実装 ◦ by @philomagi ◦ https://speakerdeck.com/tooppoo/vue-dot-js-dezainpatan-niyorukonponentoshi-zhuang-v2 ◦ https://github.com/tooppoo/sample-for-vue-with-design-patterns