Login
Sign Up For Free
English
中文 (繁體)
中文 (香港)
中文 (简体)
日本語
Filipino
Bahasa Indonesia
Bahasa Melayu
Pусский
Português (Brasil)
Magyar
Français
Español
Deutsch
Čeština
العربية
Català
Dansk
Ελληνικά
فارسی
Suomi
Gaeilge
Hindi
עברית
Hrvatski
Italiano
Norsk bokmål
Nederlands
한국어
Polski
Română
Slovenský
Svenska
Türkçe
українська
беларуская
ไทย
Standard view
蒼時 v2.0-beta+1
說
4 weeks ago
之前在想 Controller 到底該放什麼的時候也是花不少時間思考,最近就剛好在 Golang 遇到同時提供 Lambda 做 API Gateway 和 Handler 的情境有需要呼叫同一個流程,此時如果讓 UseCase 實作在 Controller 就會變得需要維護兩份相同的程式碼了⋯⋯
Controller - 重新思考 Rails 架構
latest #8
炸蝦子
4 weeks ago
我自己心中的理想是controller把service class的business logic回傳object轉成response object / catch exception 轉成 response status
蒼時 v2.0-beta+1
說
4 weeks ago
joshua5201
: 目前有聊過的人,實踐 Clean Architecture 最後都會是這個形狀 XD
蒼時 v2.0-beta+1
說
4 weeks ago
忘記是看到底幾次時才發現 Clean Architecture 把 Controller 標記成 Adapter 所以定義上確實是做 Input/Output 的轉換最接近
立即下載
蒼時 v2.0-beta+1
說
4 weeks ago
後面我覺得比較難的就是 Service Object 到底該看作一種 Use Case 會在 Controller 呼叫 N 個,還是看作是另一種物件,由 Use Case 統一調度
我個人目前是偏好後者,這樣在做不同協定時比較好處理,如:gRPC 要加進來時,呼叫 Use Case 就好,不用再搬一次 Controller 的內容
不過這也會有另一個問題,如果要組 Input/Output 會一大包,對 Use Case 來說有點麻煩
炸蝦子
4 weeks ago
對啊 其實我沒有讀過clean architecture
但我知道 通常很複雜的邏輯 第一層service class比較像是乾淨的entry point,他的input/output/exception不必跟實際的protocol有關連
它還是會有很多dependency 最
有些爛code就是覺得我沒有寫在controller就乾淨了 但service class幾千行XD
炸蝦子
4 weeks ago
我也不喜歡在controller call好幾個service method這樣就有點把business logic混進去
蒼時 v2.0-beta+1
說
4 weeks ago
Service Object 幾千行有點看語言,之前寫 Ruby 的時候大多可以控制在 100 行左右,我在 Golang 要做類似的事情就得多很多 if 去檢查,塞一塞可能會到 150 ~ 200 之類的
另一方面是目前在慢慢抓 Domain-Driven Design 的形狀,現在反而是比較擔心拆太細在初期有點過度 XD
蒼時 v2.0-beta+1
說
4 weeks ago
我自己讀過 Clean Architecture、Design Pattern 這些之後,都覺得基本上就是經驗總結,寫程式有在動腦大部分都能抓到類似的方向,讀過就是少走歪路
如果寫程式沒在思考,讀了寫出來還是一樣糟,可能還會因為硬要照某些實踐搞出更恐怖的東西
back to top
delete
reply
edit
cancel
cancel