1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Next.js + サーバーサイドTypeScript + 関数フレーバーでクリーンなアプリを作ったので実装意図とか書く Advent Calendar 2022
3日目株式会社mofmofに生息しているshwldです。

前日はshwld is 誰。このアドベントカレンダーの技術レベルの前提について紹介しました。

実装方針

設計する上で優先度高めに設定しているのは以下です。
ただし、満たすものを作るというよりは願望です。

  • 新規プロジェクト開発時に初速が出ること
  • 中規模くらいまではスケールできること
  • 依存パッケージを増やさないこと

前日に書きましたが、作るものはPivotalTrackerです。
これを作るうえで、どこまで作るかを判断するポイントは以下です。

  • よくある処理の実装方法を知るために一つ以上実装する
    • 認証
    • ファイルアップロード(未実装ですが...)
    • 非同期処理
    • バックグラウンド処理
    • リアルタイム処理
    • メール送信
    • バッチ処理
    • ロギング(未対応ですが...)
  • MVPになっている
    • 最低限プロジェクト運用を回せる機能が揃っている

依存パッケージを増やさないこと

普段はRailsを書いていることが多いのですが、メジャーバージョンアップなどの対応は依存が多いほど大変です。
とはいえRailsはもはや枯れていて、大変なのはバージョンアップのタイミングくらいですが、JavaScript、Node.jsなどはそうではなく、ライブラリや周辺環境は目まぐるしく変わります。

そうなるとパッケージのバージョンアップの機会も自ずと多くなります。
この環境において依存パッケージを増やすのはリスクが大きいです。

  • 小さなパッケージは使わず極力自分で書くなどし、制御可能な状態を保つこと。
  • 依存はなるべく安定したものを選択する。
    これらを意識することが重要だと思います。

まだこのプロジェクトもNext.jsを13にアップデートできておらず、そこだけでも大変なのに、他の依存が増えたらアップデートだけで手が回らなくなります...

次回予告

明日はプロジェクトのアーキテクチャについて書きます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?