2022-09-01から1ヶ月間の記事一覧

クロージャ・to_proc

クロージャ 関数が内包するスコープを保持する性質 rubyのような手続型プログラミングにも、関数型プログラミングのような記法が存在する。 いわゆるブロックがrubyでいうクロージャに当たる。 rubyでは、do endや{}で囲まれた、メソッドのような手続きをブ…

Serviceオブジェクト

エンティティに最重要ビジネスデータと最重要ビジネスロジックを持たせて、ユースケースを考えて、詳細は方針に依存して、、 あれ、ユースケースの小さく分解したロジックってどこに書けば良いんだろう?と思った。 サービスオブジェクトに書くことが多いと…

ActiveModel::Attributes POROの属性をネイティブ型のまま保存するAPI

UI層から送られてきたparamsを、期待する属性のままデータベースに保存させるためのAPI POROなクラスでparamsを処理する時、通常だとデータがstringとして保存されてしまう。 例えば、勤務時間のレポートを作るクラスがあるとする。 ユーザーがフォームに出…

集約・集約ルート(DDD)

クリーンアーキテクチャ、DDDの学習をしていて、「集約・集約ルート」という言葉が理解できなかった。 集約だから、何かを一箇所に集めるのかな?そして、集めたものの根本が存在するのかな?という認識だった。 データ中心でモデリングを行うと、 ドメイン…

個人開発で作ったサービスをClean Architectureの視点で作り替える

豆腐、納豆、豆乳、玄米、鶏胸肉、プロテイン、オートミールという生活に飽きてきた24歳です。 最近、オブジェクト指向設計って何か、Cleanなソフトウェアを作るってなんなのかに興味が湧いています。 設計を学んでいくと、なぜ凝集度や結合度、そしてリーダ…

「Clean Architecture 達人に学ぶソフトウェアの構造と設計」所感

フランスから帰国しました。「彼女がお盆で家族に会うために帰省するのに同行した」ような感じでした。フランスにお盆という習慣は無いのですが、まあそんな感じです。 父、母、姉家族✖️2、彼女、僕という異様な光景で、さながらサマーウォーズのフランス版…