TypeScriptでコンパニオンオブジェクト

全然知らなかったけど存在していた。classを使うことに捉われ過ぎていて気づけていなかった。

typescriptbook.jp

import { Rectangle } from "./rectangle";
 
const rec: Rectangle = Rectangle.from(1, 3);

上記サイトのソースコードを一部貼り付けたけど、型名と同じ名前.関数で呼ぶというのやりたかった。これができなかったら、型とは別名のオブジェクトかclassを作る発想しかなかった。。。

ちなみに、もちろん同名のclassは定義できなかった。classで型定義をしている時は使う発想がなかったけど、最近はtypeで型定義をすることが増えてきたので必要になった。

これで型と振る舞いを同じ名前で整理できる。ZodとかPrismaで型を定義した場合にコンパニオンオブジェクトを多用していくんだろうな。

フロントエンドのディレクトリ構成の記事纏め

雑なタイトルの通り、今度ちゃんと見ようと思う記事を纏めただけ。

フロントエンドでVertical Slice Architectureに近いディレクトリ構成を探して見つけた記事。そのため、機能分割を重視してそうな記事だけ。

続きを読む

エンジニアの39ルール

エンジニアの39(さんきゅー)ルールを知っていますか?知らないですよね。

昔(と言っても結構最近)僕がプログラミングする時に拘るべき数字があって、それが3と7±2という話をしたら、その時の上司が39の法則と言い出したのが始まり。つまり、完全な造語です。そして、法則よりもルールのほうが適切だと判断して名付けた。

  • 39ルールとは
    • 3について
    • 9について
  • まとめ
続きを読む

輪読会の運用のアップデート

qiita.com

以前Qiitaにこんな記事を書いたが、タイトルのせいなのかView数が他の記事と比べて伸びていないのが悲しいところです。

今も輪読会を続けているのでその後の差分を書いていく。ちなみに、2021年の4月から始めて、Qiitaを書いたのが2021年の12月。現時点でもうすぐ2年になる。

続きを読む