タグ

dddに関するtri-starのブックマーク (70)

  • UseCaseの再利用性 - yoskhdia’s diary

    Clean ArchitectureにはUseCase層が定義されていますが、このUseCaseが一体どういうものなのか度々わからなくなるので、自分の考えをまとめてみるエントリです。 Clean Architectureについてはこちら 8thlight.com 日語訳:クリーンアーキテクチャ(The Clean Architecture翻訳) 以降、概念を”ユースケース”、実装されるモノを”UseCase”と表記することにします。 (同じっちゃ同じなんですが、指してるものがところどころ変わるので表記分けをしています。) また、Webアプリケーションを想定しています。 ユースケースとは何なのか Clean Architectureから抜粋します。 Use Cases The software in this layer contains application specific busi

    UseCaseの再利用性 - yoskhdia’s diary
  • DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話

    JJUG CCC 2018 Spring の発表資料です。 #jjug #ccc_a8Read less

    DDDとクリーンアーキテクチャでサーバーアプリケーションを作っている話
    tri-star
    tri-star 2018/08/27
  • Clean ArchitectureでAPI Serverを構築してみる - Qiita

    この記事では、アーキテクチャを採用する理由、次にClean Architectureの概要、最後にアプリケーションの構築をしていきます。 この後詳しく見ていきますが、Clean architectureの概念は比較的シンプルでわかりやすいものだと思います。しかし実際コードに落とし込んだ時、これってどう実装すればいいのかな?と迷うことがあったので、自分の理解も深めるために実際にAPI Serverを構築していきたいと思います。 また、サーバーサイドでの採用事例をあまりみないので誰かの参考になればいいかなと思います。 サンプルコードは、Go言語です。 アーキテクチャを採用する理由 アーキテクチャに期待することは、関心の分離です。 関心の分離を正しく行うことで、次のようなメリットがあると思います。 再利用性の高い設計になり生産性が向上する コードの可読性が上がり、メンテナンスが容易になる 変化に

    Clean ArchitectureでAPI Serverを構築してみる - Qiita
  • ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab

    DDD連載記事 なぜDDD初心者はググリ出してすぐに心がくじけてしまうのか ドメイン駆動設計の定義についてEric Evansはなんと言っているのか モデルでドメイン知識を表現するとは何か ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 背景 ドメイン駆動設計について、「どうやって実装するのさ?」の前に、まずは定義について認識合わせをしたいと思います。 「ドメイン駆動設計とは何か?」 ドメイン駆動設計について興味を持った時に、一番最初に疑問に思うのがこれですね。 ところが、ググって見ると結構いろんなサイトでいろいろな書きぶりをしているんですよね・・・。 「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」 ドメイン駆動設計のメリットと始め方(Codezine記事) - 「厳しい現実の中

    ドメイン駆動設計の定義についてEric Evansはなんと言っているのか[DDD] - little hands' lab
    tri-star
    tri-star 2018/07/13
  • モデルでドメイン知識を表現するとは何か[DDD] - little hands' lab

    DDD連載記事 なぜDDD初心者はググリ出してすぐに心がくじけてしまうのか ドメイン駆動設計の定義についてEric Evansはなんと言っているのか モデルでドメイン知識を表現するとは何か ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か ドメイン駆動 + オニオンアーキテクチャ概略 概要 DDDの定義についてEric Evansはなんと言っているのか この記事でドメイン駆動開発の定義は以下のようなものであると書きました。 ドメインの中核となる複雑さと機会に焦点を当てる ドメイン専門家とソフトウェア専門家のコラボレーションでモデルを探求する 明示的にそれらのモデルを表現するソフトウェアを書く 境界付けられたコンテキストの中のユビキタス言語で話す では、ドメインの知識を言語化したモデルは、最終的にコードでどのように表現されるのでしょうか? 不変条件 まず、業務の制約に

    モデルでドメイン知識を表現するとは何か[DDD] - little hands' lab
    tri-star
    tri-star 2018/07/13
  • PSR-7とPSR-15を使ったWebアプリケーション開発 - emonkak's Blog

    はじめに PSR-7(HTTP Message)が承認されてからしばらく経ちますが、現在はこれを使った様々なライブラリ・フレームワークが登場しています。 これによって特定のライブラリ・フレームワークにロックインされずに、Webアプリケーションを実装できる道程が見えてきました。 しかし、PSR-7はあくまでHTTPメッセージのインターフェイスを提供するもので、リクエストを受け取ってレスポンスを返す流れを抽象化するものではありません。 これはHTTPミドルウェアと呼称されますが、そのインターフェイスはそれぞれの実装でまちまちです。 そこで、これを抽象化するPSR-15(HTTP Middleware)が提案されています。 ミドルウェアは大まかにダブルパスのミドルウェアと、シングパスのミドルウェアに分けることができます。 PSR-15は現在の所シングルパスのシグネチャを採用しています。 シングル

    PSR-7とPSR-15を使ったWebアプリケーション開発 - emonkak's Blog
  • コード設計編: context による縦軸分類とレイヤードアーキテクチャ(新規開発のメモ書きシリーズ3)

    流行りの monorepo 風味と DDD 風味? 今回はコードの設計について書き残します。主に JavaScript 界の話です。Web アプリケーション全体の設計は次回で、今回はコード面の設計に限定して書き留めています。プロダクト全体のアーキテクチャは次の記事で述べる予定ですが大雑把には、メディアっぽいサービスでありつつも SPA + SSR が許容される程度には要件定義の時点でコードの行数がかさむことが約束されたプロダクトです。 今回は大きく分けて下記について述べています ディレクトリ構造 オブジェクトの種類と責務 Flux 的なデータフロー あくまで風味なので今回、専門用語の意味ズレなどは優しくお願いします... このシリーズの他の記事はこちら。 技術要素編: web アプリが新陳代謝を続けるための依存関係の厳選 ビルド設定編: UA に応じた最適な JS バンドルの配信と web

    コード設計編: context による縦軸分類とレイヤードアーキテクチャ(新規開発のメモ書きシリーズ3)
  • (旧版)DDD × CQRS 更新系と参照系で異なるORMを併用して上手くいった話

    新版は https://www.slideshare.net/koichiromatsuoka/ddd-x-cqrs-orm こちらご参照ください! アーキテクチャの話はこちらのブログ記事でも書いています。 http://little-hands.hatenablog.com/entry/2017/10/04/231743 http://little-hands.hatenablog.com/entry/2017/10/11/075634 Read less

  • 『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?

    DDD Alliance!主催の「現場で役立つシステム設計の原則 Night!」での書評LTスライドです。

    『現場で役立つシステム設計の原則』は一般的なSI現場で役立つのか?
  • Laravel製の趣味プロダクトをDDD + ヘキサゴナルアーキテクチャで書き直してみた - Qiita

    この記事はWHITEPLUS Advent Calendar 2017の18日目です。 最近、趣味で開発しているLaravel製のプロダクトをDDD + ヘキサゴナルアーキテクチャで書き直してみたので、この記事ではその構成について超ざっくりと紹介します。 Laravelアプリケーションを開発する上での参考になれば嬉しいです。 プロダクトの紹介 ngmy/webloyer: Webloyer is a Web UI for managing Deployer deployments PHP製のデプロイツールDeployerのWeb UIです Deployerの詳しい紹介については、他の方が書いた記事があるのでここでは省略します Deployerを使ってデプロイしてみたら想像以上に楽だった PHP製のdeployツール"deployer"でLaravelアプリケーションをgit clone/c

    Laravel製の趣味プロダクトをDDD + ヘキサゴナルアーキテクチャで書き直してみた - Qiita
    tri-star
    tri-star 2017/12/30
  • なぜDDD初心者はググり出してすぐに心がくじけてしまうのか - Qiita

    DDD連載記事 * なぜDDD初心者はググリ出してすぐに心がくじけてしまうのか * ドメイン駆動設計の定義についてEric Evansはなんと言っているのか * モデルでドメイン知識を表現するとは何か * ドメイン駆動設計で実装を始めるのに一番とっつきやすいアーキテクチャは何か * ドメイン駆動 + オニオンアーキテクチャ概略 背景 直近のプロジェクトでDDDの思想に則ったアーキテクチャで一つリリースまで漕ぎ付けまして、そこに至るまで色々と調べたり試行錯誤をしながら学んだことを書いていこうと思います。 一番にですね、大体のDDDに興味を持った人がいうのが ということなんですよね。 DDDは思想としてすごく面白く、とても実用性なものなのに、なんでこんなにわかりづらいのか、ハードルが高いのか!! という点について、私なりの解釈を述べたいと思います。 心をくじく要因 Eric Evansは説明

    なぜDDD初心者はググり出してすぐに心がくじけてしまうのか - Qiita
  • Rails:Service層を運用して良かったところ、悪かったところ - Qiita

    1年前くらいにRailsの設計にDDD(ドメイン駆動設計)のService層を導入し、Modelの肥大化対策をしました。 この記事では、まずどのようなルールでService層が組み込まれているかと、1年間運用してみて良かったところ、悪かったところの感想を書きます。 [2018/05追記] 最近ではサービス層の導入は賛否両論あるようなので、導入する際は自分のプロジェクトに合っているかどうかを十分にご検討ください! Service層を導入するきっかけになった問題点 Modelの肥大化 Model間の複雑な依存関係 多数のミドルウェアの導入による複雑さの倍増 これらにより.. メンテナンスやテストがしにくい コードが整理されていないのでとにかく読みづらい Model複雑化の例 <ユーザがECサイトの商品をお気に入り(like)にするメソッドを書く場合> 処理に関連するテーブル my_itemsテ

    Rails:Service層を運用して良かったところ、悪かったところ - Qiita
  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
    tri-star
    tri-star 2017/06/14
    ドメインサービスについて
  • DDD Reference - Domain Language

    A summary of the patterns and definitions of DDD. This document is meant as a convenient reference for those who know the principles of Domain-Driven Design (DDD). It does not contain full explanations of DDD or even of the terms and patterns covered. It is intended to be used as a complement to books and other resources available to those learning about DDD. The DDD Reference contains a brief sum

    DDD Reference - Domain Language
    tri-star
    tri-star 2017/01/22
  • 「DDD パターンを活用した Laravel アプリケーション開発」を Laravel Osaka 2016 で発表しました。 - Shin x Blog

    2016/10/19 に大阪で開催された Laravel Osaka 2016 にて、「DDD パターンを活用した Laravel アプリケーション開発」を発表しました。 会場の MOTEX さん。巨大スクリーンが 2 面あり、話しやすい環境でした。 発表資料 Laravel の具体的なテクニックに比べると抽象的な内容なので、どれだけ伝えられるか思案したのですが、聞いて頂いた方からのフィードバックや参加者アンケートでも概ね良い評価を頂けたので安心しました。 ValueObject については、さらに掘り下げて話せるテーマなので、これ単体でもまた話してみたいです。 Value Object は基ですね | DDDパターンを活用した Laravelアプリケーション開発/ddd-with-laravel https://t.co/ZzRTnt0tY6— 増田 亨. (@masuda220) O

    「DDD パターンを活用した Laravel アプリケーション開発」を Laravel Osaka 2016 で発表しました。 - Shin x Blog
  • Clean Architecture + DDD + Redux + RxJavaをAndroidでやるときにどこまで分割するか問題 - Augmented Usamimi

    (追記) 記事,頭のなかを整理しきれていない状況で書いたためよくわからないことになっていますが,Clean ArchitectureやRedux,DDDの優位な点を解説するような記事ではないことをご了承いただけると幸いです. 全体の構成がどうなっているか・モチベーション・pros・cons等については後日別記事にまとめようと考えています. いま書いているアプリがClean ArchitectureになりそこねたMVPと中途半端なDDDを組み合わせたようなアーキテクチャになっている. このアプリをある程度キチンとClean ArchitectureとDDDに寄せるにあたり,DDDのレイヤ分け(Data/Domain/Presentation)をどこまで厳格にやるかで悩んでいる. 現状 だいたいこんな感じ. Data/Domain/Presentationのすみ分けはしていない 実装上は意識

    Clean Architecture + DDD + Redux + RxJavaをAndroidでやるときにどこまで分割するか問題 - Augmented Usamimi
  • [ Android ] - これからの「設計」の話をしよう | Recruit Tech Blog

    はじめまして。 6/1より入社いたしましたAndroidエンジニアの釘宮です。よろしくお願いいたします。 今日はAndroidの設計について語ってみようと思います。 その前に 「良い設計とはなにか」という議論が「正義とはなにか」という議論のようにいつまでたっても結論がでないのは、環境やチームメンバのスキルセット、ステークホルダーによって目指すべきゴールが変わるためだと考えます。 つまるところ、設計に正解はありません。 そのため以下で話すことは、「これが設計の正解だ!!」というわけではなくて、「こういう設計の仕方するとうまくいくっぽい」くらいのノリです。 あと、特にMVCとかDDDとか人によって解釈のズレが起きやすいところなどは、冗長になるのを嫌って自分の解釈で言い切っています。ご了承ください。 設計の目的について ハードルが下がったところで、早速。 まず設計の目的ってなんでしょうか? この

    [ Android ] - これからの「設計」の話をしよう | Recruit Tech Blog
  • Scalaコードでわかった気になるDDD | GREE Engineering

    みなさん、こんにちは。グリーのかとじゅん(@j5ik2o)です。 このエントリは GREE Advent Calendar 2013 の 18日目の記事です。よろしくお願いします。 私がグリーに入社してやっていることは、プログラミング言語 Scalaとドメイン駆動設計(以下、DDD)の布教活動です。布教活動といっても宣伝するだけでは具体性に欠けるので、実際に開発チームに入ってScalaやDDDの技術支援を行っています。エントリでは、Scalaを用いたDDDの設計と実装をどのように行っているかを、DDDを知らない人でもできるだけわかりやすく説明したいと思います(Scalaわかっていると読みやすいですが、あんまり複雑なコードは出てこないのでなんとなく読めるのではないかと思います)。なお、DDDの実践例は他にもあります。一例だと思って読んでいただければ幸いです(先日のSNSチームでのドメイン駆

    Scalaコードでわかった気になるDDD | GREE Engineering
    tri-star
    tri-star 2016/06/30
  • 持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP

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

    持続可能な開発を目指す ~ ドメイン・ユースケース駆動(クリーンアーキテクチャ) + 単方向に制限した処理 + FRP
  • DDD + Clean Architecture + UCDOM Full版

    http://ddd-cqrs-es.connpass.com/event/27181/ 「Reactive Messaging Patternsプレ読書会 - CQRS、ESの基を学ぶ -」の時間の都合上カットした部分も含めたフル版資料です。 Embeddedなままだと各種リンクが有効ではな…

    DDD + Clean Architecture + UCDOM Full版