タグ

2023年7月6日のブックマーク (4件)

  • トランザクションを考慮した実装について考える

    はじめに アプリケーションレイヤーでトランザクションを考慮した実装をどのようにすればいいのか悩んでいる人が多いことに気がつきました。オニオンアーキテクチャ等でアプリケーションコードを関心ごとのレイヤーに分離するときに、トランザクションを開始するためのDBとのコネクションの作成をどのレイヤーで実施するのか悩んでいる人が多いそうです。 記事ではDDD+オニオンアーキテクチャ+Repositoryパターンを使う前提で、私がよく使うトランザクションを考慮した実装について説明しようと思います。 トランザクションを考慮した実装 私はトランザクションを開始するためのDBとのコネクションの作成はUsecase層で実施します。 私がよく書く実装ではDDDでいうEntityを定義します。そしてRepositoryではEntityのCRUDのみ行うように実装し、Repositoryをトランザクション境界にしま

    トランザクションを考慮した実装について考える
    mizdra
    mizdra 2023/07/06
    良さそう。ルールを厳密に守ろうとして上手くいかないパターンも挙げられててわかりやすい。逆にアーキテクチャのルールから逸脱してトランザクションをusecaseでやって破滅するケースがあるのか気になる。
  • CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか

    Secretlint v7でCommonJS からES Modulesへの移行を行いました。 Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し この記事では、CommonJS(CJS)からES Modules(ESM)への移行を行った経緯と、移行する方法について紹介します。 CJSからESMへの移行は、率直に言えば単調な作業で、メリットが見えにくい作業です。 しかし、将来的にCJSよりもESMが主流になることは間違いないので、移行することは必要です。 移行の作業は、移行方法が決まれば大部分は機械的な書き換えが可能です。 では、実際にどうやって移行したのかを紹介します。 ESMへの移行の影響は依存元へと連鎖する Secretlintのリポジトリはmonorepoになっていて、だいたい40コぐらいのパッケージが含まれています。 そしてパッケージ間で依存関係があ

    CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか
    mizdra
    mizdra 2023/07/06
    依存を丁寧に紐解いてやっていてすごい。境界線となるパッケージにはコストを掛けて Dual packages 対応することで依存を断ち切るのなるほどなー。
  • Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し

    機密情報をLintできるSecretlintのv7.0.0をリリースしました! Release v7.0.0 · secretlint/secretlint このバージョンでは、SecretlintをESMモジュールとして書き直しました。 どのように移行したかは別の記事で紹介しているので、移行方法について記事を参照してください CommonJSからES Modulesへの移行する方法。トップダウンかボトムアップか Secretlint v7.0.0の変更点 ルールと体のコードを含めて、全部のパッケージをESMに書き直しました。 その中で、いろいろ整理したりもしたので、変更点はいろいろあります。 ただし、secretlintコマンドや@secretlint/quick-start、Docker Imageとして使う場合は、そこまで目にみえる変化は少ないと思います。 詳細はリリースノートも参

    Secretlint v7.0.0をリリースしました。Pure ESMへの書き直し
    mizdra
    mizdra 2023/07/06
    node:test、レポートが素朴過ぎたりスナップショットテストが組み込みサポートされてなかったりで現代的なテスト体験には物足りなくて使ってないのだけど、たしかにライブラリに組み込む時には便利だなー
  • Prettier 3.0: Hello, ECMAScript Modules! · Prettier

    We are excited to announce the release of the new version of Prettier! We have made the migration to using ECMAScript Modules for all our source code. This change has significantly improved the development experience for the Prettier team. Please rest assured that when using Prettier as a library, you can still use it as CommonJS as well. This update comes with several breaking changes. One notabl

    Prettier 3.0: Hello, ECMAScript Modules! · Prettier
    mizdra
    mizdra 2023/07/06
    めでたい。色々改善入ってそう。