2024年8月28日(水)
今朝は6:15起床。
そこそこ早く起きられたけど予定よりは遅い起床になってしまった。
脱砂糖、脱小麦粉
脱砂糖
帰省した際に頂いたお菓子を要所要所で食べているのであまり脱砂糖ができていない。
お菓子がなくなったら脱砂糖生活を再開するためにドライフルーツを食べてリハビリしようと思っている。
脱小麦粉
パンを若干は食べたが、それ以外は食べていないので脱小麦粉はそこそこできているように思う。
パンもなるべく控えて脱小麦粉の恩恵を感じられるようにしたいところ。
朝活
今日も朝活時間の確保のために自転車はお休み。
冷水シャワーを浴びてコーヒーを淹れる。
今日のコーヒーは無印良品のダークテイスト ドリップ。
但馬屋のコーヒーに慣れている影響か、ダークテイストと言えどもそこまでのダーク感は感じなかった。
但馬屋と比べるとやや苦めくらいの飲み味か。
今日もReactアンチパターンの洋書を読む。
最後の章に入っていて今までの復習がメイン。
アンチパターンとその解決策の再掲(加筆有り)
アンチパターン
- Props drilling
- propsを必要とする下層のコンポーネントにpropsを渡すため、propsを必要としない中間のコンポーネントを中継すること
- コードが複雑になり保守性が低下する
- In-component data transformation (Business leakage)
- UIコンポーネントに意図せずにロジックが露出すること
- コンポーネントの保守性と再利用性を低下させる
- Complicated logic in views
- UIコンポーネントが複雑なロジックを持つこと
- UIコンポーネントはシンプルさを保ち、データをレンダリングする機能だけを持つべき
- Lack of tests (at each level)
- ユニットテスト、インテグレーションテスト、E2Eテストの不足はバグや手戻りの原因となる
- リファクタリングや拡張性を低下させる
- Duplicated code
- 複数のコンポーネントに似たようなコードが存在している状態
- 保守性を低下させバグの原因となる
- Long component with too much responsibility (Long props list, big component)
- 広範囲のpropsを受け取ったり、多くのロジックを持つコンポーネントは再利用性や保守性が低下する
- このコンポーネントは単一責任の原則に反する
解決策
- Context APIを使用してデータや関数を共有する
- ユーティリティ関数かカスタムフックを使用してデータ処理を分離する、腐敗防止層を利用する
- 関心の分離:モジュールや関数は1つの役割を持つべき、ビジネスロジックとプレゼンテーション層は分離する、レイヤードアーキテクチャを適用する
- TDDを採用する
- DRY(don’t repeat yourself)の原則:ユーティリティ関数を使用するかHOCs(higher-order components)を使用する
- 単一責任の原則:コンポーネントは1つの機能を満たす
- 関心の分離の観点でコンポーネントを分割する
- 各コンポーネントは明確な1つの責任を持つべき
- カスタムフックの利用はコンポーネント内のコードをシンプルにするのに効果的
1時間半程お勉強して朝活終了。
昼食
今日も時間が無かったのでお昼寝は無し。
- 味噌汁
- ひきわり納豆
夕食
- シャインマスカット
- 鶏肉のチリトマト煮
- 秋刀魚の開きと春菊とモロヘイヤ
- 味噌汁
- 雑穀ごはんと海苔
- 糠漬けとアボカド
シャインマスカットは妻が職場でもらってきたもの。
山形に知り合いのいる同僚からもらったらしい。
大粒なのに皮が薄くて甘くて美味しかった!
明日も早起きと朝活がんばろう!
コメント