A talk at Kubernetes Novice Tokyo #10
A talk at Kubernetes Novice Tokyo #10
吉川@広島です。 TypeScriptのDIコンテナライブラリはInversifyJSとTSyringeが有名ですが、より機能がミニマムと思われる後者に興味が出たため使ってみました。 https://github.com/microsoft/tsyringe 一番メジャーなInversifyに比べるとTSyringeはやや情報が少ないのと、公式のREADMEもかなりあっさりとしていて使い始める際に戸惑いやすいと思いました。 本記事では、 基本的な使い方 コンテナに登録したクラスのインスタンスをいつ生成しているか を確認したので紹介します。 後者が気になった理由は、DIコンテナへの登録は遅延評価方式に寄せた方がアプリケーション起動時のパフォーマンスに有利に働きやすいと考えるためです。 環境 TSyringe v4.4.0 使い方 import 'reflect-metadata' impor
#Jest v27 / ts-jest v27 https://jestjs.io/ja/docs/next/ecmascript-modules Node.js の --experimental-vm-modules オプションが必要 ESMとして扱いたいファイルの拡張子を extensionsToTreatAsEsm で宣言する必要あり JestがESMをサポートしている状態では内部的に supportsStaticESM フラグがtrueになる このフラグを明示的に外から指定はできない。総合的判断される ts-jestに渡したtsconfigのmodule設定はリスペクトされていない https://github.com/kulshekhar/ts-jest/blob/a4b88ca076e1e2a367e01341b8bd0e21033ec422/src/compiler/ts-c
色々な原則や方法論はあれど、つまるところいかに変更容易性を確保するかと言う話に帰結するのでは。極論すれは、正しく動いていて変更する必要が無ければどのような作りになっていても構わない。一方、Web アプリケーションを稼働し続ける上で全く変更しなくて良いということもない。— Masashi Shinbara (@shin1x1) 2021年5月30日 ソフトウェア設計、開発には多くの原則や方法論がある。例えば、DRY 原則や SOLID 原則、デザインパターンにレイヤードアーキテクチャ、クリーンアーキテクチャなどある。さらに DDD にも多くの原則や方法論が含まれている。これらを変更容易性を高めるための手段として原則や方法論を捉えるというのが本エントリの論旨である。 原則や方法論の捉え方 変更容易性 本質的な変更と副次的な変更 外部変更容易性と内部変更容易性 原則を適用する指針 さいごに 原則
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く