PHPエンジニアが転職してGoを書き始めたら楽しくなってきた話.pdf
by
シュプレ
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
PHPエンジニアが 転職してGoを書き始めたら 楽しくなってきた話 シュプレ(@spre55) 1
Slide 2
Slide 2 text
1.転職してもうすぐ半年経ちます 2
Slide 3
Slide 3 text
ソーシャルゲームの会社で2年くらい勤めたタイミングで、 転職をしようと思っていたら、友人から声をかけられ そのままGCPのパートナーの会社へJOIN 転職しました 3
Slide 4
Slide 4 text
転職前までやってきたこと ブラウザで動作するソーシャルゲームを作っていた。 主に、 ◆PHP ◇SASS をかいていた。 PHPに関しては自社製MVCフレームワークをつかっていた。 4
Slide 5
Slide 5 text
転職してから GCP、中でもGAEを使った開発。 最近はGAEとGoとFirebase Auth周りをいじいじしてる。 5
Slide 6
Slide 6 text
2.今どんなことをやっているか 6
Slide 7
Slide 7 text
GAE: Google App Engine 特徴 ◆チュートリアルやって10分でHelloWorldを全世界に公開できるスピード感 ◇基本的にGoogleにお任せなので楽 (スケーリング/負荷分散/ヘルスチェックなど) 7
Slide 8
Slide 8 text
Python 2.7 / 3.7 Java 7 / 8 Node.js 8 / 10 PHP 5.5 / 7.2 Go 1.9 / 1.11 8 GAEのサポート言語
Slide 9
Slide 9 text
GAE/Go ◆Go 1.11に対応しました。 ー app.yamlに依存していた部分の緩和 ー 使ったことない人は使ってみよう! 9
Slide 10
Slide 10 text
Firebase Authentication 特徴 ◆アプリ/サービスの認証を簡単に実装できるようにしてくれるサービス ◇サインアップ/ログイン機能やソーシャル連携を手軽に実装できる 10
Slide 11
Slide 11 text
パスワード/電話番号 フェデレーションIDプロバイダ カスタムプロバイダ 各プロバイダ認証をサポート 11
Slide 12
Slide 12 text
12
Slide 13
Slide 13 text
3.Goをいじってみて感じたこと 13
Slide 14
Slide 14 text
Goの最初の印象(いじる前の印象) if err != nil { return nil, err } 14 // コードが長くなるイメージ // めんどくさそう
Slide 15
Slide 15 text
1.GOPATH ? GOROOT ? / goenv ? dep ? ◆ エディタの設定 ◇ バージョン関係管理ツール ◆ 依存関係管理ツール 15
Slide 16
Slide 16 text
2.シンタックスエラーをひたすら吐かれ・・・ ◆未使用パッケージのインポートでエラー ◇未使用変数の定義でエラー ◆「:=」で定義するところを「=」にしてた ◇型の不一致でエラー 16
Slide 17
Slide 17 text
3.配列の操作が慣れず・・・ ◆ソート ◇存在チェック ◆マージ ◇特定の値のチェック などなど 17
Slide 18
Slide 18 text
3.配列の操作が慣れず・・・ ◆PHPにおける配列 適当でよかった(全部array) ◇Goにおける配列 固定長(array)と可変長(slice)を意識する必要がある 18
Slide 19
Slide 19 text
4.DDDがわからん わからん 19
Slide 20
Slide 20 text
思ったより動的型付け言語 にあたまをやられていた 20
Slide 21
Slide 21 text
実際にPRについたコメントを載せる 21 ライブラリをコメントアウトしていたときのコメント ▼
Slide 22
Slide 22 text
実際にPRについたコメントを載せる 22 一文字変数の洗礼を受けたときのコメント ▼
Slide 23
Slide 23 text
実際にPRについたコメントを載せる 23 エラーを握りつぶしたときのコメント ▼
Slide 24
Slide 24 text
そして引き起こされるドメインモデル貧血症 24 ユースケース層が肥大化したときのコメント ▼
Slide 25
Slide 25 text
じゃあ、Goは不便なの? 25 ー そんなことはない
Slide 26
Slide 26 text
26
Slide 27
Slide 27 text
やり方はいろいろある 27 郷に入っては郷に従おう そうすると見えてくるものがある
Slide 28
Slide 28 text
社内で輪読会開いてみたり・・・ 28
Slide 29
Slide 29 text
挫折して、DDD Quicklyに走り・・・ 29
Slide 30
Slide 30 text
なんとか(ほぼ)一巡しました 30 https://www.infoq.com/jp/minibooks/domain-driven-design-quickly
Slide 31
Slide 31 text
まとめ いままで自分は,PHP の寛容さに頼って、 連想配列に適当にバンバンぶちこみ、 脳死でライブラリ使っていた・・・ それに気づかせてくれたGo そんなGoには感謝しかない 31
Slide 32
Slide 32 text
ありがとう 32
Slide 33
Slide 33 text
ありがとう 33 シュプレ@spre55
Slide 34
Slide 34 text
クラウドエースは絶賛エンジニア募集中 ◆ 一緒にGCPを盛り上げてくれるエンジニア募集 ◇ いっしょにタダ飯いこう! 興味のある方はシュプレ(@spre55)まで 34