絵描きエンジニアの日常スマートフォン用の表示で見る絵描きエンジニアの日常この広告は、90日以上更新していないブログに表示しています。2018-12-23送金メソッドを考えるこれは例だが、口座Aから口座Bへお金を送金するといった処理をどのように書くかで悩んでいる。送金だけでなく、ユーザーAがユーザーBをフォローするといった操作でも同じように困る。何に困るかと言うと、引数の取り違えが起こりそうだからなんとかしたいなと思っている。今回の話で前提としているのは3層+ドメインモデルのアーキテクチャで以下のリポジトリを参考にしているので参照してみてほしい。github.comapplication層に送金メソッドを作って、ControllerやBatchなどから送金を依頼されるというユースケースを考えている。愚直に考えるとこんな感じだろうか。省略して書いているのであしからず。ここでfromBankAccountとtoBankAccountの順番を間違えてもコンパイルエラーにならない。FromBankAccount作るときに間違えるかもしれないけどまだマシかも。ラベル引数できればよかったのにね。"...";}ちょっと面倒だけど、型を作ってラベルとしての役割をもたせてみる。順番でやるよりはコードを見たときに「あれ?これミスってね?」と気付けるチャンスが増えているのでまぁマシ。TransferRequestを渡すTransferRequestを作って送金依頼をするパターン。ラベル感があって間違えにくいかも。"...";}BankAccountにtransferメソッドを生やすEntityやValueObjectができる操作は限られていて、主にできることは計算/判断/変換でDBを叩いたりWebAPIを叩くことはできない。(ActiveRecordみたいに何でもやるマンにすると仕事し過ぎかなってきがする。いえそう呼び出したい気持ちがあるので、TransferRequestを作るメソッドを生やす案を考えてみた。}}Controllerでの呼び出しはこんなかんじだろうか。"...";}なんかアリな気がしないでもない。筋は良さそう?引数を非対称にする送金元はEntity、送金先はIdオブジェクトとすることでミス防ごうという案。"...";}これは面白いかもしれない。クラスを作るのが面倒なときとかの妥協案として選ぶのはアリ寄りのアリかもしれない。結局どれがいいんでしょうね?BankAccount#transferのパターンは結構筋良さそうな気がする。2日目kubernetesに入門してみる見積もりの差分から議論したいね月別アーカイブはてなブログをはじめよう!orekyuuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。