Golang
ヌル安全じゃないよね?
Goではポインタのアドレス操作はできないようになっています。 またGoのnilは必ず型情報が付与されるので、 レシーバがnilでもメソッドを呼んだりできます。
なるほどすぎる。
つまりGoのポインタ型はOptionalと同等なのです。 GoのポインタもOptionalも本質は変わらない。 空かどうかチェックしてから参照するだけです。
例外処理が無いの不便では?
例外処理はエラー通知を一旦集約してしまうのと広域離脱があるおかげで 集中してハンドリングロジックを書くことができたのが大きな利点だったのですが、 非同期エラー通知のハンドリングを別のところに書かなきゃいけない状態になりました。
確かに。
Goの場合、error型の戻り値を愚直にチェックする文化。 各層が下位のエラーハンドリングの責務を常に意識させられます。 エラーを受け取ったらログに書くのかコンテキストを加えて上層に投げるのか、 破棄するのか、リトライするのかといった判断を迫られます。 エラーが発生したら即対応することで発生箇所とハンドリングが近くなりトラブルシュートコストは低く抑えられます。
なるほど。