不要在一個表示式中包含太多
- 為計算單元找到有意義的名稱。
- 使用
for
comprehensions 或map
將計算組合在一起。
假設你有這樣的事情:
if (userAuthorized.nonEmtpy) {
makeRequest().map {
case Success(respone) =>
someProcessing(..)
if (resendToUser) {
sendToUser(...)
}
...
}
}
如果你的所有函式都返回 Either
或類似 Validation
型別,你可以寫:
for {
user <- authorizeUser
response <- requestToThirdParty(user)
_ <- someProcessing(...)
} {
sendToUser
}