タグ

DDDとrailsに関するclavierのブックマーク (8)

  • 似非サービスクラスの殺し方 / #ginzarb

    ぎんざRuby会議LT資料

    似非サービスクラスの殺し方 / #ginzarb
  • DDDを使ってRailsアプリをリファクタリング - Qiita

    経緯 casyというインターネットを使って手軽に家事代行を頼むことができるサービスのプログラマをしています。 Webだけでなく、スマホアプリも出すことにあたり、Webアプリサーバ(Rails)から機能を切り出し、APIサーバ(Rails)を別途作成し、Webアプリの場合はWebアプリサーバからAPIサーバを呼び出し、アプリからは直接APIサーバを呼び出すような仕組みにしました。 ただ、全部の機能をAPIサーバに移すのは容易なことではなかったため、いくつかの機能はまだWebアプリサーバに残っていて、アプリよりもWebのほうが機能が多い状態となっています。 今回残りの機能をAPIサーバに持ってくるにあたり、下記2つのアプローチがありました。 1. 既存のソースコードからViewを切り離してほぼそのまま持ってくる 2. 設計を見直し、大幅にリファクタする チーム内で議論した結果、スタートアップと

    DDDを使ってRailsアプリをリファクタリング - Qiita
  • FiNC DDD第一回勉強会

    ドメインロジックに集中する。ソフトウェアの中核課題は、ドメインオブジェクトの分析設計。モデル、要件定義、仕様記述という分析活動を実践するための3つの技法(DDD,RDRA,ICONIX)を簡単に紹介。

    FiNC DDD第一回勉強会
  • Rails:Service層を運用して良かったところ、悪かったところ - Qiita

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

    Rails:Service層を運用して良かったところ、悪かったところ - Qiita
  • RailsでDDD - Qiita

    別のアプローチによる実装の記事を書きました。 よろしければこちらもご覧ください。 「かんばん」を、DDDで設計しRailsで実装してみました。 kanban_core_extension 現時点では、最小限の機能しかありませんが ドメイン駆動設計をRailsで実装する際の一例として参考になれば幸いです。 アプリケーションの機能 開発するフィーチャ(タスク)をカードで表現し、進捗状況をかんばんボードで可視化する カードを次のフェーズ(進捗の区切り)に進める時にWIP制限をチェックする アーキテクチャスタイル Event SourcingなしのCQRSです。 変更(Command)の時だけドメインモデルを使います。 問い合わせ(Query)では、必要なデータをデータベースから直接取得します。 リポジトリからドメインモデルを取得することはしません。 取得したデータは構造化されたオブジェクトですが

    RailsでDDD - Qiita
  • Rails でドメインロジックの実装方法まとめ - assertInstanceOf('Engineer', $a_suenami)

    このエントリは Ruby on Rails Advent Calendar 2014 の 7 日目のエントリです。 前日は seri_k さんの「Turbolinksさんと上手く付き合う10の方法」でした。 お詫び WIP です。公開期限に間に合わない可能性があるため、まだ途中ですが先に公開してしまいました。 サンプルコード等を後ほど追記する予定です。 → 12/08 18:10 追記しました。 Rails のファットモデル問題 Rails で構築したアプリケーションが大規模になり機能が増えていくにつれてモデルが大きくなり、そのうち手がつけられなくなる問題は古くから指摘されています。これについてはもはや詳細を述べるまでもないと思うので割愛しますが、この問題は 2014 年になった今でも多くの開発チームを悩ませていると感じています*1。 このエントリでは、普段 Rails を業務で使いながら

    Rails でドメインロジックの実装方法まとめ - assertInstanceOf('Engineer', $a_suenami)
  • Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)

    この記事はRuby on Rails Advent Calendar 2013の6日目の記事です。 前日は @tkawa さんの「Favoriteの設計実装はパターンとして使える」でした。 Railsで適切に責務を分割するということ RailsはいわゆるMVCと呼ばれるアーキテクチャパターンにのっとったフレームワークであり、プロジェクトを作成するとデフォルトでmodels/、views/、controllers/などのディレクトリが作成されます。 基的にロジックを記述する場所はモデルであり、ビューには表示処理だけを、コントローラにはアプリケーション上必要な手続きだけを記述するべきであると一般的には言われています。*1 ただ、それを忠実に実践していった結果、モデルが肥大化しメンテナンシビリティやテスタビリティが低下するという問題も多く指摘されています。 これについては4日目に @joker

    Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)
  • java-ja.dddで質問し損ねた事をt_wadaさんにがっつり聞いてみた

    java-ja.dddの終了後、編で時間が無くて質問できなかった事、Rails4で規約に組込まれたconcernという横断的関心事と、Rubyでのモジュールを活用した振舞いの分離が、ドメインモデルを考える上でどう関わってくるのか、という疑問について、t_wadaさんに質問してみた際のやり取り。 長丁場のイベントが終わった後に、しっかり返答してくれたt_wadaさんに感謝!

    java-ja.dddで質問し損ねた事をt_wadaさんにがっつり聞いてみた
  • 1