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

This session has NOT been accepted yet. If you would like to see it in the conference, please post it in social networks, as those numbers will be tallied and used as part of the selection criteria

Abstract

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

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

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

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

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

概念の整理

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

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

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

Session Information
Material Level Beginner
Starts On N/A
Room
Session Duration 60 min
Spoken Language Japanese
Slide Language Japanese
Photo Release Allow
Recording Release Allow
Materials Release Allow