むーすけのブログ

GitHub X(Twitter) Qiita Zenn
「2023年2月 第3週の振り返り」のサムネイル画像

2023年2月 第3週の振り返り

2023/02/20

2023/02/23

週報

今週はどんな週だったか

  • チャットアプリを作ってた
  • 記事を作った

今週やることの振り返り

できたこと

  • チャット機能の実装
  • 記事の作成

できなかったこと

  • 特に無し

チャット機能の実装

個人開発のNext.js x Firebaseでチャットアプリを作るプロジェクトをやっていて、今週は複数人でのチャット機能の実装をした。
特に学びだったのはメッセージのリアルタイム取得の部分で、過去のメッセージに関してはFirestoreのgetを利用し、最新メッセージに関してはonSnapshotで監視するようにしていたという点。
全てをonSnapshotで取得しないのはonSnapshotは呼び出し時に指定したコレクション内にあるドキュメントを全て読み込んでしまうためである。
以下の記事が理解する上で役に立った。
Firestoreでリアルタイムな無限スクロールを実現する
firestoreのonSnapshotを使う際に気を付けたいこと
また、別プロジェクトで無限ローディングの経験があったのでFirestoreではどのようにPaginationをさせるかなどの理解が速かった。
GraphQLでページネーションを実装する際はGraphQL Cursor Connections Specificationを参考にしよう!
メッセージ機能の無限ローディングとSubscriptionを設計する

記事の作成

今週は各ブログサービスの棲み分けというタイトルで記事を書いた。
振り返って学びになった点で言うと、振り返り記事で書いた内容をきちんと記事にすることで探しやすくなった。
と言うのもこれまで「ブログサービスの棲み分けについて書いた記事ってなんだっけ」ってなった時に、大量にある振り返り記事の中から探していたので効率が悪かった。
それを改めて1つの記事にすることで探しやすくなったり、そのテーマについてじっくり考えを巡らせることができたので良かった。

【今週のトピック】フロントの責務について

今週はフロントエンド(Next.js)とサーバーサイド(Perl)の両方を触る週だった。
期間限定キャンペーンの内容をAPI経由で取得してNext.jsで表示する部分を実装していて、ロジックをフロントとサーバーのどっちの責務かを考えていた。
ReactもあくまでUIライブラリということを念頭に、レンダリングで必要になる情報はなるべくPerl側で処理をさせるようにした。
結論として、フロントは取得したデータを描画するだけの責務を持つように、それ以外のロジックはサーバーサイドに任せるようにした。

来週は何をするか

上記のできたこと、できなかったこと、反省点を踏まえて来週は以下のことをやっていく。

  • やりたいことリストの棚卸し
  • チャットアプリのルーム別にチャットを管理できるよう設計

余裕があれば以下もやってみる。

  • ブログ1記事投稿

最後に

今週は新たに今週のトピックというセクションを設けて書いてみた。
これを書くことで具体的に学んだことを言語化しようとするので良い試みだった。
来週も続けてみよう。
今週もお疲れ自分!

© 2022, mu-suke