Panda Noir

JavaScript の限界を究めるブログでした。最近はいろんな分野を幅広めに書いてます。

Goのコードは読みにくい

基本的に人間はFの字で文を読もうとします。そのため、重要情報は縦で揃えると読みやすくなります。

最悪な点: if文を無視して読むことが出来ない

Goでは以下のような構文が頻出します。

if err := hoge(); err != nil {
}

次の問題をこの構文は抱えています。

  1. if文なのに条件式のところが処理になってしまっている
  2. err != nilerr == nilで意味が真逆になってしまうので、最後まで読まなければ意図がつかめない

通常、if文は飛ばしならが読むことが出来ます。なぜなら、リーダブルにコードを書くと、if文は「ある特定のパターンのときのみ処理する」ように書けるからです。特定パターンのとき以外、if文を読む必要がないということです。

しかし、Goの場合はif内に処理が組み込まれてしまいます。そのため、水平に最後までifを読まなければならず、読むスピードがガクッと下がります。

良い点: 型を後ろに書ける

最悪な点を先に書きましたが、Goの構文にはいいところもあります。最高な点ではないのが残念ですが。

var x float32 = 1
func fuga(n Network) {
}

重要な情報(変数名)が先で、修飾語(型)が後ろに置いてあるので、流れるように読むことが出来ます。