ぷらすのブログ

Category 設計

バックエンドエンジニアがNext.jsのApp Directoryに夢を見る

こんにちは、@p1assです。

最近、Next.js 13 から beta で導入されている App Directory を趣味で触っているのですが、今まで SPA を採用しづらかった事業領域でも React のエコシステムを使えるようになりそうな予感がして、ワクワクしています。

このブログでは、今までどういった課題があり、Next.js の App Directory がそれをどのように解決するのかを紹介します。 なお、内容はあくまで考察であり、実際に運用をしているわけでない点に注意してください。 これは「夢」なのです。

続きを読む

大規模システムにおけるディレクトリ構成をRDBのカーディナリティを参考に考える

モノリシックなプロジェクトにおいて、トップレベルのディレクトリ構成が異なる 2 つのディレクトリ構成を考え、それらの違いは何で、どちらが優れているか?という問いについて考えた。そして、「複雑な概念をトップレベルのディレクトリ構成にした方が良いのでは?」という結論に落ち着いた話をする。

続きを読む

EnumやUnionの列挙子が増えたときに起こりうる人為的なバグを撲滅したい

こんにちは、@p1ass です。

Enum や Union 型は、取りうる値を列挙する上で非常に便利な構文です。 曜日のようなものを全列挙したり、エラーコードのように本来 string 型として無限の集合だったものを有限の列挙としてアプリケーション側で扱ったりと、様々な用途で使われます。

これらの型は if や switch などの条件分岐やパターンマッチングと共に使われることが多いです。 しかし、これらの処理は列挙子を増えたときに意図しないバグを埋め込んでしまうことも多いです。 そこでこの記事では、Enum と switch を組み合わせたときに人為的に起こしうるバグを紹介しつつ、できるだけ静的にバグを発見するための方法を考えていきます。

先に話をまとめると、この記事に書いてあることは、

  • default はできるだけ使わないようにする
  • switch 式や match 式があるプログラミング言語は羨ましい
  • 上記の構文がない言語では静的解析に頼ろう

になります。

サンプルコードは TypeScript と Rust で書いていますが、これらの言語特有の話をしたいのではなく、一例として挙げています。

続きを読む

NODE_ENVにdevelopmentとproduction以外を入れると辛い

結構前に Node における NODE_ENV と環境変数の設定方法について Slack で軽く議論したんだけど、その後色々と考えるものがあったのでここにまとめておく。

基本的にサーバサイドを前提とした話をするが、フロントエンドにも通じる話だと思うし、Next.js の話も出てくる。

続きを読む
1