ドメインモデル
やったこと
nowinandroidのコードリーディングを始めた。
まず初めに、プロジェクト構造を理解するためのmdファイルを作ってもらった。
次に、ジュニアエンジニアとしてどの部分から理解していけば良いかのmdファイルを作ってもらったところ、
core/modelに定義されているドメインモデルの部分から読み始めることにした。
ドメインモデル
「アプリが扱うビジネス上の概念・データ構造をコードで表現したもの」がドメインモデルの定義であるが、直感的に理解しにくい。 でも「このアプリは何を扱うのか」がドメインモデルは覚えやすいので、そう理解しておく。 実際にこのアプリは、ニュース記事アプリなので、ニュース記事をドメインモデルとして定義している。
以下は nowinandroid の core/model に定義されている NewsResource.kt のコードである(Apache License 2.0、Copyright 2022 The Android Open Source Project)。
data class NewsResource(
val id: String,
val title: String,
val content: String,
val url: String,
val headerImageUrl: String?,
val publishDate: Instant,
val type: String,
val topics: List<Topic>,
)
独り言
このような大規模なプロジェクトのコードを読んだことが今までなかったので、初めは多くのパッケージが存在しており、ビックリしたけど 今後のインターンなどで企業のプロダクトを触る時に、素早くコードベースを理解することが求められるので、その練習だと思ってやっていく。