並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 139件

新着順 人気順

cleanarchitectureの検索結果1 - 40 件 / 139件

  • Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する|ハイクラス転職・求人情報サイト AMBI(アンビ)

    Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する Androidアプリの開発において悩ましいアーキテクチャの選定。本記事では選定する意味を改めて整理し、 MVP・Clean Architecture・MVVM・Fluxといった最新の実例を紹介します。 はじめまして。Androidエンジニアの藤原聖(ふじわら・さとる/@satorufujiwara)です。 現在は株式会社サイバーエージェントで、エンジニアリングマネージャーを兼任しています。2017年で35歳になり、定年を迎えました(プログラマの定年については「体型を支える技術」などを参照)。 Androidアプリ開発には2010年から携わっていますが、今現在の関心事は何といっても公式開発言語に採用されたKotlin。そしてもう一つが、Androidの

      Androidアーキテクチャことはじめ ― 選定する意味と、MVP、Clean Architecture、MVVM、Fluxの特徴を理解する|ハイクラス転職・求人情報サイト AMBI(アンビ)
    • クリーンアーキテクチャ完全に理解した

      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
        • さよならアーキテクチャ議論|Seiji Takahashi@ベースマキナ

          ポエム。 つまり?予算やチームのリテラシーに合わせて最速で作れて、チーム内で「俺ら高凝集低結合だなー」と思えるなら、アーキテクチャはなんでもいいと思えてきました。 前提・まだ割と収益が安定してないプロジェクトでの話です。お金があるなら好きにやりましょう。Go Bold。 ・DDDやクリーンアーキテクチャがダメとは言ってないです。むしろ自分は直近そこまで厳格ではないクリーンアーキテクチャでAPI書いてます。 ・以前こういうポスト書くくらいにはアーキテクチャのこと試行錯誤してました。 アーキテクチャ導入議論への疲労以前僕は、DDDやクリーンアーキテクチャを導入するという話が出ると積極的に顔を出すようにしていました。でも、最近は「導入しましょう」「既に適用してあるのでキャッチアップしてください」などの議論をするのに少し疲れてしまい、足が重くなったように感じます。もうおじいちゃんなので体力がないん

            さよならアーキテクチャ議論|Seiji Takahashi@ベースマキナ
          • 良いコードとは何か - エンジニア新卒研修 スライド公開

            株式会社サイバーエージェントの2021年度 エンジニア新卒研修でコードの品質に関する講義を行いました。 https://note.com/cyberz_cto/n/n26f535d6c575

              良いコードとは何か - エンジニア新卒研修 スライド公開
            • Clean Architectureは全てのプログラマにお奨めしたい良著|erukiti

              Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだので、まとめてみます。コメントやツッコミなどのフィードバックがあればうれしいです。 続編としてクリーンアーキテクチャ本を読むためのポイントという記事を書きました。併せてご覧ください。 なぜ良著?著者のロバート・C・マーチン(著書読んだことあるかも?)は、50年前から現代に至るまで、様々なアーキテクチャを見て、第一線級として開発し続けてきた経験を元に、どのアーキテクチャでもクリーンにしようとするなら、基本部分は変わらないと言ってて、それらが美味くまとまった本だからです。 いってみればコンピュータ工学について抑えるべきポイントを解説した本であり、The Clean Architectureそのものについてはほとんど割かれていません。それくらい、基本として知るべき事が書かれた本なのです。 最近のアーキテクチャを追いか

                Clean Architectureは全てのプログラマにお奨めしたい良著|erukiti
              • 5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ

                この記事は Laravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめに Zenn では初投稿です。日本の Laravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が

                  5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ
                • 「設計なんて不要でしょ」について - Qiita

                  経緯 以前とある席で偶然シニアエンジニアの方と設計について議論することがありました。 その時に特に耳に残っていたのは以下の様な内容です。 クリーンアーキテクチャってテストしやすくする為のですよね? 設計はコード書ける人が他のコードを書ける人に威張るための道具なのではないか? 設計を学習するならブロックチェーンとかを勉強して技術力を高めるべきなのではないか? リーダブルコードさえ読んでいれば設計は必要ないのではないか? 設計なんて不要でしょ その方はかなり詳しく設計の歴史をしっていて尤もな事を言っていましたが、平成も終わる頃においてはその限りではないです。 なので平成最後の日にそれら全てに対して最終的に解答できる形で設計の有用性を説明し、気持ちよく令和を迎えます。 注意: 一応ここで説明する内容や要素も一面だけです。 よくある誤解 クリーンアーキテクチャといえばこの有名なリングですよね。 こ

                    「設計なんて不要でしょ」について - Qiita
                  • 実践クリーンアーキテクチャ with Java

                    この記事について こちらの記事はクリーンアーキテクチャの Java 実装による解説記事です。 MVC フレームワークに組み込むために一部変更している部分もあります。 それをふまえてご覧ください。 講演内容が @IT さまに記事にしていただけました。 あわせてご参照ください。 https://www.atmarkit.co.jp/ait/articles/1907/08/news002.html クリーンアーキテクチャよりも軽量で無理なく導入しやすいアプリケーションアーキテクチャパターンを考案しました。 https://nrslib.com/adop/ スライド JJUG CCC 2019 Spring での発表資料です。 この発表をするにあたって記事を書くことにしました。 YouTube YouTube でこちらの解説を行いました。 その他解説もしています。もしよろしければチャンネル登録を

                      実践クリーンアーキテクチャ with Java
                    • ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog

                      はじめに こんにちは。プロダクト開発部の荒川です。 これまで最年少を謳っていましたが、ついに新卒の子にその座を奪われてしまいました。とても残念です。 さて今回のテーマは、皆さんお馴染みクリーンアーキテクチャ(Clean Architecture)です。 クリーンアーキテクチャは一時期流行し、その流れに乗って私もある程度の理解はしていました。 しかし、それはあくまでも感覚的な理解であって、他人に説明や良さを語れるレベルまで自分の中で落としこめていませんでした。 そこでより具体性のあるソースコードを読み込むことで、アーキテクチャへの理解を深めたいと思います。 クリーンアーキテクチャとは? クリーンアーキテクチャの定義や解説に関しては、ネット上にいくらでも公開されているので、このエントリでは詳しく話しません。 私自身が勉強に使った書籍やサイトを記事末尾の「参照」に掲載しているので、そちらを参考に

                        ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog
                      • 宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - Qiita

                        この記事は、ある程度以上の規模のGUI開発において、React Hooks以後の宣言的UIにより、大規模開発に用いられる設計論に完全に対応できるようになり「ビジネスロジックの変更や追加」に対応するコストを低く保つこと(技術的負債の抑制)ができるようになったことを解説するものです。 技術的負債の抑制には、技術的負債の原因となりがちな「広範囲の密結合」と「適切な疎結合を保つ仕組みの欠如」が欠かせません。それをカバーするのが、大規模開発をクリーンに行える設計論(ここでは「現代的な設計論」とよぶもの)です。クリーンアーキテクチャなんかでGUIによく適用されるHumble Object Patternのようにプレゼンテーションとビューを分離する必然性が無くなるでしょう。 ポイントは ある程度以上の規模で開発するなら設計論をうまく使い設計しないと、技術的負債を抱え込む(ビジネスロジックの変更や追加に対

                          宣言的UIはReact Hooksで完成に至り、現代的設計論が必須の時代になる - 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
                          • Webフロントエンドの開発効率を高く保つための考え方

                            これまでいろんな現場でWebフロントエンド開発をしてきて、メンテナンスしやすく効率の高いWebフロントエンド開発をする上で重要になる考えが自分なりにまとまってきたので記事にしてみます。 Worse is Betterという考え方 自分が見てきた中でWebフロントエンドの開発効率が落ちてしまう一番の要因は、きれいで理論的には優れているアーキテクチャを構築しようとしてそれ自体がもたらす複雑性を支えきれないというパターンです。 少し前にフロントエンドにClean Architecture(以下CA、あの同心円の図を指すのは誤用に近いですがここではそれに乗ります)を導入する記事が流行ったと思いますがあんな感じです。ああいったクラスベースでDIが重要となる設計手法はサーバーサイドのJavaでSpringを使うのとは違ってReactがサポートしているものではないため、CAの実現自体に高い設計スキルが必

                              Webフロントエンドの開発効率を高く保つための考え方
                            • 実践クリーンアーキテクチャ【プログラミング】

                              音ズレ修正 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

                                実践クリーンアーキテクチャ【プログラミング】
                              • クリーンアーキテクチャ(The Clean Architecture翻訳)

                                Robert Martin (a.k.a. ボブおじさん) による、 The Clean Architecture の翻訳です。似たようなアーキテクチャである ヘキサゴナルアーキテクチャ も翻訳したので参考にしてください。 この記事を翻訳して公開したことは 8th Light, Inc. に報告済みです。いまのところ苦情は来ていません。 ここ数年以上、システムのアーキテクチャに関する実にさまざまなアイデアを見てきた。これには、次のものが含まれる: Hexagonal Architecture (別名 Ports and Adapters) by Alistair Cockburn。Steve FreemanとNat Pryceが、Growing Object-Oriented Software というすばらしい本で採用した。 Onion Architecture by Jeffrey Pa

                                  クリーンアーキテクチャ(The Clean Architecture翻訳)
                                • ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog

                                  こんにちは、テックリードの夏です。 今年4月にCTOからテックリードに肩書が変わり、ガリガリコードを書くようになりました。 背景については、こちらをご覧ください。 www.wantedly.com 普段はプロダクト側の機能開発と、サーバ側の基盤開発を半々ぐらいの割合で仕事しています。 一口にサーバ側の基盤開発といっても定義が曖昧なのですが、基本的にはこんな感じのタスクをやっています。 インフラコストの最適化 不正なアクセスからの防御 障害の再発防止 新技術の導入やアーキテクチャの整備 今回はこのうち「新技術の導入やアーキテクチャの整備」の中で、サーバサイドをGo + Clean Architectureで再設計したことについてお話したいと思います。 背景 ミラティブは2015年春頃に開発が始まり、同年8月にサービスがリリースされ、2020年8月で5周年を迎えました。 その過程で組織やプロダ

                                    ミラティブのサーバサイドをGo + Clean Architectureに再設計した話 - Mirrativ Tech Blog
                                  • マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング

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

                                      マイクロサービスにクリーンアーキテクチャを採用する上で考えたこと | メルカリエンジニアリング
                                    • 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP

                                      この記事は、開発を持続可能にできるようなアーキテクチャとその適用方法を考察するものです。 骨子はできていますが、実装経験をフィードバックして詳細を若干変更するかもしれません。 勉強不足な点もあるので、意見を歓迎します。 開発においてよくある問題点 ビジネスロジックの本質が何だったか見失う。ソースコードのどこまでが業務上の関心で、どこからがそれを実現するための技術上の関心か分からなくなる。 入出力双方向の処理が散在して処理が追い切れなくなる。特にイベント処理でどこに飛ぶかわからないコールバック地獄になる。 初期化・つなぎ込み・統合者的オブジェクトが小さな機能単位で生まれて統一感が無くなる。 状態を持つ値が大量に散在して副作用を起こしバグを生む。 これらの問題の結果、小さな単位ごとに個人のノウハウで"良い"設計がされ、機能を追加しようとしたときにどういう方針で行えばよいか分からなくなる。 解決

                                        持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP
                                      • まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita

                                        <この記事は「Money Forward Advent Calendar 2015」の22日目の記事です> この記事は、iOS Clean Architectureと実際にコードへ適用した内容について紹介します。 コードについては、改善の余地があるため随時修正していくと思います。 → github: https://github.com/koutalou/iOS-CleanArchitecture iOS開発においてよくある問題点 「ビジネスロジックはModelに置くべき」と言うが、開発者によって理解や意見がバラバラで統一的な実装ができない 度重なる仕様変更や複雑な仕様に対応するためにViewControllerや特定のModelが肥大化し、ビジネスロジックの本質を見失う MVC,MVP,MVVMだけで考えると、どこかのレイヤが複数の責務を持つことになり依存度の高い複雑なコードが生まれてし

                                          まだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて - Qiita
                                        • 実装クリーンアーキテクチャ

                                          最近何かと騒がしいクリーンアーキテクチャですが、丁度プロダクトで採用したところだったので折角なので情報共有ということで Qiita の初記事にしてみようと思います。 こちらの記事は GUI や CUI のアプリケーションを対象にしています。 Java コードの記事リンク:https://nrslib.com/clean-architecture-with-java/?preview_id=1263&preview_nonce=542ba7b70f&_thumbnail_id=1293&preview=true その他解説もしています。もしよろしければチャンネル登録をお願いいたします。 より実践的なコード(WEBアプリケーション): https://github.com/nrslib/itddd/tree/master/CleanLike YouTube での解説(WEBアプリケーション):

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

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

                                              クリーンアーキテクチャなんてものはない(クリーンアーキテクチャーの読み方)
                                            • Goでクリーンアーキテクチャを試す | POSTD

                                              依存がなく、テスト可能であり、クリーン。 Uncle Bobのクリーンアーキテクチャの概念を読んだので、これを私はGoで実装してみたいと思います。このアーキテクチャは、自分たちの会社である Kurio – App Berita Indonesia で使っていたものに似ていますが、少し違っています。大きな違いはなく、概念は一緒なのですが、フォルダ構造が違っています。 サンプルのプロジェクトとして、記事をCRUDで管理するリポジトリを https://github.com/bxcodec/go-clean-arch にpushしてあります。 * 免責条項 ここで使われているどのライブラリあるいはフレームワークも、利用を特別推奨しているものではありませんので、ご自身あるいはサードパーティによる同じ機能のものと入れ替えることが可能です。 基本的な考え方 ご存知のように、クリーンアーキテクチャで設計

                                                Goでクリーンアーキテクチャを試す | POSTD
                                              • Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository

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

                                                  Repositoryによる抽象化の理想と現実/Ideal and reality of abstraction by Repository
                                                • 実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!

                                                  実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 クリーンアーキテクチャのメリットとは?またいかにして導入するか?難解なイメージのあるクリーンアーキテクチャの概要を採用事例に学びます。今回、取材したのは工業用間接資材オンラインストアの「モノタロウ」。サービスの開発を続けていくにつれ、同社のシステムは複雑化、肥大化していき、様々な課題が生じたそうです。こうした課題に対応すべく、システムのモダナイゼーションに取り組む際、取り入れたのは、クリーンアーキテクチャでした。同アーキテクチャをどのように実装したのか、モノタロウのエンジニア3人に聞きました。 受け入れテストを自動化し、システムの正常動作を保証 ユニットテスト導入の秘訣は「テストを書くハードルを下げる」こと クリーンアーキテクチャ化は、“幹”の処理から手をつける クリーンアーキテクチャを全社的に展開

                                                    実践クリーンアーキテクチャ - 複雑化した大規模ECサイトをモダナイズしたモノタロウの事例 - エンジニアHub|Webエンジニアのキャリアを考える!
                                                  • 書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみた - Qiita

                                                    書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみたGo初心者まとめarchitectureCleanArchitecture はじめに Clean Architecture 達人に学ぶソフトウェアの構造と設計を読んだ。 なぜソースコードを綺麗に書くのかから始まり、オブジェクト指向、コンポーネントの原則、アーキテクチャと体系的にまとまっている良い内容だった。 この記事では、本書の内容の引用を踏まえながら自分の考えの振り返りをまとめたものである。 実際にGoで実装したりしたので、なにか間違いなどあれば指摘していただきたい。 クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた 対象読者 ・Clean Architecture 達人に学ぶソフトウェアの構造と設計を読むか迷ってる人 ・Clean Arc

                                                      書籍「Clean Architecture 達人に学ぶソフトウェアの構造と設計」を読んだので大事なポイントを自分のためにまとめてみた - Qiita
                                                    • リファクタリングして学ぶTypeScriptでクリーンアーキテクチャ - Qiita

                                                      概要 最近,ASCII Dwangoさんから「クリーンアーキテクチャ」という本が出版されました. そこに書いてある内容は素晴らしいものでした.しかし,実際に組んでみた場合,どういう風に作るのが良いのか?どういう問題があるのか?そういった疑問が湧いてきました.そこで, 実際に非クリーンアーキテクチャのコードをリファクタリングしていくことで,クリーンアーキテクチャの要点を感じる. という試みです. クリーンアーキテクチャとは ここでは簡単にしか説明しませんが,実際に本を読んで勉強することをお勧めします. 「クリーンアーキテクチャ 達人に学ぶソフトウェアの構造と設計」のp200によると フレームワーク非依存:アーキテクチャは,機能満載のソフトウェアのライブラリに依存していない.これにより,システムをフレームワークの制約で縛るのではなく,フレームワークをツールとして使用できる. テスト可能:ビジネ

                                                        リファクタリングして学ぶTypeScriptでクリーンアーキテクチャ - Qiita
                                                      • クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita

                                                        はじめに クリーンアーキテクチャの書籍を読んだので、実際にクリーンアーキテクチャの考え方を採用したREST APIをGO言語で実装してみた。 ↓↓↓↓ソースコード↓↓↓↓ https://github.com/yoshinorihisakawa/sample-api-hoop/tree/develop この記事ではクリーンアーキテクチャの説明というよりかは、実装ベースの実践的な内容にしている。 対象読者 ・クリーンアーキテクチャで実装されたソースコードを理解したい人 ・クリーンアーキテクチャの右下の図がよくわからない人 ・アーキテクチャについて勉強を始めた初心者 クリーンアーキテクチャとは? クリーンアーキテクチャとは、8th Light, Inc.のブログ記事で提案されている。 一言で言うと、依存関係をコントロールし持続可能なソフトウェアを実現するための体系的な手法である。 ※ DIやD

                                                          クリーンアーキテクチャの書籍を読んだのでAPIサーバを実装してみた - Qiita
                                                        • Go × Clean Architectureのサンプル実装 - 爆速でGo!

                                                          Click here for English version *追記:Student Goで発表しました。 speakerdeck.com クリーンアーキテクチャとは 以下を実現することで、関心の分離をするアーキテクチャパターンです。 ドメインロジックを独立させる フレームワークを独立させる UIを独立させる DB含む外部の全てを独立させる ドメインロジックをテストしやすくする 詳しくは様々な記事で説明されているので、今エントリでは割愛し実装パターンに絞って紹介します。 Clean Coder Blog 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP - Qiita サンプルアプリケーション ↓サンプルコード github.com 仕様は、/users にPOSTすることでユーザー登録するだけのapiです。 基本はma

                                                            Go × Clean Architectureのサンプル実装 - 爆速でGo!
                                                          • Laravelで実践クリーンアーキテクチャ - Qiita

                                                            この記事を書くにあたって Laravel について色々サポートしてくれた皆さまに向けてお礼申し上げます。ありがとうございました。 本記事はクリーンアーキテクチャに対する理解を深めていただくために、「実践クリーンアーキテクチャ」の内容を Laravel で実装して解説するという内容になっています。 記事のゴールは「クリーンアーキテクチャに対する理解を深めてもらう」というものです。つまり、この実装の形は一例に過ぎません。 はじめに 皆さんクリーンアーキテクチャはご存知でしょうか。 そう、こんな図のアレです。 The Clean Architecture: https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html クリーンアーキテクチャといえばこちらの象徴的な図をまずは思い浮かべるでしょう。 この図を

                                                              Laravelで実践クリーンアーキテクチャ - Qiita
                                                            • クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High

                                                              何を言っているのかと言うと、みんな大好きクリーンアーキテクチャの右下に図示されているFlow of Controlのこと。 黒線が引かれているということは、つまりUsecaseの中でOutput Portのインターフェイスを持つPresenterの関数なりが最終的に実行されるということである。 ここで湧き上がってくる疑念は「UsecaseがPresenterを呼び出さなくてもControllerに返り値とかで値を返して、Controller経由でPresenterに渡して実行しても同じなんじゃないの?」である。つまりOutput Portというインターフェイスそのものを撤廃してControllerにPresenterを使わせるアイデアである。たしかに、仮にこの方針で行ったとしても依存の方向が壊されることはない。 Software Engineeringでは同様の質問がかなり盛り上がっている

                                                                クリーンアーキテクチャのUsecaseはなぜControllerへ値を返すのではなくOutput PortとしてPresenterを呼び出すのか - Runner in the High
                                                              • 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サーバーを作ったメモ
                                                                • Clean Architectureにおいてバリデーションはどこでやるべきか

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

                                                                    Clean Architectureにおいてバリデーションはどこでやるべきか
                                                                  • The Clean Architecture

                                                                    In the weeks since I started talking about the need to clean up our architecture, I’ve noticed a surprising resistance to the idea. Apparently the notion that it’s a good idea to hide the framework, UI, or database from the application code is not universally accepted. I first blogged about this topic here , I did a whole cleancoders.com episode on the topic. I’ve also done several keynotes on the

                                                                    • JavaScriptでClean Architectureを導入してみた - Vue.js・Reactのサンプルつき - Qiita

                                                                      事の発端 始まりはこちらのツイートから。 Usecasesレイヤーを充実させていったらVuex Actionsほとんど使わなくなるな笑 — Andy (@andoshin11) 2018年6月15日 それはどういうことだよ・・・ フロントでどう使うんだ・・・? と疑問に思い、自分なりに検証・実装してみたいと思ったのが事の発端です。 Clean Architectureとは? まず根本の理解がほぼなかったので調べることにしました。 こことか https://qiita.com/koutalou/items/07a4f9cf51a2d13e4cdc こことか https://blog.tai2.net/the_clean_architecture.html こことか https://qiita.com/Tueno@github/items/705360b357c2a00c9532 こことか h

                                                                        JavaScriptでClean Architectureを導入してみた - Vue.js・Reactのサンプルつき - Qiita
                                                                      • Goはクリーンアーキテクチャの思想を活かせるか? DMMのゲームプラットフォームにGo言語を選んだ理由

                                                                        DMM GroupのGoの勉強会「DMM.go」。DMM Groupのエンジニアが現場で培った技術やトレンドについて発表していきます。 2回目の開催となる今回登壇するのは、合同会社EXNOA プラットフォーム開発本部の PFシステム部に所属する岡崎翔悟氏。「Goとクリーンアーキテクチャ」の内容で、実際の現場にいるからわかるGoの開発やクリーンアーキテクチャについて話していきます。関連資料はこちら。 合同会社EXNOAとは 岡崎翔悟氏:今回「Goとクリーンアーキテクチャ」と題しまして、EXNOAの岡崎が発表いたします。 「EXNOAって何だ?」と思われた方が多数いらっしゃると思うので、まずはそちらの説明から。DMM GAMESは2020年4月10日付でEXNOAに社名を変更しました。ただし、一般作品のブランド名として「DMM GAMES」は残っています。一般作品の「DMM GAMES」とR1

                                                                          Goはクリーンアーキテクチャの思想を活かせるか? DMMのゲームプラットフォームにGo言語を選んだ理由
                                                                        • Goのpackage構成と開発のベタープラクティス

                                                                          (images: github.com/egonelbre/gophers) こんにちは。 データエンジニアリンググループ(CETチーム)の寺下です。 自分の所属するCETチームでは今まで主にScala、Pythonなどを使ってAPIや基盤を実装してきましたが、最近では徐々にGoによる実装も増えてきており、GAE/GKE上で本番運用を行っています。 本記事ではGoのプロダクトにおいてDDDライクなpackage構成で実装する際の注意点や、汎用的に通用するであろう実装のTipsについて書いていきます。 本記事で紹介する例がベストプラクティスだというわけではありませんので、あくまで実装の一例程度に捉えて頂けると幸いです。 Goのアーキテクチャ Goは言語仕様がシンプルかつフォーマッタが強力なため、syntaxレベルでは開発者によってコードの品質がブレにくいというメリットがあります。 しかしなが

                                                                            Goのpackage構成と開発のベタープラクティス
                                                                          • ドメイン駆動設計のエンティティとクリーンアーキテクチャのエンティティ

                                                                            概要 ドメイン駆動設計の有名な用語にエンティティというものがあります。 ほとんどドメイン駆動設計の代名詞のひとつと言っても過言でないほどの有名さを誇るこちらの用語ですが、なんとクリーンアーキテクチャにもまったく同じエンティティという用語が出てきます。 このエンティティという用語は名前こそ同じではありますが、実は完全に同じものを指しているわけではありません。 とはいえまったく違うものである、というわけでもありません。 要するにややこしい。 この記事はこのややこしい用語について、ドメイン駆動設計とクリーンアーキテクチャのそれぞれのエンティティが何を指していて、それがどのように異なっているのかについてを解説します。 それぞれのエンティティ そもそもエンティティとは何でしょうか。 英和辞典を引くとエンティティとは「存在[実在]物」といった意味が出てきます。 これはかなり抽象的な意味です。 つまり、

                                                                              ドメイン駆動設計のエンティティとクリーンアーキテクチャのエンティティ
                                                                            • Goで書くClean Architecture API - Qiita

                                                                              Enterprise Business Rules ビジネスルールの為のデータ構造を持ったオブジェクト。 データの実態を表す場所。 Application Business Rules ビジネスルールを操作する場所。 つまりこのアプリケーションで何ができるかを実践します。 Interface Adapter 外部からの入力、データの永続化、表示を担当する場所 Frameworks & Drivers Webフレームワーク、DB操作の実際に担うソース、 フロントエンドのUIなどがここに所属しています。 外側のレイヤーの要素を直接参照してはならない 上記の図におけるこの矢印は依存を表しており、 内側のレイヤーから外側のレイヤーの要素への依存を禁じます。 ここでいう依存とは要素(構造体、変数など)への直接参照をさせないということです。 では外側のレイヤー要素を参照せざる得ないは、どうするのでしょ

                                                                                Goで書くClean Architecture API - Qiita
                                                                              • Javaでクリーンアーキテクチャする方法 Part.1:ヘキサゴナルアーキテクチャ

                                                                                開発者にはしばしば必要なものがないという状況が訪れます。デベロッパーエバンジェリストの成瀬氏が、実際に10名弱のチームで新規プロダクトを作る際にクリーンアーキテクチャの構成を実践してみた話をしました。 Part.1はヘキサゴナルアーキテクチャについて。動画はこちら。 新規開発では理想どおりにならないことはよくある 成瀬允宣氏:さぁ、じゃあやっていきましょうか。(コメントで)「Javaより時代はKotlin」。そう、Kotlinね、そうですね。今回はアーキテクチャの話なので、たぶんKotlinとかでも使えると思います。 (コメントで「設計の講座助かります!」)設計の講座はなかなかないですからね。あと、今日最後のほうで「次何やろうか?」って話もしようかなと思っているので、もしよければ、そのときに僕の相談に乗ってください。 よし、じゃあいきましょう。「先行開発!Javaでクリーンアーキテクチャ」

                                                                                  Javaでクリーンアーキテクチャする方法 Part.1:ヘキサゴナルアーキテクチャ
                                                                                • 実践クリーンアーキテクチャ │ nrslib

                                                                                  YouTube での解説 YouTube にて Java コードをベースに解説を行いました。 コードの雰囲気は C# とほとんど同じなので参考になるかと思います。 もしよければご覧ください。 Java コードの記事リンク:https://nrslib.com/clean-architecture-with-java/ その他解説もしています。もしよろしければチャンネル登録をお願いいたします。 Qiita 版 Qiita に CUI や GUI 向けのクリーンアーキテクチャの記事を書きました。 ボブおじさんのクラス図を模したものです。 Web とはまた異なった実装になるので、もしよければ合わせてご参照ください。 https://qiita.com/nrslib/items/a5f902c4defc83bd46b8 さらに PHP の Laravel 版も作ってみました。 https://qi

                                                                                    実践クリーンアーキテクチャ │ nrslib