Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PHPエンジニアが転職してGoを書き始めたら楽しくなってきた話.pdf
Search
シュプレ
January 28, 2019
Technology
2
1.2k
PHPエンジニアが転職してGoを書き始めたら楽しくなってきた話.pdf
シュプレ
January 28, 2019
Tweet
Share
More Decks by シュプレ
See All by シュプレ
エンジニア(?)にオススメの本
spre55
0
160
GCP使ってテスト自動化したい.pdf
spre55
0
250
はじめてのCode4兄弟
spre55
0
290
2016HACKDAYS_52_HelloAgain
spre55
0
78
LANケーブル圧着入門
spre55
0
110
できるSEO! ver 2.1
spre55
0
62
Web班番外編 jQuery
spre55
0
130
pre講義 jQuery
spre55
0
100
Other Decks in Technology
See All in Technology
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1.1k
使いやすいプラットフォームの作り方 ー LINEヤフーのKubernetes基盤に学ぶ理論と実践
lycorptech_jp
PRO
1
160
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
なぜテストマネージャの視点が 必要なのか? 〜 一歩先へ進むために 〜
moritamasami
0
240
MagicPod導入から半年、オープンロジQAチームで実際にやったこと
tjoko
0
110
20250910_障害注入から効率的復旧へ_カオスエンジニアリング_生成AIで考えるAWS障害対応.pdf
sh_fk2
3
280
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
540
Autonomous Database - Dedicated 技術詳細 / adb-d_technical_detail_jp
oracle4engineer
PRO
4
10k
複数サービスを支えるマルチテナント型Batch MLプラットフォーム
lycorptech_jp
PRO
1
970
今日から始めるAWSセキュリティ対策 3ステップでわかる実践ガイド
yoshidatakeshi1994
0
120
2025/09/16 仕様駆動開発とAI-DLCが導くAI駆動開発の新フェーズ
masahiro_okamura
0
140
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
460
Featured
See All Featured
Build your cross-platform service in a week with App Engine
jlugia
231
18k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
The Art of Programming - Codeland 2020
erikaheidi
56
13k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Embracing the Ebb and Flow
colly
87
4.8k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
VelocityConf: Rendering Performance Case Studies
addyosmani
332
24k
The Language of Interfaces
destraynor
161
25k
Designing for humans not robots
tammielis
253
25k
Unsuck your backbone
ammeep
671
58k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
PHPエンジニアが 転職してGoを書き始めたら 楽しくなってきた話 シュプレ(@spre55) 1
1.転職してもうすぐ半年経ちます 2
ソーシャルゲームの会社で2年くらい勤めたタイミングで、 転職をしようと思っていたら、友人から声をかけられ そのままGCPのパートナーの会社へJOIN 転職しました 3
転職前までやってきたこと ブラウザで動作するソーシャルゲームを作っていた。 主に、 ◆PHP ◇SASS をかいていた。 PHPに関しては自社製MVCフレームワークをつかっていた。 4
転職してから GCP、中でもGAEを使った開発。 最近はGAEとGoとFirebase Auth周りをいじいじしてる。 5
2.今どんなことをやっているか 6
GAE: Google App Engine 特徴 ◆チュートリアルやって10分でHelloWorldを全世界に公開できるスピード感 ◇基本的にGoogleにお任せなので楽 (スケーリング/負荷分散/ヘルスチェックなど) 7
Python 2.7 / 3.7 Java 7 / 8 Node.js 8
/ 10 PHP 5.5 / 7.2 Go 1.9 / 1.11 8 GAEのサポート言語
GAE/Go ◆Go 1.11に対応しました。 ー app.yamlに依存していた部分の緩和 ー 使ったことない人は使ってみよう! 9
Firebase Authentication 特徴 ◆アプリ/サービスの認証を簡単に実装できるようにしてくれるサービス ◇サインアップ/ログイン機能やソーシャル連携を手軽に実装できる 10
パスワード/電話番号 フェデレーションIDプロバイダ カスタムプロバイダ 各プロバイダ認証をサポート 11
12
3.Goをいじってみて感じたこと 13
Goの最初の印象(いじる前の印象) if err != nil { return nil, err }
14 // コードが長くなるイメージ // めんどくさそう
1.GOPATH ? GOROOT ? / goenv ? dep ? ◆
エディタの設定 ◇ バージョン関係管理ツール ◆ 依存関係管理ツール 15
2.シンタックスエラーをひたすら吐かれ・・・ ◆未使用パッケージのインポートでエラー ◇未使用変数の定義でエラー ◆「:=」で定義するところを「=」にしてた ◇型の不一致でエラー 16
3.配列の操作が慣れず・・・ ◆ソート ◇存在チェック ◆マージ ◇特定の値のチェック などなど 17
3.配列の操作が慣れず・・・ ◆PHPにおける配列 適当でよかった(全部array) ◇Goにおける配列 固定長(array)と可変長(slice)を意識する必要がある 18
4.DDDがわからん わからん 19
思ったより動的型付け言語 にあたまをやられていた 20
実際にPRについたコメントを載せる 21 ライブラリをコメントアウトしていたときのコメント ▼
実際にPRについたコメントを載せる 22 一文字変数の洗礼を受けたときのコメント ▼
実際にPRについたコメントを載せる 23 エラーを握りつぶしたときのコメント ▼
そして引き起こされるドメインモデル貧血症 24 ユースケース層が肥大化したときのコメント ▼
じゃあ、Goは不便なの? 25 ー そんなことはない
26
やり方はいろいろある 27 郷に入っては郷に従おう そうすると見えてくるものがある
社内で輪読会開いてみたり・・・ 28
挫折して、DDD Quicklyに走り・・・ 29
なんとか(ほぼ)一巡しました 30 https://www.infoq.com/jp/minibooks/domain-driven-design-quickly
まとめ いままで自分は,PHP の寛容さに頼って、 連想配列に適当にバンバンぶちこみ、 脳死でライブラリ使っていた・・・ それに気づかせてくれたGo そんなGoには感謝しかない 31
ありがとう 32
ありがとう 33 シュプレ@spre55
クラウドエースは絶賛エンジニア募集中 ◆ 一緒にGCPを盛り上げてくれるエンジニア募集 ◇ いっしょにタダ飯いこう! 興味のある方はシュプレ(@spre55)まで 34