並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 38 件 / 38件

新着順 人気順

clean-architectureの検索結果1 - 38 件 / 38件

  • クリーンアーキテクチャ完全に理解した

    clean_architecture.md 2020/5/31追記: 自分用のメモに書いていたつもりだったのですが、たくさんのスターを頂けてとても嬉しいです。 と同時に、書きかけで中途半端な状態のドキュメントをご覧いただくことになっており、大変心苦しく思っています。 このドキュメントを完成させるために、今後以下のような更新を予定しています。 TODO部分を埋める 書籍を基にした理論・原則パートと、実装例パートを分割 現在は4層のレイヤそれぞれごとに原則の確認→実装時の課題リスト→実装例という構成ですが、同じリポジトリへの言及箇所がバラバラになってしまう問題がありました。更新後は、実装時の課題リストを全て洗い出した後にまとめて実装を確認する構成とする予定です。 2021/1/22追記: パートの分割と、クリーンアーキテクチャという概念の定義について追記を行いました。大部分の実装例パートを中心

      クリーンアーキテクチャ完全に理解した
    • 世界一わかりやすいClean Architecture - nuits.jp blog

      本項は「C# Tokyo オンライン「世界一わかりやすいClean Architecture」他」による発表の登壇原稿となります。過去に発表した.NET版の記事はこちらにアーカイブしています。 本稿のサンプルコード・PPTはこちらで公開しています。 「CC BY-SA 4.0」で公開していますので、気に入っていただけたら営利目的含め、ライセンスの範囲で自由に利用していただいて問題ありません。 github.com また動画を以下で配信しています。よろしければご覧ください。 世界一わかりやすいClean Architecture はじめに まず初めに、クリーンアーキテクチャの誤解されがちな二つのことについてお話させていただきます。 その上で、クリーンアーキテクチャの本質とは何か?押さえておくべき、本当に重要だと考えている三つの事について、お話しします。 注意事項 さて本題に入る前に、少し注意

        世界一わかりやすいClean Architecture - nuits.jp blog
      • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

        この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 本記事は、今一度単一責任

          単一責任原則で無責任な多目的クラスを爆殺する - Qiita
        • 僕とDDDとClean ArchitectureとやっぱりDDD - kenfdev’s blog

          2022/04/21更新 ふりかえってみて、この記事は手段と目的をごっちゃにしちゃった自分がよくわかる記事です。 DDDは「どうやってコードを書くか」が問題ではありません。その点を勘違いしちゃってるエンジニアの話として、続きを読みたい人は読んでください🙏 DDD(Domain Driven Design)って難しいですよね。難しい難しいとばかり考えていた僕もようやく最近になって少しずつわかってきた気がします。そのきっかけとなった書籍と僕のストーリーを本記事で紹介できたらと思います。 TL;DR Clean Architectureはなんとなくわかる DDDは難しい と感じている人は「Domain-Driven Design in PHP」を読むと道が拓けるかもしれない。 leanpub.com 僕とDDD DDDといえばEvansのドメイン駆動設計: エリック・エヴァンスのドメイン駆動設

            僕とDDDとClean ArchitectureとやっぱりDDD - kenfdev’s blog
          • クリーンアーキわからんかった人のためのクリーンじゃないけどクリーンみたいなオニオンに見せかけたSOLIDの話

            依存関係逆転則含む諸原則に苦しめられた方々,いかがお過ごしでしょうか. 今回はアプリ設計の話です.と言っても,前回「クリーンアーキわからんかった人のためのオニオンアーキテクチャ」というZenn記事を書いて,反響が大きかったのでリメイクしたいなという気持ちになり執筆することにしました. 前回同様,調べていく上で誤解していた部分や理解しにくかった部分を語った上で,オニオンアーキテクチャという,クリーンじゃないけどクリーンみたいな玉ねぎについて紹介するのですが,今回はわかりやすい図解であったり,実際にどのような実装をしていくべきなのかを話の話題として加えていければ良いかな?って思っています. これは前回の記事である「クリーンアーキわからんかった人のためのオニオンアーキテクチャ」の記事の裏話的な話を一つさせてください. 今年の11月初め頃に,サポーターズという企業の学生が登壇できるLT会があり,私

              クリーンアーキわからんかった人のためのクリーンじゃないけどクリーンみたいなオニオンに見せかけたSOLIDの話
            • 実践クリーンアーキテクチャ【プログラミング】

              音ズレ修正 Ver. → https://www.youtube.com/watch?v=BvzjpAe3d4g 本編 → 7:08 ~ JJUC CCC 2019 Spring の講演「「先行開発!クリーンアーキテクチャ -- ゼロから始める新規開発」の再演です。 講演の概要は下記URLのイベントページをご覧ください。 # URL イベントページ: https://nrs-seminar.connpass.com/event/174000/ Togetter: https://togetter.com/li/1502339 文字起こし(ログミーTechさま): https://logmi.jp/tech/articles/323233 スライド: https://speakerdeck.com/nrslib/clean-architecture-with-java github: h

                実践クリーンアーキテクチャ【プログラミング】
              • マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング

                Merpay Advent Calendar 2019 の19日目は、Backendエンジニアチームの @toshinao がお送りします。 新しくマイクロサービスを立ち上げる機会があり、クリーンアーキテクチャをベースにしました。クリーンアーキテクチャはバックエンド・フロントエンド・アプリなど様々な場所で採用されています。ただ、確固たる方法というのは無く、みな試行錯誤しているのでは無いでしょうか。この記事では、クリーンアーキテクチャを取り入れる上で考えたことを紹介したいと思います。 マイクロサービスを作ったことがない人や、今までいくつか作ってきたけどより良い設計について考えている人の助けになれば幸いです。 はじめに メルペイのバックエンドは主にGoとGoogle Cloud Platform(GCP)で開発を行っていますが、各マイクロサービスをどう実装していくかは概ね各チームに委ねられてい

                  マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング
                • クリーンアーキテクチャの功罪

                  クリーンアーキテクチャというと設計における銀の弾丸のように扱われていて、クリーンアーキテクチャを導入するという記事をよく見ます。しかし自分の経験だとクリーンアーキテクチャで書かれているのにもかかわらず開発効率が落ちているという事が多く、いつでも使っておけばいいというものではないと思っています。 最近目にしたクリーンアーキテクチャに対する批判 本筋ではないので詳細は省きますが、あるとき[1][2]にUncle Bobの著書であるCleanシリーズへの批判をXで見ました。 ここで一番載せたかったものが今見つけられないのですが、以下のようなポストがありました。 書籍クリーンアーキテクチャに書いてある内容を抜きにして起こった現象だけを見るとマイナスの方が多い このポストが自分の感じていることを端的に表現できているように感じました。書籍クリーンアーキテクチャの内容を悪いと思いませんが、その影響により

                    クリーンアーキテクチャの功罪
                  • クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方)

                    すでに何人かの人がクリーンアーキテクチャなんてないよ、って話はしていてイマサラだと思うんですが。 あえてブログの記事に残そうかなと思って書いてみます。 最近、改めてクリーンアーキテクチャ本を読んだり、原文を読んだり、 ここ数ヶ月ツイート色々な人のを観測したり社内で話したりしていて 考えがまとまってきたので、自分の言葉で整理してみたくなった。 「へー、クリーンアーキテクチャっていうソフトウェアアーキテクチャがあるんだー」という微妙な誤解?をちょっとでも減らす一助になればという感じです。あと、本の読み進め方のヒントにもなるかも 先に結論 クリーンアーキテクチャというのはアンクルボブの書いた本。 ソフトウェアアーキテクチャのことではない。 the クリーンアーキテクチャというブログ記事はただのソフトウェアアーキテクチャの例(そして本の一部分)だが、独り歩きしている クリーンアーキテクチャというソ

                      クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方)
                    • Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

                      Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

                        Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
                      • Go(Echo), Gorm, Mysql, Docker, Swaggerで、クリーンアーキテクチャなAPIサーバーを作ったメモ

                        自分の本業は10年物のMVCプロジェクトなのでClean Architecture忘れがちです。 なので、慣れてるGoでパッとClean Architectureの復習を行ってみました(2年前にPythonでやった事はあるんだけど・・・)。 このスクラップでは単語とか作りどころとかを整理するのですが、また後でRustで作ってそっちは前例がほぼないので記事にします。 Go + Clean Architectureは結構記事あるんですが、Swaggerつけたしたのと自分なりに納得いくディレクトリ構成にオリジナリティを出しました。ちなみにgo-swagger使うと本当は凄く楽に作れるのですが(ついでにフロントはopenapi-generator)、今回はClean Architectureを理解するのが主目的なので、サーバーは手書きでopenapiのyamlも1から自作しました。 ↑ postに

                          Go(Echo), Gorm, Mysql, Docker, Swaggerで、クリーンアーキテクチャなAPIサーバーを作ったメモ
                        • スタートアップにクリーンアーキテクチャを適用したが、技術的負債が塵積った件 〜開発合宿で技術的負債を粉砕します〜 - ANDPAD Tech Blog

                          こんにちは。こんばんは。おはようございます。 アンドパッドで現在はバックエンドの方のエンジニアをやっている原田です。 アンドパッドには2021年6月にJOINしまして、現在までANDPADボードの開発に携わっています。 ANDPAD施工管理が比較的長期間の工事をターゲットにしているのに対して ANDPADボードは1日〜数日の間に短期間の工事や施工を行う際のスケジュール管理を行えるサービスです。 andpad.jp 今回は入社3ヶ月目というきりの良いタイミングで今まで行ってきたことを振り返りつつ、直近行った技術的負債を軽減するための「開発合宿」について書いていきます。 一応最初に書いておきますが、リファクタリングに関するチートスキルはないのでバーンとやってドーンと解決みたいなド派手な解決ではなく地道な改修作業をちまちま行いましたという内容です。 入社してからやってきたこと ANDPADボード

                            スタートアップにクリーンアーキテクチャを適用したが、技術的負債が塵積った件 〜開発合宿で技術的負債を粉砕します〜 - ANDPAD Tech Blog
                          • Clean Architectureにおいてバリデーションはどこでやるべきか

                            クリーンアーキテクチャで web アプリケーションを作る際に、バリデーションはどのレイヤの責務なのか?と悩むことが多いため、それについての考察を行ってみる。 あと、バリデーションについて書いてたはずがドメインロジックとアプリケーションロジックの違いについても結構言及せざるを得ない感じになったので、そのへんの話もしてみる。 結論から言うと バリデーションはどのレイヤの責務なのか?という問い自体が間違いであり、レイヤごとにそのレイヤの責務となるバリデーションを行うべき、というのが今のところの結論。 バリデーションという単語は意味があまりに広い。「意図していないもの/ことを防ぐ」ことはすべてバリデーションと呼ばれている節がある。そのことにより、バリデーションというのはあたかも唯一つの責務であるかのように錯覚しがちだが、そうではない。クリーンアーキテクチャではレイヤによって責務を分担しているが、同

                              Clean Architectureにおいてバリデーションはどこでやるべきか
                            • データ詰め替え戦略 - kawasima

                              このSpring Bootを使ったクリーンアーキテクチャの例は、データの詰め替え過剰にみえる。 https://www.baeldung.com/spring-boot-clean-architecture これだけのモデルと詰め替えが必要なのだろうか? 『Get Your Hands Dirty on Clean Architecture 』にこのマッピング戦略(詰め替え戦略)が書かれている No Mapping (レイヤ間でモデルを共有し、詰め替えをしない) 2-way Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しは上位レイヤが詰め替えの責務を負う) Full Mapping (各レイヤで独自のモデルを持ち、レイヤを跨ぐ呼び出しには専用のモデルを使う) またこの戦略のどれを選ぶかの基準は『Balancing Coupling in Software Design

                                データ詰め替え戦略 - kawasima
                              • DDDでプロダクト開発をしたので振り返ってみた - JMDC TECH BLOG

                                みなさん、こんにちは!プロダクト開発部の吉川(@yoshiyu0922)です。 現在、JMDCが保有している医療ビッグデータを活用して生活者や医療に新しい価値を提供する新規プロダクト開発チームのバックエンドを担当しております。 以前に新規プロダクト開発で採用している技術や設計についてこちらの記事で紹介しましたが、Go x GraphQL x DDDでプロダクト開発をしています。今回はプロダクトの開発が一区切りしてこれからリリースするということで、開発してみて良かったことやこうすれば良かったことを振り返りをしました。振り返りの内容は主にDDDに関することです。 DDDとは DDDとは「Domain-Driven Design」の略語でドメイン駆動設計と呼ばれるソフトウェア開発手法の一つです。問題を解決しようとする領域(ドメイン)をモデリングによってソフトウェアの設計や実装に反映させることで、

                                  DDDでプロダクト開発をしたので振り返ってみた - JMDC TECH BLOG
                                • Goでヘキサゴナルアーキテクチャ - Qiita

                                  はじめに 『Standard Go Project Layout』と『ヘキサゴナルアーキテクチャ』を参考にサンプルプロジェクトを作ってみました。 トランザクション周りも取り扱います。 『Standard Go Project Layout』とは ↓これです。 Standard Go Project Layout 上記の内容を日本語で簡潔にまとめてくださってる記事もありました。 Goにはディレクトリ構成のスタンダードがあるらしい。 別の記事になりますが、こちらもとても参考になりました。 Practical Go: Real world advice for writing maintainable Go programs ヘキサゴナルアーキテクチャとは ↓これです。 ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳) 本家サイトへのリンクも張りたかったのですが、現

                                    Goでヘキサゴナルアーキテクチャ - Qiita
                                  • Clean Architectureなにもわからないけど実例を晒して人類に貢献したい - エムスリーテックブログ

                                    こんにちは、エムスリーエンジニアリンググループの福林 (@fukubaya) です。 これまでは、中村の記事で宣言した 「医師版Stack Overflow」(12/16に正式名称Docpediaとしてリリースされました) の技術的チャレンジの 記事を続けて書いていたのですが、今回はここで宣言しなかったClean Architectureについて書きます。 浪江駅(なみええき)は、福島県双葉郡浪江町にある、東日本旅客鉄道(JR東日本)常磐線の駅。本文には特に関係ありません。 Clean Architecture 達人に学ぶソフトウェアの構造と設計 (アスキードワンゴ) 作者:Robert C.Martin,角 征典,高木 正弘出版社/メーカー: ドワンゴ発売日: 2018/08/01メディア: Kindle版 なぜ書くのか 参考にできる実例を増やしたい Tech Blogはそのままドキュメ

                                      Clean Architectureなにもわからないけど実例を晒して人類に貢献したい - エムスリーテックブログ
                                    • あえてGo言語でClean Architectureを学ぶ

                                      はじめに 最近巷で話題のGoらしさって話があると思いますが、 ここはあえてGoらしからぬClean ArchitectureをGoで学んでいこうという記事です。 対象 Go言語をある程度読めて、Clean Architectureに興味がある方 注意 ここでいうClean Architectureとは、依存性のルールに従った円を指しています。 Clean Architectureを採用しましょうって話ではありません。 各言語には思想があるので、その言語らしい書き方に沿うべきだと思っています。 ざっくりとしたアーキテクチャの目的 システムの関心の分離を行い、選択肢を残す(決定を遅らせる)ことが目的です。 またユースケースを中心として開発するため、フレームワークやツールに依存しません。 Clean Architectureとは Robert Martin がブログで提唱したアーキテクチャの解説

                                        あえてGo言語でClean Architectureを学ぶ
                                      • Golang開発者のためのクリーンアーキテクチャ

                                        はじめに クリーンアーキテクチャは、ソフトウェア設計の分野で非常に重要な概念です。 しかし、その理解は容易ではなく、明確な正解が存在するわけではありません。 多くの人が異なる解釈を持ち、他の設計思想と混在していることもあります。 この記事では、自分なりの視点からクリーンアーキテクチャを解釈し、その整理した内容を共有します。 このアーキテクチャの目的は、システムの各層を独立させ、変更に強く、テストしやすい設計を実現することです。 この記事では、クリーンアーキテクチャの基本概念、Golangでの実装方法、およびディレクトリ構成について詳しく説明します。 なお、この記事では個人的な見解を述べており、必ずしも正解を書いているわけではありません。もし誤りがあれば、ぜひご指摘いただけると幸いです。 クリーンアーキテクチャの基本概念 クリーンアーキテクチャの元となったのは、ロバート・C・マーチン(通称「

                                          Golang開発者のためのクリーンアーキテクチャ
                                        • TypeScriptでクリーンアーキテクチャを実践する

                                          概要 本記事は、スクラムを管理するアプリケーションをクリーンアーキテクチャの考え方で実装し、WebからもCLIからも動かせるようにしたという実践を紹介するものです。学習のための個人開発で作成したサンプルアプリケーションの設計と実装を適宜紹介することで、クリーンアーキテクチャに対する理解を深めることが目的です。 モチベーション なぜ現代の開発現場で定着しているクリーンアーキテクチャのアプリを手元で実装してみようと思ったかというと、私自身Webエンジニアとして働く中で、クリーンアーキテクチャの実践例は入出力をWebに限定したものばかりだったからです。 しかし、「詳細に依存せず抽象に依存すること」と唱えるクリーンアーキテクチャにとって、Webはただの詳細です。そこで、入力元、出力先を問わないアプリケーションはどのような書き味になるのか、自分で確かめてみたくなりました。 例えば、「ドメイン層は独立

                                            TypeScriptでクリーンアーキテクチャを実践する
                                          • GolangらしいPackage構成を考える/thinking about Golang-like package architecture

                                            DesignOneGo#6 のLT発表資料です Webアプリケーション設計からGolangらしいPackage構成を考えたものです。 CleanArchitectureを参考に考えた独自設計を元に - レイヤーでのPackage構成 - レイヤー×Re-ducks思想を織り交ぜたPackage構成 について考察しています。 P.S. 簡易的に作成したものなので、 今後この内容を詳しくした設計サンプル資料を作成したい...!

                                              GolangらしいPackage構成を考える/thinking about Golang-like package architecture
                                            • 擬人化で完全に理解するクリーンアーキテクチャ

                                              PHPカンファレンス関西2024 の発表資料になります

                                                擬人化で完全に理解するクリーンアーキテクチャ
                                              • How Uber "Go"es

                                                Maintaining a large codebase with maximum readability and minimal overhead is hard. This is the story of how Go language went from a few enthusiastic Gophers to the most popular language for microservices at Uber. Learn where we failed, and how that led us to solutions that we think are pretty darn neat!

                                                  How Uber "Go"es
                                                • RustでClean Architectureを実装してみる

                                                  はじめに RustでWebアプリケーションのGraphQLバックエンドを実装してみました。その中で、できるだけClean Architectureに沿うように実装してみたので、得られた知見を公開してみたいと思います。 資料に基づきできるだけ正確な記述を目指していますが、誤りもあるかもしれません。また実装から少し時間を空けて執筆しているので、忘れている部分も多く不正確なことが書いてあるかもしれません。 Clean Architectureとは 以下のブログでRobert C. Martin(通称Uncle Bob)によって提唱されたアーキテクチャです。 その後本人により書籍も出版されました。日本語にも翻訳されています。 歴史について簡単に 多層アーキテクチャ (Multitier architecture) というものはかなり昔から考えられていたようです。初出についてはよくわからないのですが

                                                    RustでClean Architectureを実装してみる
                                                  • GitHub - amitshekhariitbhu/go-backend-clean-architecture: A Go (Golang) Backend Clean Architecture project with Gin, MongoDB, JWT Authentication Middleware, Test, and Docker.

                                                    A Go (Golang) Backend Clean Architecture project with Gin, MongoDB, JWT Authentication Middleware, Test, and Docker.

                                                      GitHub - amitshekhariitbhu/go-backend-clean-architecture: A Go (Golang) Backend Clean Architecture project with Gin, MongoDB, JWT Authentication Middleware, Test, and Docker.
                                                    • Dependent method types を利用した軽量Clean Architecture の紹介

                                                      class: center, middle # <strong>Dependent method types</strong><br/>を利用した<br/>軽量<span style="color: blue;">Clean Architecture</span><br/>の紹介 Scala関西Summit 2019 10/26 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-lef

                                                      • [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう

                                                        [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう 2019.12.01 Programming スライド 動画 みなさんの反応 https://togetter.com/li/1437472 [PHP Conference Japan 2019]「思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう」のまとめ(togetter) 各種リポジトリと概要 cfg https://github.com/nrslib/cfg クラスファイルを生成するライブラリです。 クラスファイルをパースする機能も少し追加されています。 clarc-php-core https://github.com/nrslib/clarc-php-core クリーンアーキテクチャの構成例に従って、必要になるオブジェクトを生成する処理で

                                                          [PHP Conference 2019]思想と理想の果てに――クリーンアーキテクチャのWEBフレームワークを作ろう
                                                        • PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築する - Qiita

                                                          PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築するPythonFlaskDIPython3CleanArchitecture 業務でPythonを使ってウェブアプリケーションを実装する際、レイヤー毎に関心の分離を行いながら開発するために、Clean Architectureを導入することになりました。 チームメンバーへのナレッジ共有を兼ねて、漸進的型付けとDependency Injectionを用いながら、テスタビリティの伴ったアプリケーションを開発するためのプラクティスをまとめました。 今回はPythonを用いたサンプルを目的としているため、Clean Architectureの解説は簡易に済ませます。 (The Clean Architectureより引用) Clean Architectureはロバート・C・マーティンによって2

                                                            PythonでDI+モックを使いながら、Clean Architectureでアプリケーションを構築する - Qiita
                                                          • 個人開発でクリーンアーキテクチャを導入してみた

                                                            モチベと本記事の軽い概要 個人開発でクリーンアーキテクチャを採用してみました。理由としては私の師匠(@yuyaさん(twitter))にクリーンアーキテクチャを勧められて、ボブおじさんことRobert C.Martinの書籍を読みはじめたことがきっかけでした。正直私の読解力では読んだだけでは理解できず、手を動かしてみようと思ったことが大きいです。 対象読者 クリーンアーキテクチャについてはもう知っている方 目次 クリーンアーキテクチャとは(超簡単に) 実際採用してみた感想 Goでの実装例 クリーンアーキテクチャとは 詳しい説明はまた別で書きたいと思います。 関心の分離、疎結合を提供し、より変化に強いソフトウェアを提供することを目指したアーキテクチャです。 個人的には、依存を一方通行に(外から内方向)するというのが一番のミソだと思ってます。 参考にした文献等 クリーンアーキテクチャを採用して

                                                              個人開発でクリーンアーキテクチャを導入してみた
                                                            • Go言語でClean Architectureを実現して、gomockでテストしてみた - Qiita

                                                              やりたかったこと Go言語を使用したDIパターンについて学ぶ Clean Architectureの実装について学ぶ gomockを使ったテストを実装する DI(Dependency Injection)パターンとは DIパターンはよく「依存性の注入」と言われていて”???”ってなってたけど「依存されるオブジェクトの注入」だと理解しました。このパターンを利用して、依存関係逆転の原則(DIP)を実現することができます。 Go言語でDIの実現方法 依存する実装を定義したinterfaceをつくり、そのinterfaceをstruct(構造体)のフィールドとして持たせます。その構造体に依存することで、DIパターンを実現可能です。 具体的な実装はこのサイトを参考にしました。 ・morikuni blog -GoにおけるDI Clean Architectureについて この説明は多くの方が解説して

                                                                Go言語でClean Architectureを実現して、gomockでテストしてみた - Qiita
                                                              • GoでCRUDアプリをMysql、GORM、Echo、Clean Architectureで作る - Qiita

                                                                目次 Clean Architectureとは Clean Architectureというと、以下の図が大変有名です。 Clean Architectureの目的は関心の分離で、 これを達成するために意識すべきことが各レイヤーの依存性です。 関心の分離によりコードの可読性が向上したり、変化に強い設計になります。 この辺のメリットやClean Architectureの詳細に関しては参考記事に載っていますのでそちら参照ください。 上記の図では、円の外側から内側に向かって矢印が向けられていますが、これが依存の向きで、 外側から内側への依存は可能ですが、内側から外側は不可能です。 言い方を変えると、内側で宣言したモノを外側から呼ぶことはできますが、外側で宣言したモノを内側から呼ぶことはできないという話です。 この記事では依存の向きに注意しながら コードを紹介していきます。 各機能に関して 各機能

                                                                  GoでCRUDアプリをMysql、GORM、Echo、Clean Architectureで作る - Qiita
                                                                • Go言語とClean ArchitectureでAPIサーバを構築する - Qiita

                                                                  Clean Architectureとは Clean Architecture(クリーンアーキテクチャ)とは,レイヤに内側と外側の関係性を持たせるアーキテクチャである. 「外側のレイヤは内側のレイヤだけに依存する」というルールを守ることによって,アプリケーションから技術を分離することが目的である. アプリケーションから技術を分離すると何が嬉しいのか ここでの「技術」とは,HTTPやcsv,MySQLなどのことを意味している. アプリケーションから技術を分離すると,技術を容易に変更できたり,テストコードを書くときに容易にモックできたりする. 例えば,出力をHTTPからcsvに変更したくなったときなどに容易に変更が可能である. 各レイヤの責務 Clean Architectureで提案されているレイヤ構造は以下の画像のようなものである. 内側から,Entitiesレイヤ,Use Casesレイ

                                                                    Go言語とClean ArchitectureでAPIサーバを構築する - Qiita
                                                                  • rustでクリーンアーキテクチャ - Qiita

                                                                    今月分のaws利用料金が確認できます。 ディレクトリ構成 こんな感じのモノレポの構成になっています。 rustのパッケージマネージャであるcargoにはワークスペースという機能があり、モノレポの構成を簡単に作れます。 . ├── Cargo.lock ├── Cargo.toml ├── README.md ├── cli │   ├── Cargo.toml │   └── src │   ├── get_cost │   └── main.rs ├── infra │   ├── Cargo.toml │   └── src │   ├── aws │   └── lib.rs ├── module │   ├── Cargo.toml │   └── src │   ├── lib.rs │   └── slack_module.rs ├── presenter │   ├── Ca

                                                                      rustでクリーンアーキテクチャ - Qiita
                                                                    • 【Go言語】クリーンアーキテクチャで作るREST API – 株式会社ライトコード

                                                                      参考:https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html クリーンアーキテクチャで調べるとよく出てくる例の円ですね。 ざっくり説明すると、円の中の各項目は矢印の向き(内側)に依存(参照)するようにして、特定の項目の仕様変更が他の項目に影響を及ぼさないようにしています。 それによってそれぞれが外部の項目を気にすることなくテストできたり、仕様変更の影響範囲が少なくなったりといった利点があります。 実装:クリーンアーキテクチャ化では早速、クリーンアーキテクチャ化を進めていきましょう! Entities外側は内側の参照を持つため、内側から順に実装していきます。

                                                                        【Go言語】クリーンアーキテクチャで作るREST API – 株式会社ライトコード
                                                                      • Clean and Scalable Architecture for Web Applications in Rust

                                                                        There are many architectural patterns to design web applications. A famous one is the "Clean Architecture" by Robert C. Martin This architecture splits projects into different layers in order to produce systems that are Independent of Frameworks. The architecture does not depend on the existence of some library of feature

                                                                          Clean and Scalable Architecture for Web Applications in Rust
                                                                        • [わかりやすさ重視]図解クリーンアーキテクチャ

                                                                          Domainは抽象であるInterfaceに依存し、 技術的な詳細であるInfrastructureもまた抽象であるInterfaceに依存することで 依存関係の方向を逆転させます。 Interfaceの名前は、Domainロジックに必要なデータにアクセスするためのInterfaceであるためData Access Interfaceとします。 Interface Adapters(Repository) 依存性逆転の原則 (DIP: Dependency Inversion Principle) その② Interfaceを設けたことで抽象に依存できるようになりました。 しかし、一つ問題があります。 実装を考えると結局Domainが、 Data Access Interfaceを呼び出すときにInfrastructureをインスタンス化する必要があります。 DataAccessInter

                                                                            [わかりやすさ重視]図解クリーンアーキテクチャ
                                                                          • Clojure x ClojureScript で深める Web 開発 (5) API 開発 トランザクション添え - Qiita

                                                                            Git Repo ソースコードと原文が入ったレポジトリ https://github.com/MokkeMeguru/clj-web-dev-ja/tree/main/chap5 シリーズ Clojure x ClojureScript で深める Web 開発 (0) Clojure x ClojureScript で深める Web 開発 (1) Duct x Clean Architecture Clojure x ClojureScript で深める Web 開発 (2) 環境の構築 Clojure x ClojureScript で深める Web 開発 (3) API 作成入門 Clojure x ClojureScript で深める Web 開発 (4) Auth Clojure x ClojureScript で深める Web 開発 (5) API 開発 トランザクション添え C

                                                                              Clojure x ClojureScript で深める Web 開発 (5) API 開発 トランザクション添え - Qiita
                                                                            • Webフロントエンド Clean Architecture 考 - Qiita

                                                                              Webフロントエンドでも Clean Architecture に関する考察や実際のサービスへの導入の事例をよく見かけるようになりました。 n番煎じですが Clean Architecture をWebフロントエンドのアプリケーションに導入する際の考察をコードを書きつつしてみました。 サンプルコード はこちらにあります。 また、今回のコードを書くにあたり、 @ttiger55 さん、@pirosikick さんのエントリーやコードを参考にしました。ありがとうございます :) Pros/Cons コードを書いてみた上での結論を先に述べておきます。 Pros/Cons で言えば Pros の利点が多く感じられますが、結局のところ「ビジネス要件」がある程度固まっているか否かというソフトウェア側でコントロールしにくい箇所がボトルネックとなっているのため、ここをどう捉えるかは個人によって差が出そうか

                                                                                Webフロントエンド Clean Architecture 考 - Qiita
                                                                              1