SoftwareDesign 2019.5
http://image.gihyo.co.jp/assets/images/cover/2019/641905.jpg
感想
Goが開発された経緯がわかる。Goに対して愛着が増す。
(あまり読めていないが) TCP/IPネットワーク技術の項目は極めて良さそうだった。
/icons/hr.icon
Notes
Go入門
Goが生まれた背景は読み物として面白い
チーム開発をする際に、メンバー内の環境差異を低減できる仕組みが多く揃っている
Effective Go
お作法として、go fmtは当然としてgolint, go vetを使うべし。errcheckとmaligendなども活用すべし。
C言語と同様、アライメント (メモリに載せるデータの並び) を意識したほうがメモリ効率が良くなることもある。 (コンパイラは最適化してくれないのかな?) こういったものを指摘してくれるのがmaligend。
Goは長い名前付けには否定的。interfaceにはerを付けるのが良いとされている。
fmt.Stringerを有効活用しよう。やることは String()というメソッドを定義するだけ。 --> fmt.Printlnするときのフォーマットを指定できる
Go Patterns : Goでアプリケーションを作る際の慣用的な実装パターンを集めたサイト
Goはダック タイピングをサポートしている
インターフェースと実装の流れ (Carを使った説明だが、何とも理解が難しい) 。とにかくインターフェースと実装を分けてテストを容易にすることを心がけるべし。モックを簡単に注入できる構成を考慮すべし。当たり前のことだけど、Goは言語レベルでこれがやりやすくなっている感じがする。
(あまり読む時間がないまま、図書館の返却期限を迎えてしまった。GoよりもTCP/IPの項目のほうが面白そうだった感が否めない。デジタル版、あるいは中古で買って手元に置いておきたい内容だった。)
/icons/hr.icon