1.1 Goの概要
Goには組織で大規模に言語を採用する際に活用される、いくつかの本質的な特徴がある
- 安定性(stabilty)
- 頻繁にアップデートがされているが、安定した言語である。安定性をGoの最大の特徴と考える人もいる
- 表現力(expressivity)
- プログラミングの表現力は、いかに自然で直感的にコードを書いたり読んだりすることだと定義できる。予約後の数を減らし、一般的な問題を解決する方法を限定することで、大規模なコードベース向けの表現力豊かな言語になっている
- コンパイル(compilation)
- 高速なコンパイル時間が生産性を高める。
- 安全性(safety)
- 強力な静的型付け言語なので、コンパイル時の規則が厳しく、それにより、ほとんどの場合にコードの安全性が保証される
1.2 単純であれば容易であるとは限らない
- 熟練したGo開発者になるには、Go言語の多くの側面を徹底的に理解する必要があり、それには、時間・努力・失敗が必要。
1.3 100個のGoの間違い
- 2011年の論文(下記URL)で、神経科学者たちは脳の成長に最適なのは間違いに直面している時だと証明した
- 100tipsでは間違いを大きく7つに分類して紹介している
- バグ
- 不必要な複雑さ
- 可読性の低下
- 最適ではない、又は慣用的ではないソフトウェア構成
- APIの利便性の欠如
- 最適化されていないコード
- 生産性の欠如
1.31 バグ
- ソフトウェアのバグ
- 2020年の調査では米国内だけでもソフトウェアのバグコストは2兆ドルを超えると試算されている
- 悲劇的な影響を与えることもある。ソフトウェアの競合状態のために、期待値以上の放射線を与え死に繋がった事例もある。開発者として、自分たちの仕事がいかに影響を与えるものであるか忘れてはならない