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

このプロポーザルはまだ採択されていません。もしこのセッションをカンファレンスで見たいと感じた場合は、ぜひソーシャルメディア等でシェアしてください。プロポーザル採択の審査には、SNSでのシェア数も考慮に入れられます。

概要

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

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

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

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

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

  • 概念の整理
  • プレゼンテーションとドメインの分離
  • レイヤードアーキテクチャ / クリーンアーキテクチャ
  • 実際にどのようなコードを書いたのか
  • プレゼンテーション層に実際に書いたクラスとその責務
  • アプリケーション層に実際に書いたクラスとその責務
  • ドメイン層に実際に書いたクラスとその責務
  • インフラストラクチャ層に実際に書いたクラスとその責務

情報
レベル 中級者
開始日時 N/A
部屋
セッション時間 60分
講演に使用される言語 日本語
スライド言語 日本語
撮影許可 許可
録画許可 許可
素材利用許可 許可