UseCase
UseCaseは、ビジネスロジックを記述するためのモジュールです。 UseCaseは一般的に、Entityを利用して、ビジネスロジックを実行して、結果を返したり、Repositoryを利用して、デー…
2026年の目標
あっという間に、2026年になりました。 去年1年間は、ブログやOSSなどの無駄なアウトはなるべく減らして、自分のためのアプリを作ったり、アーキテクチャの研究をしたり、デザインシステムを作ってみたり…
Entity
Entityとは、Idによって同一性を保証するクラスのことです。 なぜEntityが必要なのか? 一般的なアプリケーションでは、データが変化するということが頻繁に起こります。 たとえば、クラスであれ…
Repository
RepositoryとはEntityの永続化を隠蔽するためのモジュールです。 なぜRepositoryが必要なのか? Repositoryを使用することで、ビジネスロジックを記述する際に、どのDBを…
ビジネスロジック
ビジネスロジックとは、アプリケーションで扱う、そのサービスや業務が“どういうルールで動くか”を表した処理のことです。 ビジネスロジックを実現することが、アプリケーションの主な目的となります。 ビジネ…
いいね問題
いいね問題 モバイルアプリのようにユーザーとのインタラクションが多い場面で、ページ間での情報が一致しない問題がしばしば発生します。この現象は俗に「いいね問題」と呼ばれることもあります。 いいね問題と…
PageとView
UIを何らかの要素にモジュール分割したい場合に、よくPageとViewという概念を使います。 UIを書く際にどのような単位でモジュール化するかを予め決めておくと、〇〇Pageや〇〇Viewなどサフィ…
Result型
Dart言語には、例外とエラーという概念があります。これらはどちらもされる対象であり、プログラムを停止させることができるものですが、厳密には異なるものとされています。 例外は、するべき対象です。つま…
メタデータ
データは通常DBに格納するのが一般的です。しかし、データが大きくてデータの本体をDBに永続化してしまうと、パフォーマンスやコスト的によろしくないといった場合もあります。 その場合、データ本体はオブジ…
ドメインプリミティブ
ビジネスロジックを記述する際に、処理がコードの至る所に散らばってしまい、データや計算の整合性が取れなくなってしまうことがあります。 例えば、長さを扱うアプリケーションで単純に型で長さを扱った場合、メ…