タグ

clean architectureに関するsiik02のブックマーク (13)

  • フロントエンドの複雑さに立ち向かう 〜DDDとClean Architectureを携えて〜 | さくらのナレッジ

    自己紹介 さくらインターネットではシニアフロントエンドエンジニアをやっています。代表作は「NES.css」というファミコン風CSSフレームワークで、エイプリルフールには「さくらのINFRA WARS」というゲームの企画開発をしていました。 話さないこと 記事ではソフトウェア設計ということで、以下の設計・アーキテクチャに関しては話す予定はありません。コンポーネント設計や CSS 設計に関しては過去に記事やスライドを公開していますので、気になる方はそちらを参考にしていただければと思います。 コンポーネント設計 加速するコンポーネント設計入門 / Component Design as an Accelerator コンポーネント指向時代のmargin戦略 / Rethinking the relationship between Components and Margins CSS設計 OO

    フロントエンドの複雑さに立ち向かう 〜DDDとClean Architectureを携えて〜 | さくらのナレッジ
  • Clean Architectureにおいてバリデーションはどこでやるべきか

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

    Clean Architectureにおいてバリデーションはどこでやるべきか
  • クリーンアーキテクチャの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
  • Clean Architecture on Frontend (翻訳) - Qiita

    こちらはDEV Communityに2021年9月2日に投稿され、現在反響を巻き起こしているフロントエンドにおけるクリーンアーキテクチャの実装についてのAlexさんの記事になります(原文はこちら)(twitterにて翻訳掲載許可取得済み)。 かなり大ボリュームな超大作記事となっておりますが、Reactなどを使ったフロントエンドプロジェクトのディレクトリー構成やファイルごとの責務の切り分けのベストプラクティスなどの決定版といえるものがまだまだ出てこない中で、個人的にまさに待ち侘びていたような内容の記事かと思い、是非日フロントエンドコミュニティでも知見が共有されればと思いました。 それでは以下、文です。 *翻訳は大部分をDeepL翻訳によって行っていますが、適宜修正してあります。 少し前に、私はフロントエンドにおけるクリーンアーキテクチャについての講演を行いました。この記事では、その講演

    Clean Architecture on Frontend (翻訳) - Qiita
  • CleanArchitectureへの自分の混乱を正す - Qiita

    iOSやAndroid開発ではCleanArchitectureというアーキテクチャが利用されることがあるが、利用者によって解釈が大きく変わりそれが自分の中での混乱を招いているのでは?と考えた。なので自分なりに整理してみた。 CAとDDDの混乱 CleanArchitectureは ヘキサゴナルアーキテクチャ オニオンアーキテクチャ スクリーミングアーキテクチャ リーンアーキテクチャ UseCase駆動 などのアーキテクチャを参考にしており、オニオン型アーキテクチャは DDDのドメイン層からインフラ層への依存をなくすために依存性逆転の法則を用いて「ドメインが何にも依存しないように」する という目的で生まれたものなので、DDDの文脈を受け継いでいると考えてよいと思った。 Entity/UseCaseの混乱 クリーンアーキテクチャ(The Clean Architecture翻訳)を読み直して

    CleanArchitectureへの自分の混乱を正す - Qiita
  • CleanArchitectureにおけるInterface Adapterの役割を調べた

    目的 Interface Adapterのコード(Presenter、Repository、Gatewayなど)は、どのような役割を負うべきかを調べる。 動機 ローカルとサーバーのデータベース同期ライブラリを開発していて、「どのデータベースであろうとも、アプリケーションロジックを変更する必要はない」というデータベースの独立性を持ちたかったので、CleanArchitectureの導入を考えた。 そこでまだMVC,MVP,MVVMで消耗してるの? iOS Clean Architectureについて を参考にしながら進めていたのだが、Domain層の中にTranslatorが含まれているのに疑問を覚えた。 上の記事のサンプルコードを元に、データベースをRealmからCoreDataに取り替えた場合のことを考えてみたところ、ユースケースを書き換えなければいけないことに気がついた。 以下のコード

    CleanArchitectureにおけるInterface Adapterの役割を調べた
  • クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita

    はじめに 昨年からの大きな案件でClean Architectureを使った Platforms: Android/iOS Languages: Kotlin/Swift はじめに 勉強会向け資料なので、クリーンアーキテクチャー自体の解説もある程度含まれます。 逆に、時間の都合上、歴史背景や細かい部分までは行き届いていません。 もし間違いがあればご指摘ください。 オススメ書籍 アーキテクチャーを選定する目的 求められるシステムを構築・保守するために必要な人材を最小限に抑えるため 「アーキテクチャーは上位レベル、設計は下位レベル」のように区別されることがあるが、両者の間に明確な境界はなく、上位から下位に至るまで、決定の連続である スマホアプリ開発で代表的なアーキテクチャー AndroidはMVVM(Googleが推奨) iOSはMVC(AppleCocoa applicationに採用)

    クリーンアーキテクチャーでスマホアプリ開発した感想(勉強会用) - Qiita
  • Clean Architectureは全てのプログラマにお奨めしたい良著|erukiti

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

    Clean Architectureは全てのプログラマにお奨めしたい良著|erukiti
  • クリーンアーキテクチャ本を読むためのポイント|erukiti

    先日のClean Architectureは全てのプログラマにお奨めしたい良著という記事では、ASCII DWANGOから出ているClean Architecture 達人に学ぶソフトウェアの構造と設計(以下、Clean Architectureと呼ぶ)が、アーキテクチャパターンとしてのクリーンアーキテクチャ The Clean Architecture(日語翻訳版) を採用するかどうかに関わらず、ありとあらゆるプログラマにお勧めしたい良著であると書きました。 Clean Architectureは主に設計(実装面もある程度含む)において、メンテナンスしやすいものを作り上げるために必要な知見をコンパクトにまとめたです。こので押さえておくべき重要な概念は「知識」とその知識を利用する「依存関係」です。 この記事では、前回よりもさらに掘り下げて、Clean Architecture

    クリーンアーキテクチャ本を読むためのポイント|erukiti
  • GitHub - pirosikick/twitter-like-app-clean-architecture: WIP

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - pirosikick/twitter-like-app-clean-architecture: WIP
  • GitHub - apavamontri/nodejs-clean: Clean Architecture with Node.js + Express.js

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - apavamontri/nodejs-clean: Clean Architecture with Node.js + Express.js
  • ドメイン駆動設計のエンティティとクリーンアーキテクチャのエンティティ

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

    ドメイン駆動設計のエンティティとクリーンアーキテクチャのエンティティ
  • 実践クリーンアーキテクチャ │ nrslib

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

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