複雑なJavaScriptアプリケーションに立ち向かうためのアーキテクチャ accepted

Abstract

わたしは普段、ブラウザ上で動作する業務アプリケーションをJavaScriptで開発しています。このセッションでは、複雑化するwebアプリケーションに対して、どのようなアプローチで設計し、その複雑さに立ち向かっているのかについて発表します。

ブラウザ上で動作するある程度以上に複雑なアプリケーションを開発する際には、例えば以下のような問題が起こりがちです。

  • DOM操作やスタイル操作とロジックが密結合してしまい、DOM構造を変えたいときにJavaScriptのソースを読み解く羽目になる
  • APIコールなどの非同期な操作が、ソースコードの可読性を下げてしまう
  • 「バリデーションはどこに書けばいいんだ?」
  • 「APIから返ってきた値をそのまま表示するんじゃなくて、加工して表示したいんだけど、どこにそういうロジックを書けばいいんだろう?」

これらの問題に対して、万能の答えはおそらくありません。アプリケーションやフレームワークの性質によって、「どのような設計をするべきか」という答えは変わってくるでしょう。しかし、設計を考えるための指針は先人たちが教えてくれています。このセッションでは、設計するための考え方としてまず「プレゼンテーションとドメインの分離」と「レイヤードアーキテクチャ / クリーンアーキテクチャ」について触れる予定です。そして、それらの考え方を実際のアプリケーションの中でどのように適用して、どのようなコードが生まれていったのかを語りたいと思います。

具体的な発表内容は以下のようなものになる予定です。

概念の整理

  • プレゼンテーションとドメインの分離
  • レイヤードアーキテクチャ / クリーンアーキテクチャ

実際にどのようなコードを書いたのか

  • プレゼンテーション層に実際に書いたクラスとその責務
  • アプリケーション層に実際に書いたクラスとその責務
  • ドメイン層に実際に書いたクラスとその責務
  • インフラストラクチャ層に実際に書いたクラスとその責務

Video
Slides
Session Information
Confirmed confirmed
Material Level Intermediate
Starts On 8/4/17, 2:30 PM
Room Event Hall
Session Duration 60 min
Spoken Language Japanese
Interpretation Unavailable
Slide Language Japanese
Photo Release Allow
Recording Release Allow
Materials Release Allow