おちんぽに理解らせられちゃったのか
@babukaru @MulticolorWorld ちんぽギュイイイイイイイイイィィィィィイィイイイィイィィィイイイインっ
BGM流しながらノリノリで仕事してたらAmazonがオートロックをすり抜けていきなり玄関のチャイムを鳴らしてきてビビり散らかした
結局usecaseでtx取らないと複数repo触れない状況が出てくるし完全に分離するならクソデカrepoが爆誕して終わる
@MulticolorWorld 大元のdb接続はコネクションプールの兼ね合いもあるからmain.goに潔く置いてる initdbライクな物はmainで作った*xorm.Engineをpersistenceに渡して…って感じ persistenceはrepo i/fを返すけど、その2つにWithTxを埋め込んでて、usecaseでrepo.StartTxを呼ぶとtxが返るからあとはTxが必要な操作の関数の第一引数にtxを引き回してる
大昔はモックを使っていただろうけど今はCircleCIなりでPostgresのコンテナをそのまま動かせば実環境とほぼ同じ構成でテストできてしまうので
ただトランザクションが必要なのは複数テーブルに書き込むときだから空実装を渡したとして結果整合だから何の意味もないんだよな
Repositoryにinterface WithTransactionを埋め込んでるから何もしないWithTransaction実装を置いとけばできないことはないようにしてる
@shibafu528 @MulticolorWorld @MulticolorWorld @babukaru @karubabu @risa @mitarashi_dango @ohagi @risa うおおおおおおおおおおおおあああああああああああああああああああああああああああああああ!!!!!!!!!!! (ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)
@MulticolorWorld@ap.jadiunr.net@ap.jadiunr.net うおおおおおおおおおおおおあああああああああああああああああああああああああああああああ!!!!!!!!!!! (ブリブリブリブリュリュリュリュリュリュ!!!!!!ブツチチブブブチチチチブリリイリブブブブゥゥゥゥッッッ!!!!!!!)