タグ

ブックマーク / zenn.dev/loglass (12)

  • その先に進むためのモジュラーモノリス再入門

    この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint" の 60 週目の記事です!2年間連続達成まで 残り 46 週 となりました! 「モジュラーモノリス」はここ数年で広く普及してきました。実際にモジュラーモノリスを取り入れた開発事例を多く見かけるようになりました。当記事では改めてモジュラーモノリスの起源を遡り、また、さらにその先に進むためにどのような準備をしておくべきかを軽くまとめてみます。 モジュラーモノリスとは モジュラーモノリスの起源は 2018 年頃 「モジュラーモノリス」という言葉の正確な起源は把握していませんが、Simon Brown が GOTO Conference 2018 で行った講演がその起源の一つかもしれません。この講演は、モジュラーモノリスの概念をわかりやすく説明しており、その後、多くの企業がこれに注目するきっかけとなりま

    その先に進むためのモジュラーモノリス再入門
  • DDDで集約を跨いだ情報でロジックを構築するための「getter高階関数パターン」の紹介

    はじめに 今回はDDDで集約を跨いだ情報でロジックを構築するためのパターンについて紹介していきます。 DDD(ドメイン駆動設計)における「集約(Aggregate)」とは、関連するオブジェクト(エンティティや値オブジェクト)を一つにまとめた単位のことを指します。集約はドメインのビジネスロジックの適用や整合性を維持するために定義されます。永続化は集約単位で行われます。 例えばECサイトの注文という集約には、一つの注文に複数の注文明細があるとします。この注文と注文明細はそれぞれがエンティティであり、このとき集約は「複数の注文明細を持つ一つの注文」という単位で管理され永続化されます。一つの集約の中に二種類のエンティティがあるということです。 Amazonで注文した時に、化粧水を2個、洗顔料を1個まとめて買ったときの注文を一つの集約として取り扱っているイメージです。 class Order( va

    DDDで集約を跨いだ情報でロジックを構築するための「getter高階関数パターン」の紹介
  • オニオンアーキテクチャの威力:1ヶ月で実現したクエリエンジン移行舞台裏

    ログラスの龍島(@hryushm)です。最近は秋に備えて干し芋を作る練習をする日々を過ごしています。 ログラスではオニオンアーキテクチャを採用してしてDDDを実践しています。直近プロダクトのスケールによってデータのレポーティング、集計処理のパフォーマンス劣化の問題が顕在化、早急な対応を迫られる事態となっていました。その対応としてRDBMS(PostgreSQL)からDWH(BigQuery)へ一部のクエリを移行しました。オニオンアーキテクチャの恩恵で移行が比較的容易であり、実装自体は1ヶ月というスピードで終えることで顧客に素早く価値提供できたため、実例として記事にしたいと思います。 オニオンアーキテクチャと利点 オニオンアーキテクチャ自体の説明は多数の記事があるため省きますが、弊社松岡の記事が理解しやすいと思います。 記事中にあるレイヤードアーキテクチャと比較した時に肝となる、依存性逆転の

    オニオンアーキテクチャの威力:1ヶ月で実現したクエリエンジン移行舞台裏
  • ログラスのTerraform構成とリファクタリングツールの紹介

    この記事は毎週必ず記事がでるテックブログ "Loglass Tech Blog Sprint" の 47週目の記事です! 1年間連続達成まで 残り 6 週 となりました! はじめに ログラスのクラウド基盤でエンジニアをやっているゲイン🐰です。 ログラスではAWS上でアプリケーションを動かすためにIaCとしてTerraformを採用しています。 我々のTerraformの構成を紹介するとともに、現状の課題とリファクタリングの事例を共有できれば幸いです。 ログラスのTerraform構成 ざっくりログラスのアプリケーションにまつわるTerraform構成は以下のようになっています。 基的にはterraform/usecaseディレクトリ配下にmoduleとして定義されています。 中身は比較的にベタでリソースが書かれており、それらをterraform/envディレクトリの各ディレクトリ内で呼

    ログラスのTerraform構成とリファクタリングツールの紹介
  • LLMエージェントのデザインパターン、Agentic Design Patternsを理解する

    「Agentic Design Patterns」と呼ばれるLLMベースのAIエージェント(以下、LLMエージェント)の4つのデザインパターンについて紹介します。 まず、「Agenticワークフロー」について説明し、続いて4つのデザインパターンを説明します Agentic Design Patterns Part 1 Agentic Design Patterns Part 2, Reflection Agentic Design Patterns Part 3, Tool Use Agentic Design Patterns Part 4, Planning Agentic Design Patterns Part 5, Multi-Agent Collaboration 動画もあります。 LLMエージェントについての説明は省略しているため、エージェントについて初見の方は以下記事をお勧

    LLMエージェントのデザインパターン、Agentic Design Patternsを理解する
  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介

    この記事は 株式会社ログラス Productチーム Advent Calendar 2023 13日目の記事です。 はじめに 〇〇を削除できるかどうかのビジネス処理、皆さんはどう実装していますか? 同僚の話題になった記事でも削除の認可処理をどこに記述すべきか?は難しいと説明されています。今回はお題は認可っぽいもので書きますが広範に「削除ができるかどうか?」のビジネスロジックをドメイン層にどう閉じ込めるかの便利な実装パターンを紹介します。 削除処理のビジネスロジックの取り扱いは難しい 削除処理のビジネスロジックの実装はシンプルだけど更新処理や作成処理と比べて意外と難しいです。 それはなぜかというとドメインオブジェクト内の実装に削除処理を書くことができないからです。 例えば権限に管理者と一般ユーザーの二つの権限があるとします。

    削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターン」の紹介
  • 認可のベストプラクティスとDDDでの実装パターン

    最近、少々複雑な権限機能の開発を担当している中で、対応方針を悩んでいたことがありました。 権限機能というものは取り扱いが難しく、影響範囲が広いにも関わらず、対応漏れや考慮不足があると情報漏洩に繋がってしまいます。 また、機能拡張をしてく中でも対応漏れを起こさないようにする必要があるなど、考えることも多く頭を悩ませておりました。 そこで、認可処理の設計のベストプラクティスやDDDの実装パターンに認可処理を組み込む方法など、色々と調べていたのですが、その中でいくつか知見を得られたのでまとめようと思います! 権限と認可 権限と切っては切れない関係にあるのが認可です。 権限はある操作を実行できる権利を指します。 それに対して、認可は操作を実行する許可を出すため仕組みのことを指します。 例えば、ブログ投稿サービスで考えてみると、以下のような感じです。 権限: 投稿者はポストを編集できる。 認可: ユ

    認可のベストプラクティスとDDDでの実装パターン
  • アジャイル開発の「人的側面」の課題を解決する「システムコーチング」 

    はじめに アジャイル開発では、技術やビジネスといった側面だけでなく、開発を担う人々の「人的側面」への取り組みが欠かせません。この記事では、その「人的側面」を強化する効果的なアプローチとして、「システムコーチング®」を紹介します。 特に「アジャイル・フルーエンシーモデル(アジャイルのプラクティスを包括的にまとめるモデル)」とシステムコーチングとの相互補完性に焦点をあて、ログラスの事例を交えて具体的な効果を探ります。システムコーチングを導入することで、チームや組織にどのようなインパクトがあるのか、そのポイントをお伝えします。 アジャイル開発とは アジャイル開発は、顧客の要求に迅速に対応するためのソフトウェア開発手法の総称です。短期間のイテレーションを通じて、開発チームは頻繁に製品のリリースを行い、顧客のフィードバックをすばやく取り入れることができます。 このアプローチはその柔軟性と迅速性により

    アジャイル開発の「人的側面」の課題を解決する「システムコーチング」 
  • アジャイル・フルーエンシーモデルでアジャイルに技術的負債対策を組み込む

    🐳この記事は「ログラスサマーアドベントカレンダー2023」の28日目の記事です。 次はデザイナーチームの高瀬さんです。 こんにちは、ログラスの松岡です。 ログラスのプロダクトチームでは、ドメイン駆動設計とアジャイルプラクティス(スクラム、エクストリームプログラミング等)を併用していました。 その中で、「アジャイル・フルーエンシーモデル」(以下、省略時には「フルーエンシーモデル」と表記)という概念が多くのプラクティスを取りまとめ、全体感を把握してチームの成長余地を考えるのに役立つものなので、この記事で紹介したいと思います。 アジャイル・フルーエンシーモデルの面白いポイント 面白いポイントはいくつもあるのですが、この記事で紹介するポイントは二つあります。 ポイント①: 技術的負債への対策が組み込まれている 一つは、「技術的卓越性によってアジャイルの持続可能性(サステナビリティ)を高めるという

    アジャイル・フルーエンシーモデルでアジャイルに技術的負債対策を組み込む
  • 心穏やかにDBバージョンアップ!ロジカルレプリケーションで安全にバージョンを切り戻せるようにした話

    はじめに みなさん、DBをバージョンアップして酷い目にあったことありますよね? 先日ログラスの番データベースのバージョンアップをしたのですが、Site Reliability Engineeringの観点で非常に良いトライが出来たので共有します。 PostgreSQLのロジカルレプリケーションを使って、データを最新に保った新旧のインスタンスを用意した。結果的に安心安全にバージョンアップ作業ができました。 データベースのバージョンアップはサービス運用やっていくと絶対にやらないといけない作業ですが、影響範囲は甚大です。この記事では工夫することで、何か問題が起こってもすぐに切り戻すことが出来るという話をします。 このメンテを通じて、ログラスで利用していたAurora PostgreSQLをエンジンバージョン11.19(PG11)から15.2(PG15)にバージョンアップしました。 バージョンア

    心穏やかにDBバージョンアップ!ロジカルレプリケーションで安全にバージョンを切り戻せるようにした話
  • 2023年にVisual Regression Testingを始めるならどんな選択肢があるか

    はじめに フロントエンドのテスト手法の 1 つに Visual Regression Testing(以下、VRT)があります。 これは、アプリケーションの画面を画像として保存し、画像の差分比較をすることで意図せぬ変更が生じていないかテストする方法です。 ここ数年で広く普及し、用語としても一般的になったように思います。 私も以前、とある OSS に reg-suit & Storycap を使った VRT を導入したことがあるのですが、その後もいくつか VRT のためのライブラリが登場したもののキャッチアップできていませんでした。 そこで今回は知識のアップデートを目的として、ここ最近登場した(と思われる)VRT のライブラリをいくつかご紹介します。 なお、今回紹介するツールはすべてこちらのリポジトリで試しています。 具体的な設定ファイルや動作結果を確認できるようになっていますので、ご興味が

    2023年にVisual Regression Testingを始めるならどんな選択肢があるか
  • スクラムチームの成果を最大化させた7つの改善 ~ 新米リーダーの挑戦 ~

    ログラスエンジニアの村です。 この記事では、ログラスのスクラムチームで取り組んだ改善事例をご紹介しようと思います。 改善事例を紹介しようと思ったキッカケは、2022年8月から私の所属チームのチームリーダーがEMに昇格し、私がチームリーダーになったことです。 チームリーダーになったことで、これまであまり意識してこなかったチームの成果を最大化する方法を考える機会が生まれました。 そして様々な改善アプローチをスピード感を持って試すことで、効果を実感できた改善もいくつか生まれ、チームがどんどん良くなっていくという素晴らしい経験ができました。 この記事では、効果を実感できた改善の中で特に印象的だった7つをご紹介しようと思います。 この記事を通して、スクラムをやりたいと考えている方や、スクラム開発をやっていて課題感を感じている方、ログラスに少しでもご興味がある方のご参考になれば幸いです。 2022

    スクラムチームの成果を最大化させた7つの改善 ~ 新米リーダーの挑戦 ~
  • 1