並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 324件

新着順 人気順

ビジネスロジックの検索結果241 - 280 件 / 324件

  • アプリケーションアーキテクチャ理解に必要な“3層構造” プレゼンテーション層・ビジネスロジック層・データアクセス層それぞれの役割

    今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。続いて、3層アーキテクチャそれぞれの役割について紹介します。前回はこちらから。 本セッションにおける「3層アーキテクチャ」の定義 大嶋勇樹氏:ということで、ここまでで「そもそもアプリケーションアーキテクチャとは何でしょう」という話をしました。ここからが本題的なところで、まず最も基本、最も基本というのは僕の意見ですが、3層アーキテクチャについて話していこうと思います。なにか気になる点があれば、Q&Aに気軽に(質問して)もらえればそちらも回答します。 では、3層アーキテクチャについてに入っていこうと思います。3層アーキテクチャと言われた時に想像するものは、少なくとも私の場合は2つあります。 (

      アプリケーションアーキテクチャ理解に必要な“3層構造” プレゼンテーション層・ビジネスロジック層・データアクセス層それぞれの役割
    • React Nativeをやめる話とKotlin Multiplatform | Wantedly Engineer Blog

      Wantedlyのモバイルエンジニアの久保出です。今回は、Wantedly VisitアプリにおいてReact Nativeをやめる決断をしたこと、関連してKotlin Multiplatformを導入しようとしていることについて書かせていただきます。 なぜReact Nativeが導入されていたかVisitのiOSアプリは2018年にフルリニューアルしました。リニューアルプロジェクトはモバイルエンジニアを総動員して半年近くかけてリリースしました。 リニューアルでは、色々なコンテンツを見つけられるDiscoverという新機能追加も予定しており、Discoverの実験もリニューアルと並列して行うことになりました。モバイルエンジニアはリニューアルに集中していたため、Webエンジニアのリソースが使えるReact NativeがDiscoverの実装手段に選ばれました。Discoverは、リニュー

        React Nativeをやめる話とKotlin Multiplatform | Wantedly Engineer Blog
      • 【Team & Project】OpenStackとKubernetesを用いたVerda Platformを開発しているチームを紹介します

        LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog LINEの開発組織のそれぞれの部門やプロジェクトについて、その役割や体制、技術スタック、今後の課題やロードマップなどを具体的に紹介していく「Team & Project」シリーズを開始します。 第一回目である今回は、インフラ領域を統括するITサービスセンターでPrivate Cloud「Verda」を企画・開発・運用するVerda室において、OpenStackとKubernetesを用いたVerda Platformを開発しているVerda Platform開発チームを紹介します。 Verda Platform開発チームのzoom会議の様子 Verdaは、LINEの共通インフラ基盤であるプライベートクラウドです。LINEでは、

          【Team & Project】OpenStackとKubernetesを用いたVerda Platformを開発しているチームを紹介します
        • サーバーレスアーキテクチャを採用する際のコストに対する重要な考え方 | ブログ | Serverless Operations

          >_cd /blog/id_213 development technology#AWS BillingDate2020-10-12Time00:00:00 JST サーバーレスアーキテクチャを採用する理由として、コスト削減が挙げられるケースをしばしば耳にします。しかし本当にコストは常に削減されるのでしょうか? EC2に対するAWS Lambdaのコストのメリットを説明するために、以下のような図が用いられるケースがあります。 サーバーが起動していた時間に対して課金されるEC2に対して、AWS Lambdaはプログラムが実行された時間に対して課金されるため、最終的にはコストが最適化されることをこの図では説明しています。では、実際にどんな場合にでもコストは最適化・削減されているのかを見ていきましょう。 LambdaとEC2のコストを比較するトラフィックが少ないワークロードの場合月間2万リクエス

            サーバーレスアーキテクチャを採用する際のコストに対する重要な考え方 | ブログ | Serverless Operations
          • ほぼすべての機械学習プロジェクトのためのタスクチートシート | AI専門ニュースメディア AINOW

            著者のHarshit Tyagi氏は、インドでデータサイエンスに関するインストラクターをしています。同氏がMediumに投稿した記事『ほぼすべての機械学習プロジェクトのためのタスクチートシート』では、機械学習モデルを構築するにあたって必要なタスクがリストアップされています。 学習データの取得やAIモデルの訓練といった固有なタスクを含む機械学習モデルの構築には、様々なタスクを実行する必要があります。こうしたタスクを、同氏は以下のような8つにステップに分けてチェックリスト化しました(具体的なチェック項目については、本記事本文を参照)。 問題の定義と開発アプローチの検討 データソースの特定とデータの取得 学習データの特徴に関する分析 学習データの変換やクリーニング ベースラインモデルの開発とベストモデルの探索 ファインチューニングとアンサンブル学習の検討 開発資料の文書化とプレゼン資料の作成 機

              ほぼすべての機械学習プロジェクトのためのタスクチートシート | AI専門ニュースメディア AINOW
            • デザインシステムに準拠したコンポーネント駆動UI開発への取り組み

              こんにちは、THECOO株式会社のpoteboyと申します。普段は現職1人目のWEBフロントエンド開発者としてFaniconというファンコミュニティサービスの開発を行っております。 弊社では私が入社する以前までフロントエンド専任の開発者がおらず、サーバーサイドの開発者やAndroidの開発者がフロントエンドの開発業務を兼務していました。 専任がいなかったのは、Faniconが元々ネイティブベースのアプリで、WEBアプリの開発優先度を下げていたためです。 そのため、フロントエンドの開発環境に関しても万全とは言えず、2022年6月に私が入社し、9月には2人目のフロントエンド開発者となるTomoya氏が入社したタイミングで、2人で協力してFaniconフロントエンドの大改修を行なうこととなりました。 フロントエンド改修業務にはTypeScriptの導入、既存コンポーネントのVue3化、単体テスト

                デザインシステムに準拠したコンポーネント駆動UI開発への取り組み
              • 再考 - ドメインサービス  - まっちゅーのチラ裏

                自分が大規模システムで組むアーキテクチャは基本的にはCleanArchitectureを踏襲しているが、その中の構成要素であるドメインサービスだけは少し独自(?)の解釈をしていて、書籍などでよく見る ビジネスロジックを持つが、状態をもたない 複数の集約にまたがる処理を書く場所 という責務の他に、外部システムへの委譲処理だったり、共通UseCaseのような責務も持たせている。 これは、自分が「xxService」という命名にトラウマがあり(何でも置き場になりがち)、単なるServiceだとコントローラやらプレゼンターやら、どこから呼ばれても違和感がない様に見えてしまうから、とりあえずDomeinServiceへ寄せている経緯がある。 ※ここで語るのは、あくまで大規模想定で、小さいシステムならこんな事を意識する必要はないはず。 ※あくまで自分の考えで、一般的ではない可能性があることをご了承くだ

                  再考 - ドメインサービス  - まっちゅーのチラ裏
                • “1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと

                  今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。まずは本セッションの内容について説明します。 大嶋氏の自己紹介 大嶋勇樹氏:では、「改めて整理するアプリケーション設計の基本」ということでお話しします。(スライドを示して)最初に私の自己紹介ですが、名前は大嶋勇樹と申します。最近はよく“しまさん”とか“しまちゃん”とか、そんなふうに呼ばれることが多いです。 キャリアは新卒で都内のあるIT企業に入って、その後フリーランスエンジニアとして独立して、今は会社を設立していろいろしています。今は実務に就き始めぐらいのエンジニアの方のスキルアップのサポートで、研修や勉強会、あと最近は「Udemy」講座をいくつか作ったりしています。 今日の発表に関連する

                    “1つの独立して動く要素”の内部を整理し直す 「改めて整理するアプリケーション設計の基本」で伝えたいこと
                  • ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG

                    はじめに こんにちは、技術本部SRE部カート決済SREブロックの遠藤・金田です。 普段はSREとしてZOZOTOWNのカート決済機能のリプレイスや運用を担当しています。本記事では自作のコマンドラインツールをSlack + AWS Chatbot + AWS Lambdaを使用してChatOps化した事例をご紹介します。「日々の運用業務をコマンドラインツールを実装して効率化したものの今ひとつ広まらない」「非エンジニアにも使えるようにしたい」と考えている方の参考になれば幸いです。 目次 はじめに 目次 背景・課題 ChatOpsとは AWS ChatBotとは 構成 AWS ChatBot チャットツール側の設定 Slack Workflow Lambda 実装のポイント ChatBotのアクセス制御 User Roleの運用方法 ガードレールポリシー コマンドラインツールのLambda関数化

                      ChatOpsによる運用作業の自動化 - ZOZO TECH BLOG
                    • DDDにおける認証の実装場所

                      こんにちは。株式会社プラハCEOの松原です。 DDDに基づいて開発しているアプリケーションの「認証」ってどこで実装するのが良いのだろう? 対象読者 何となくDDDに関する本を読んで理解した気がする 試しにDDDに基づいてアプリケーションを実装し始めた 認証の実装をどこに書くべきかわからず詰まった 結論(オニオンアーキテクチャの場合) 実装はUI層かInfrastructure層 自分ならInfrastructure層 認証後のインターフェースはアプリケーション層 コンテキストは1つにまとめている前提(認証コンテキストを作らない場合の置き場所) UI層って何やねん DDDとの相性の良さからよく併用されるオニオンアーキテクチャの図を見ると、以下3つの層が一番外側に位置しています: UI(User Interface) Infrastructure Tests (図はこちらから引用) UIと言え

                        DDDにおける認証の実装場所
                      • TypeScript・モジュラーモノリスによる型安全なWebサービス開発

                        こんにちは。SALESCORE株式会社CTOの成澤です。 祝・Publication機能のオープンβリリース🎉🎉 ということで、SALESCOREのテックブログを発信し始めます! テックブログの一発目ということで、2022年で一番開発体験が変わったTurborepoによるモノレポ・モジュラーモノリスによる開発について紹介します。 今後もTypeScriptでのWebサービス開発について記事を出していく予定なので、気になる話題などあればコメントいただけるととても嬉しいです🙋‍♀️ モジュラーモノリスという選択肢 ソフトウェア開発における重要な要素の1つは抽象化です。 抽象化をあえて噛み砕いて、平坦な言葉で言うならば 「適切なグルーピング」 と呼んでも良いでしょう。抽象化とは、ものごとをグルーピングして、適切な名前を与えることです。 100行の処理の羅列は分かりづらいが、10行ずつグルー

                          TypeScript・モジュラーモノリスによる型安全なWebサービス開発
                        • 年収が1000万円以上のエンジニアの求人をまとめてみた - Qiita

                          近年優秀なエンジニアに対して報酬を多く支払う企業が増えてきています。 実際アメリがのAmazonも大幅な賃上げを行い、話題となりました。 日本国内でもエンジニアの年収が高い企業を知りたい!と思っている エンジニアの皆様お待たせいたしました。 年収1000万以上の求人をまとめてみましたので、参考までにご覧ください。 フリービット株式会社 【募集ポジション/年収】 エンジニアリングマネージャー候補:1000万円〜1500万円 【求める人材】 当社の Vision に共感いただき、プロダクトの継続的な成長を支える開発体制を実現するため、エンジニア組織の強化を担っていただける方を募集しています。 組織づくりや人員のマネジメントなどの組織拡大を一緒に担っていただける方を探しています。 【具体的な業務内容】 ・エンジニア組織としての課題発見・解決、及び成長戦略の立案・実行 ・開発チームの体制構築と、そ

                            年収が1000万円以上のエンジニアの求人をまとめてみた - Qiita
                          • WebAssemblyに注目 | POSTD

                            WebAssemblyは今、転換点にあります。今後数年間で、コンテナ化からプラグインシステムやサーバレス・コンピューティング・プラットフォームに至るまで、IT業界全体でWebAssemblyの導入が増えると筆者は予想しています。この記事では、WebAssemblyとは何か、なぜそれが重要なテクノロジーであるのか、現在はどのような分野で利用されているかを説明します。また、WebAssemblyが大きな影響をもたらす可能性がある用途や、WebAssemblyの将来に関する予測も紹介します。 WebAssemblyとは何か WebAssembly(Wasm)とは、さまざまなプログラミング言語と多様な実行環境の間に位置する中間層です。30以上の異なるプログラミング言語で書かれたコードを.wasmファイルにコンパイルし、そのファイルをブラウザ、サーバ、あるいは自動車でも実行できます。 「WebAss

                              WebAssemblyに注目 | POSTD
                            • Tests as Documentation - たにしきんぐダム

                              production code の設計についてはよく議論される一方、ユニットテストをどう書くべきかについてはあまり議論されることが少なく。とにかくカバレッジが高ければヨシみたいな感じで軽く扱われていることが多い気がする。 その結果、テストを書くときやとりわけテストを追加するときに "良くない" 方法でテストを追加/拡張してしまい、メンテナンスしにくく壊れやすい・(未来の自分でも)読んでも何を検証しているのか分からない、テストが落ちても不安だけを煽り何が問題なのか分からない、技術的負債が誕生してしまう。 詳しいことは本 ( XUnit Test Patterns など? 詳しい人は僕に紹介してください)を読んだりチームメンバーと議論するのが良いと思うが、この記事を読んでテストの書き方に対する意識を啓発できたらなと思っている。 理想を述べるのは簡単だけど現実は大変、頑張ろう introduct

                                Tests as Documentation - たにしきんぐダム
                              • マイクロサービスのその先へ。マネーフォワードのビジネスを加速するマイクロフロントエンドという選択

                                この記事は、マネフォアドベントカレンダー2022 14日目の投稿です。 13日目は 廣瀬 さんで「チーム運営の仮説検証サイクルを高速化させるために、新卒スクラムマスターが取り組んだこと」でした。 本日は 岐阜在住で名古屋開発拠点のsainu が「マネーフォワードで実践したマイクロフロントエンド」について書きたいと思います。 はじめに マイクロフロントエンドは、2022年10月にBuilding Micro-Frontends(Luca Mezzalira 著)の翻訳版がオライリーから出版されて少し話題になってました。ThroughWorks Technology Radarには2016年から登場して、2019年にAdoptになっています。 私は今年の年初にマイクロフロントエンドという言葉を初めて知りました。今年、名古屋拠点で開発しているマネーフォワードクラウドの業務基盤システムでマイクロフ

                                  マイクロサービスのその先へ。マネーフォワードのビジネスを加速するマイクロフロントエンドという選択
                                • メルカリのデータ分析を支える機械学習システムのデザインパターン

                                  データ分析基盤の構築について共有するTECH PLAY主催のイベント「データ分析基盤Developers Night〜」。第4回となる今回は、「活用されるデータ基盤」がテーマです。メルカリでの機械学習を用いたデータ分析基盤の活用について、澁井雄介氏が登壇し知見を共有しました。 ※新型コロナウイルス対策のためオンライン開催に変更されています。 機械学習とシステムデザイン 澁井雄介 氏(以下、澁井):メルカリの澁井と申します。今日は「機械学習とシステムデザイン」というテーマで話させてください。 先ほどマクロミルさんがデータ分析基盤の話をされましたが、私はデータ分析基盤の出口のほうでやっている機械学習とそれによるサービスの改善をやっています。出口のほうでどういった仕組みを作っているのか、メルカリの事例から共有できることをお話したいと思っています。 まずは自己紹介をさせてください。澁井と申します。

                                    メルカリのデータ分析を支える機械学習システムのデザインパターン
                                  • Testcontainersを用いてテスト実行前の docker compose up を無くし、Goで並列テストする | フューチャー技術ブログ

                                    Testcontainersを用いてテスト実行前の docker compose up を無くし、Goで並列テストする 春の入門祭り2024の1記事目です。 はじめにTIG真野です。 Testcontainers を用いて、単体テスト実行前に docker compose up -d 無しで、PostgreSQLにアクセスする単体テストを行う、入門記事です。 恩恵は次のような開発者体感の向上が個人的にあります。 テストを実行するうえで、別プロセスのサービスを起動しておく必要があるといった前提条件を考えなくても済むため、テストを行うビジネスロジックに集中できる docker compose up -d 打たないだけだが、テストに必要なコンテナを考慮しなくても済む 停止し忘れて、別のリポジトリの開発するときに混乱しなくても済む 並列テストしやすくなるので、テストの実行速度が向上する Goにおい

                                      Testcontainersを用いてテスト実行前の docker compose up を無くし、Goで並列テストする | フューチャー技術ブログ
                                    • プログラミングの方法論から考えるユニットテスト - Qiita

                                      はじめに 昨今、テストピラミッドなどの側面からユニットテストの重要性が説かれていますが、クラス間が密に結合している等で適切なユニットテストを書くのが難しいという状況に陥ることは多いのではないでしょうか。そのような状況は、ユニットテストの解像度が低いために生まれると自分は考えます。 本記事では、防御的プログラミングと契約プログラミングという二種類のプログラミングの方法論を元にユニットテストを再考し、ユニットテストの解像度を高めることを目標とします。また、ユニットテストのより良い書き方を模索している人に本記事を読んでいただきたいです。 防御的プログラミングと契約プログラミングとは 防御的プログラミングと契約プログラミングとは次のようなプログラミングの方法論のことを指します。この二つの方法論については、こちらの記事にわかりやすくまとめられているので、ぜひ参考にしてください。 防御的プログラミング

                                        プログラミングの方法論から考えるユニットテスト - Qiita
                                      • ドメイン駆動設計入門【DDDをわかりやすく解説】 | 楽水

                                        突然ですが、エンジニアの皆さま、Javaで開発したWebアプリケーションの構成、このようになっていませんか? データとgetter/setterだけのオブジェクト(JavaBean) 画面のコントロールやビジネスロジックの処理はServletが行う データベースのアクセスは、DAO(Data Access Object)に任せる もしそうであれば、そのシステム、ドメインモデル貧血症に陥ってます。 これは、データとgetter/setterだけのオブジェクトを、Anemic(貧血症になって元気がない)オブジェクトと称し、オブジェクトとはいうものの実質的にはデータであり、それをやりとりするだけの手続き型システムなっていることを嘆いたものです。 今回は、本来のオブジェクト指向に立ち返り、そのメリットである高い保守性、再利用性、拡張性を備えた変化に強いシステムを作るための設計方法、ドメイン駆動設計

                                        • ADOP (Application Domain Others Pattern)

                                          TL;DR ADOP はヘキサゴナルアーキテクチャの実装パターンとして考えられます。 パターンという名前はそれに由来します。 あえて名付けた理由はこぼれ話をご確認いただけると幸いです。 ADOP の概要 ADOP (Application Domain Others Pattern) は中長期的に運用可能なコードへ誘導するアプリケーションアーキテクチャパターンです。 ADOP は次の特徴があります。 最小限のルールである 指針が明確である 特定の技術スタックに縛られない テスタビリティが確保される これらの特徴は、コードを自然と中長期的に運用可能なコードへ導きます。 まず、簡単にそれぞれがどういった意味を成すのかを確認してきましょう。 最小限のルールである どれほど完璧な作戦であっても、その実行が不可能であれば何の意味もありません。 プログラミングにおいてもそれは同じことで、制約を守るため

                                            ADOP (Application Domain Others Pattern)
                                          • Clean Architecture考察 - ROXX開発者ブログ

                                            この記事は個人ブログの内容がソースです。 kami-programming.com そもそもなぜクリーンアーキテクチャーを考察するのか DRY原則やSOLID原則などが浸透している昨今ですが、実際の開発現場のソースコードを読み込んでみると必ずしもこれらの原則に則していない場合は多いのではないでしょうか。 そして、そういった開発環境でいざコーディングをしていくと、以下のような問題に直面するのではないでしょうか。 あるバグの修正をしたのだが、同じロジックが他の場所でも書かれていたようで重複箇所のバグは依然としてバグったままだった。 あるクラスを変更したが、依存性の方向性や範囲が把握しきれておらず、変更の影響で新たなバグを生んでしまった。 ビジネスロジックの変更を迫られたが、同じロジックが重複しすぎており修正範囲を特定するだけで一苦労。 想定外の値の入力があり、バグが発生してしまった。 これらは

                                              Clean Architecture考察 - ROXX開発者ブログ
                                            • モノリスからマイクロサービスへの設計の切り替え方 - Qiita

                                              この記事はGLOBIS Advent Calendar 2020の9日目の記事です。 こんにちは、@yohira_devです。 数年前からグロービスの開発案件に参画させていただいています。「智将は務めて敵に食む」という言葉がありますが、今回はグロービスのAdventCalanderで記事を書かせていただきます。 今回のAdventCalanderでは、「モノリスからマイクロサービスへの設計の切り替え方」について、書いていきたいと思います。 この記事を読むべき人 「マイクロサービスってなんか良さそう!うちもとりあえず導入してみようかな...」と思っている人 モノリスでは起こらなかったデータ不整合に消耗している人 モノリシックアプリケーションとマイクロサービスの違い モノリシックなWebアプリケーションを書いている感じで「手なりで」マイクロサービスを実装すると思わぬ落とし穴に嵌ることがあります

                                                モノリスからマイクロサービスへの設計の切り替え方 - Qiita
                                              • TypeScript の型を用いたコンポーネントの責務の明確化 - Timee Product Team Blog

                                                はじめまして!フロントエンドエンジニアの樫福 @cashfooooou です。 タイミーでは Next.js × TypeScript で toB 向け管理画面を作成しています。 この記事は、toB向けの管理画面の開発時に筆者が気づいたコンポーネント間の責務の明確化の必要性と、 TypeScript の型を用いて責務の分割をサポートする方法の紹介しています。 背景 利用者の様々なニーズに応えるために、toB向け管理画面には様々なページが実装されています。 2つ以上のページを実装していると、それぞれのページで実装の粒度がバラバラになることがあります。 一方ではフックの中で実装していたようなロジックが、他方ではコンポーネントで実装されている あるページのコンポーネントは複数のファイルに分割しているけど、こちらのページでは巨大な一つのファイルで実装が完結している 属人的な責務の分割が失敗した様子

                                                  TypeScript の型を用いたコンポーネントの責務の明確化 - Timee Product Team Blog
                                                • サービスメッシュの本質は、トラフィック管理や可観測性ではない

                                                  Abstruct サービスメッシュが、真に提供する価値は何なのか。それはトラフィック管理と可観測性なのだろうか。 サービスメッシュがこれほどにまで繁栄した理由について、私なりに考察する。 Introduction 近年では、ソフトウェアのアーキテクチャとして、マイクロサービスが大流行した。かつては最大手のインターネット企業のみが必要性に迫られていた、マイクロサービスアーキテクチャだが、昨今の急激に成長するITビジネスの中で、多くの企業にとってマイクロサービスは、あらゆる企業が取り組むべき必然性のあるソリューションとなっている マイクロサービス・アーキテクチャによって、大規模な開発チームがより俊敏になり、より多くのデプロイを実現させられることは、大きなメリットだ。一方で、マイクロサービス特有の課題も数多く存在する。 マイクロサービスに移行する際に発生する運用上の問題の多くは、結局のところ、ネ

                                                    サービスメッシュの本質は、トラフィック管理や可観測性ではない
                                                  • Rails7がもつフロントエンドへの「答え」

                                                    Rails7のアルファ版がリリースされました。 最近、Railsニューリリースの記事をみてもテンションがあがらなかったのですが(個人開発ではもっぱらNext.jsとかFlutterのお世話になってました)、下記のDHHによるデモが久々に 「Railsっていいかも」 って思える内容だったので、背景も含めて解説します。 Railsの存在意義 みなさんは、どうやってRails使い始めましたか? 自分はRails3.1あたりで独学でウェブアプリ開発をはじめました。そのときに「簡単に始められて」「ビジネスロジックが増えても生産性が落ちない」 というあたりで、他に浮気する理由がなかった、というのが私の理由です。 それから数年が経ちますが、最近のRailsのアップデートは Basecamp(Railsの基となった製品)が必要としている機能がポートされているだけ という印象でした。 アプリケーションの複雑

                                                      Rails7がもつフロントエンドへの「答え」
                                                    • Dify の ワークフロー の概要|npaka

                                                      以下の記事が面白かったので、簡単にまとめました。 ・Workflow - Dify 1. ワークフロー1-1. ワークフロー「ワークフロー」は、複雑なタスクを小さな「ノード」に分割することで、LLMアプリケーションのモデル推論への依存を減らし、システムの説明可能性、安定性、耐障害性を向上させます。 「ワークフロー」の種類は、次のとおりです。 ・Chatflow :  顧客サービス、セマンティック検索など、応答作成に複数ステップのロジックを必要とする会話シナリオ用 ・Workflow : 高品質な翻訳、データ分析、コンテンツ作成、電子メールの自動化など、自動化・バッチ処理シナリオ用 1-2. Chatflow自然言語入力におけるユーザー意図認識の複雑さに対処するため、「質問分類」「質問書き換え」「サブ質問分割」などの問題理解ノードを提供します。さらに、LLMに外部環境との対話機能、すなわち「

                                                        Dify の ワークフロー の概要|npaka
                                                      • Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                                                        基盤本部(開発部門)の木下です。Java 17 の新機能を使って、ドメイン駆動設計(Domain Driven Design: DDD)のモデリングの表現力を高める例をご紹介します。 皆さんは「事前条件が OK ならデータベースを更新する」というロジックを、クリーンアーキテクチャのどのレイヤーに実装していますか? 事前条件はドメイン知識なのでドメインサービスに実装したいところですが、リポジトリーを操作するアプリケーションサービスの中に書かれることも多いのではないでしょうか。 クリーンアーキテクチャー。https://style.biglobe.co.jp/entry/2020/02/13/150709 より引用 この記事では、ドメインサービスとアプリケーションサービスをきれいに分離するために、Java 17 で正式導入された interface の sealed と permits を活用

                                                          Java 17の新機能でドメインモデリングの表現力を高めてみる - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                                                        • Unityを利用した大規模なゲーム開発にクリーンアーキテクチャを採用した話 - WonderPlanet Developers’ Blog

                                                          こんにちは、タノシムスタジオテックリードの吉谷です。タノシムスタジオでは2011年ごろからクライアントアプリケーションの開発にUnityを利用し始め、いろいろ試行錯誤をつづけた結果、現在ではクリーンアーキテクチャの考え方を取り入れています。 今回は、Unityを利用したゲーム開発にクリーンアーキテクチャを適用した例として、導入理由、具体的な構成、実際に感じたメリット、デメリットなどを紹介したいと思います。 クリーンアーキテクチャとは クリーンアーキテクチャはRobert C. Martin氏が自身のブログにて発表した、すべてのソフトウェアアーキテクチャが守るべき考え方やアプローチがまとめられた概念です。以下のような同心円状の図で説明されることが多いかと思います。 出典: The Clean Architecture クリーンアーキテクチャの説明自体は、検索していただければ優れた記事や書籍な

                                                            Unityを利用した大規模なゲーム開発にクリーンアーキテクチャを採用した話 - WonderPlanet Developers’ Blog
                                                          • プロダクトマネージャー目線で語る、0→1開発でDDDを取り入れた背景とその効果 - クラウドワークス エンジニアブログ

                                                            こんにちは! クラウドワークスの新規事業開発チームでプロダクトマネージャー(以下、PdM)を担当している八尾です。 クラウドワークスでは、新規SaaSプロダクトを目下開発中です。 プロダクトの中身はまだ詳しく言えないのですが、新規事業の考え方などはこちらの記事をぜひご覧ください。 現在開発中のプロダクトでは初期からドメイン駆動設計(以下、DDD)の思想を取り入れて設計をしています。 DDDは、端的にいうと、ドメインモデルを中核に据えて設計しようということだと理解しています。 (参照:Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita) この記事では、なぜ初期の小さな規模のプロダクトでDDDを取り入れる意思決定をしたか、取り入れてみてどういう効果が得られたかについて、非開発者のPdM視点で書いてみようと思います。 (開発者視点でどうだったかは後々また公開する予定

                                                              プロダクトマネージャー目線で語る、0→1開発でDDDを取り入れた背景とその効果 - クラウドワークス エンジニアブログ
                                                            • ZOZOMO開発チームのユニットテスト戦略とテスト駆動開発 - ZOZO TECH BLOG

                                                              はじめに ZOZOMO部プロダクト開発ブロックの木目沢です。 ZOZOMOで提供しているZOZOTOWN上での「ブランド実店舗の在庫確認・在庫取り置き」APIの開発に携わっています。 今回は、開発当初から現在に至るまでのユニットテスト戦略についてお話しします。 意識してテストを書いていたのにカバレッジが低い問題 2021年11月にリリースされたブランド実店舗の在庫確認・在庫取り置きの機能ですが、開発当初のユニットテスト方針は以下のようなものでした。 モデルのユニットテストは必ず書く モデル以外の箇所は可能な範囲でユニットテストを書く 当時は実装のコードよりテストコードを先に書くといった文化はなく、レビューでテストの有無や内容を指摘する程度のものでした。 カバレッジも取っており、GitHub上では見える化していたものの、いつの間にか確認する機会も失われていきました。 もちろん、リリース前には

                                                                ZOZOMO開発チームのユニットテスト戦略とテスト駆動開発 - ZOZO TECH BLOG
                                                              • メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング

                                                                この記事は、Merpay Tech Openness Month 2023 の7日目の記事です。 はじめに こんにちは。メルコイン Payment Platform チームの @sapuri です。 メルコインではマイクロサービスアーキテクチャを採用しており、お客さまによりアプリの操作が行われると、それぞれのマイクロサービスを横断してリクエストが処理されます。 メルコインの Payment Platform は、お客さまの残高の管理や各種帳簿の作成などの決済事業のための基盤となる仕組みを提供しています。 そのなかで、Payment Service は決済トランザクションを管理するサービスとして、下位層のサービスが提供する各種決済手段を利用して、上位層のサービスが共通して利用できる決済 API を提供しています。 この記事ではマイクロサービスアーキテクチャにおける分散トランザクション管理の課

                                                                  メルコイン決済基盤における分散トランザクション管理 | メルカリエンジニアリング
                                                                • Webサービスの認可制御の不備によって起こる仕様の脆弱性と対策 - Flatt Security Blog

                                                                  はじめに こんにちは。株式会社Flatt Securityセキュリティエンジニアの村上 @0x003f です。 本稿では、Webアプリケーション上で実装される「認可制御」で気をつけなければいけない「仕様の中で起きうる脆弱性」とその対策について解説していきます。 どういったアプリケーションであれ認可制御は何らかの形で行われているでしょう。今回は認可制御について不適切な設計・実装を行うとどういった脆弱性が起こりうるのかということを解説できればと思っています。 昨今は特に機密性の高いデータを扱うWebサービスも増えており、その対策の重要性は増しています。Flatt Securityは専門家の視点でセキュリティリスクを洗い出す診断サービスを提供しておりますので、興味のある方は是非あわせて事例インタビューもご覧ください。 はじめに 想定アプリケーション セキュリティ観点と対策 観点1: 権限を持たな

                                                                    Webサービスの認可制御の不備によって起こる仕様の脆弱性と対策 - Flatt Security Blog
                                                                  • ジャンプTOON Flutter アプリの全体像 | CyberAgent Developers Blog

                                                                    ジャンプTOON アプリチームの國師です。 5 月にサービスを開始した 「ジャンプTOON」 は、Flutter を採用し Android, iOS, iPadOS 向けのアプリを提供しています。 本記事では、ジャンプTOON モバイルアプリの開発で採用している技術スタックやプロジェクト構成、開発手法を紹介します。 目次 SDK・ツール管理 プロジェクト管理・タスクランナー CI・CD ディレクトリ構成 テーマ管理 ルーティング アセット管理 状態管理 サーバ通信 Lint テスト UI カタログ Web Preview PDR SDK・ツール管理 Flutter の SDK バージョン管理には、Flutter 以外の SDK やツールもまとめて管理できる asdf を採用しています。 Flutter の開発者界隈では FVM も人気ですが、次の点から、アプリチームに限らず開発チーム全体で

                                                                      ジャンプTOON Flutter アプリの全体像 | CyberAgent Developers Blog
                                                                    • Amazon API Gatewayの新機能「HTTP API」のJWT Authorizersを理解する #reinvent | DevelopersIO

                                                                      ペイロードの中身にユーザー情報が含まれているので、どのようなユーザーのIDなどをトークンから取得できるようになっています。トークンからユーザー情報を引けるのは非常に便利ですが、トークンが確実に信用できるものでなければいけません。そこでヘッダーとペイロードの情報を使って、正規に署名されたものかどうか検証できるようになっています。 署名の検証は、JWT発行側が用意する公開鍵を使って行います。jwks_uri として公開することになっており、例えばGoogleからは以下のようなJSONが取得できます(JWK Setと言います)。 { "keys": [ { "kid": "57b1928f2f63329f2e92f4f278f94ee1038c923c", "e": "AQAB", "kty": "RSA", "alg": "RS256", "n": "1Zi0-4bNwZ7gGefz17U2N

                                                                        Amazon API Gatewayの新機能「HTTP API」のJWT Authorizersを理解する #reinvent | DevelopersIO
                                                                      • Railsの設計に迷ったのでGitLabの設計ドキュメントを読んでみた | DevelopersIO

                                                                        Railsのプロジェクトがそこそこ大きくなり、ServiceやSerializerなどのカスタムレイヤーを追加してコードを細分化しているものの、レイヤーの役割やインターフェイスのルールが明確に決まっておらずふわふわとしていることを課題と感じていました。課題を解決するヒントを探すため、Railsの超巨大OSSプロジェクトであるGitLabの設計ドキュメントを読んでみました。 ガイドラインの必要性 まず初めにガイドラインの必要性が語られています。レイヤーの抽象化ができたとしても、それを正しく使えないと、あっという間にメンテナンスしにくいコードができてしまうということが説明されています。 例として、あるFinder(Finderはデータベースからデータを検索する抽象)の中で別のFinderを呼び出してはいけないということが挙げられています。もしそうしたなら、Finderにどんどんオプションが追加

                                                                          Railsの設計に迷ったのでGitLabの設計ドキュメントを読んでみた | DevelopersIO
                                                                        • 「minne」はなぜ「MVVM+UseCase+Repository」なのか 3つのアーキテクチャを選んだ5つの理由

                                                                          「Android Meetup」は、to C向けサービスを提供するGMOペパボ株式会社、株式会社ZOZOテクノロジーズ、株式会社サイバーエージェンがAndroid開発事情や、直近の取り組みについて発表をするイベントです。GMOペパボ株式会社の伊藤氏は、「minne byGMOペパボ」アプリケーション開発におけるアーキテクチャ選定について発表しました。 ハンドメイドマーケット「minne」アプリを担当 伊藤拓海氏(以下、伊藤):「中~大規模アプリのminneはどうアーキテクチャを選定したか」ということで、GMOペパボの伊藤が発表したいと思います。よろしくお願いします。 まず軽く自己紹介します。伊藤といいます。よろしくお願いします。GMOペパボではパートナー(GMOインターネットグループに置ける従業員の呼称)同士をあだ名で呼び合う風習があります。僕は名前が拓海なので「tick-taku」と呼ば

                                                                            「minne」はなぜ「MVVM+UseCase+Repository」なのか 3つのアーキテクチャを選んだ5つの理由
                                                                          • 「あれ、チュートリアルから始まった」。僕とキャッシュとサイレントリリース。 - Qiita

                                                                            「このアプリバージョンではこのAPIサーバーにアクセスさせる」というロジックを実現します。 上記の表の場合だと、バージョン0.0.1と0.0.2のアプリではhttps://api.xxx.jp、バージョン0.0.3のアプリではhttps://api.vrf.xxx.jpのAPI URLがゲーム内で使われます。 この仕組みがある理由は下記の通りです。 ストアに申請を出すアプリのAPIは本番環境でなければならない → アプリ内にAPIサーバーの向き先としてhttps://api.xxx.jpが設定されている → ストアに申請を出すタイミングでサーバー側のソースに更新をかけたい場合、ユーザーが触っている本番環境(https://api.xxx.jpのサーバー)に更新をかけるとアプリをアップデートするまで動かなくなるので、更新をかけられない → 申請時にはリリースするアプリの向き先を一時的に、リリ

                                                                              「あれ、チュートリアルから始まった」。僕とキャッシュとサイレントリリース。 - Qiita
                                                                            • AWS Step Functions と Serverless Framework の使いどころ - Techtouch Developers Blog

                                                                              こんにちは、フロントエンドエンジニアの尾崎です。 6月のボーナスでロボット掃除機(Xiaomi)とコードレス掃除機(makita)を購入し、在宅勤務がますます快適になってきました。 さて、今回の記事では、テックタッチで AWS Step Functions をどのように活用しているかをお伝えしていきます。 記事の前半では、Step Functions の概要を説明しながらテックタッチでの利用方法について、 記事の後半では、Serverless Framework との組み合わせ方や本番運用してみてわかった Tips など、より実践的な内容に触れていきます。 AWS Step Functionsとは何か 処理順序の管理 AWSサービスとの連携 ワークフロー、ステップについて ユースケースの例 テックタッチでの利用方法 技術的なチャレンジ これまでの課題 Step Functionsを使う S

                                                                                AWS Step Functions と Serverless Framework の使いどころ - Techtouch Developers Blog
                                                                              • Backlogのコードメンテナンス性を向上させるために気をつけたこと【Backlog Play化プロジェクト】 | Backlogブログ

                                                                                ヌーラボの江口です。約8年間Backlogの開発を担当しており、BacklogをJavaからScala / Play Frameworkに移行するプロジェクトには最初から最後まで関わりました(プロジェクトの概要は時系列でみる!4年の歳月をかけてPlay Frameworkで「大規模リプレイス」した話をご覧ください)。 本記事では、BacklogのScala / Play Framework化プロジェクトで「Backlogのサーバーサイドを進化させる“土台”を作る」をテーマに、どのようにBacklogのアーキテクチャを設計・実装したのかご紹介します。 はじめに 私は2012年の入社以来、Backlogの開発を担当しています。Backlogは10年以上続くサービスであるため、度重なる機能追加や修正を行うことで複雑化し、日頃開発をする上で様々な問題を感じていました。 今回のBacklogのSca

                                                                                  Backlogのコードメンテナンス性を向上させるために気をつけたこと【Backlog Play化プロジェクト】 | Backlogブログ
                                                                                • 「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法

                                                                                  今回はアプリケーションアーキテクチャを学ぶ最初の一歩として、「MVC」や「3 層アーキテクチャ」などの基本的な用語の意味や関係性を整理する「改めて整理するアプリケーション設計の基本」。ここで大嶋氏が登壇。続いて、Controllerにプレゼンテーション層からデータアクセス層の処理をすべて記載している場合の分離方法について紹介します。前回はこちらから。 質疑応答 ドメインモデルパターンはドメイン騒動設計と同義か? 大嶋勇樹氏:ということで、ここまでビジネスロジックの実装について話してきました。ここからは最後のステップとして、「Controllerに全部書く」からどうやってステップアップするかを話していこうと思います。 ここまでで質問があれば、ぜひQ&Aにもらえれば回答します。せっかくなので、このタイミングで「ドメインモデルパターンはドメイン駆動設計と同義ですか?」(という質問)に回答しておこ

                                                                                    「クラスごとの役割を明確化すること」がポイント アプリケーション設計におけるドメインロジックの分離法