本日の作業
🚴 イベントストーミングとドメインイベントについて学習する
🚴 zennにまとめる
🚴 分報に関する設計・実装
🚴 Model・Repository実装
UseCase Hooksと結合実装
Domain EventとPrismaの実装
Feature-Sliced DesignとCompound Patternでのテストについて
Feature-Sliced Designにおいて、sharedやentitiesでcompound patternを使用する際にテストで要素指定しやすくしたり、dev toolsでソースを見やすくするために以下のようなルールを敷くようにした。
Entities
data属性で data-entity="entity-name" を追加するようにしました。
尚、entitiesもCompound Pattern想定なので子要素が存在する場合は、data-entity="parentname.childname" とします。こうする理由は、再利用性がentitiesはsharedに比べ少ないことと、子要素単体で呼ばれることがないことが理由。
それとfeaturesやwidgetsも data-featureやdata-widgetで名付けすればよいかと。またこれらはcompoundである必要はないものなので各コンポーネントの同ページ内で再利用されることはないと思います。
Shared
sharedはユースケースが2通りで、indexのみのcompoundとwrapperが親として存在するcompoundとあります。
というわけでdata-sharedではなく、data-{basename}とし、その値にcomponent名をあてるようにします。
例)iconボタンの場合
iconボタン = button.icon // buttonがbasename, iconがcomponent name
=> data-button="icon"
例)Formで使うラベルの場合
Formで使うラベル = form.label // formがbasename, labelがcomponent name
=> data-form="label"
こうすることでテスト時に要素を指定しやすくなる。
という感じでだいぶFeature-Sliced Designをmonorepo環境で構築するナレッジ溜まってきたのでどこかのタイミングで記事にまとめたい。
そのほか、メモ
イベントストーミングとドメインイベントについて学習する記事をまとめ中