タグ

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

  • LLMエージェントのデザインパターン、Agentic Design Patternsを理解する

    「Agentic Design Patterns」と呼ばれるLLMベースのAIエージェント(以下、LLMエージェント)の4つのデザインパターンについて紹介します。 まず、「Agenticワークフロー」について説明し、続いて4つのデザインパターンを説明します (Part5の前に公開してしまったので、後追いで更新予定です) 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を理解する
    yojik
    yojik 2024/04/15
  • エクセル読み込みをPOIからFastExcelに置き換えてパフォーマンスを改善する

    はじめに こんにちは!10 月から株式会社ログラスでエンジニアをやっています、Kyosuke です! ログラスでは、エクセルファイルをプログラムから操作する処理が一部存在しており、Apache POIというライブラリを使用しています。(以後POIと呼びます) しかし、POI には処理方式によってはメモリを多量に使用してしまうという問題があります。 今回はその対応として、まずエクセルファイルの読み込みをFastExcelというライブラリに置き換えた話を振り返っていきます。 TL;DR POIのXSSFWorkbookは、ファイルをメモリ内に読み込んで操作するため、大きなエクセルファイルを処理する際にファイルサイズ以上のメモリを必要とすることがある POI の公式ドキュメントより FastExcelは、POIより機能は劣る代わりに、読み書きともにパフォーマンスは大幅に上回る 書き込み Fast

    エクセル読み込みをPOIからFastExcelに置き換えてパフォーマンスを改善する
    yojik
    yojik 2023/12/17
  • 削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」

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

    削除のビジネスロジックをドメイン層に閉じ込める簡単で強力な「DeletableIDパターンの紹介」
    yojik
    yojik 2023/12/14
    前提となっているTodo::<メソッド> → Todoの次のstateという書き方が興味深い。これ自体もパターン名あるのかな。そうなると、deleteも同じ形にしてなんらかのStateを返すのは自然ではある。(メソッド名はちょい不自然)
  • 認可のベストプラクティスとDDDでの実装パターン

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

    認可のベストプラクティスとDDDでの実装パターン
    yojik
    yojik 2023/12/04
  • 1