Slide 1

Slide 1 text

元phperから見た Goの良いところ 2024/04/11 Go Connect #0

Slide 2

Slide 2 text

自己紹介 – ちひろ – X: @chiroruxxxx – 株式会社モリサワ – 1年前に転職して phperからgopherに

Slide 3

Slide 3 text

Goの良い ところ – Goいいな!と思ったポイントを3つほど紹介したいと思います – 思ったよりもあんまり・・・というところも紹介します

Slide 4

Slide 4 text

余談: 八方美人

Slide 5

Slide 5 text

いいな! と思ったポイント

Slide 6

Slide 6 text

多値返却・タプル代入

Slide 7

Slide 7 text

多値返却 タプル代入 – Goの根幹を支える機能 – 多値を返したいことは多い – PHPでは配列(マップ)で無理やり多値を返すコードも・・・ – 乱用注意

Slide 8

Slide 8 text

ゼロ値

Slide 9

Slide 9 text

ゼロ値 – 便利すぎる – nilチェック、デフォ値の設定など メインロジックと離れたコードを削れる – Cmp.Or()でより価値が高まるか – たまにバグのもとになる

Slide 10

Slide 10 text

遅延関数呼び出し

Slide 11

Slide 11 text

遅延関数 呼び出し – defer が便利 – 関数切り出しのタイミングにもなる

Slide 12

Slide 12 text

思ったよりも・・・ なポイント

Slide 13

Slide 13 text

Slide 14

Slide 14 text

型 – 型による恩恵はさほど変わらず – 現在のPHPは型のディストピア – 少しでも緩い型を書くと静的解析に怒られる – Goはジェネリクス・ユニオン・インターセクション型が限定的 – 今後に期待!

Slide 15

Slide 15 text

フォーマット

Slide 16

Slide 16 text

フォーマット – 標準のフォーマッタがある(gofmt) – プロジェクト横断で同じフォーマットでコードを読める!? – ・・・という夢があった – プロジェクトごとに違うgolangci-lintの設定

Slide 17

Slide 17 text

まとめ

Slide 18

Slide 18 text

まとめ – 良かった! – 多値返却・タプル代入 – ゼロ値 – 遅延関数呼び出し – 思ったよりも・・・ – 型 – フォーマット