基本的に人間はFの字で文を読もうとします。そのため、重要情報は縦で揃えると読みやすくなります。
最悪な点: if文を無視して読むことが出来ない
Goでは以下のような構文が頻出します。
if err := hoge(); err != nil { }
次の問題をこの構文は抱えています。
- if文なのに条件式のところが処理になってしまっている
err != nil
とerr == nil
で意味が真逆になってしまうので、最後まで読まなければ意図がつかめない
通常、if文は飛ばしならが読むことが出来ます。なぜなら、リーダブルにコードを書くと、if文は「ある特定のパターンのときのみ処理する」ように書けるからです。特定パターンのとき以外、if文を読む必要がないということです。
しかし、Goの場合はif内に処理が組み込まれてしまいます。そのため、水平に最後までifを読まなければならず、読むスピードがガクッと下がります。
良い点: 型を後ろに書ける
最悪な点を先に書きましたが、Goの構文にはいいところもあります。最高な点ではないのが残念ですが。
var x float32 = 1 func fuga(n Network) { }
重要な情報(変数名)が先で、修飾語(型)が後ろに置いてあるので、流れるように読むことが出来ます。