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
Goではじめるバックエンド開発
Search
ak2ie
June 17, 2023
Technology
0
64
Goではじめるバックエンド開発
2023/06/17「【Developers Guild】バックエンドエンジニア交流会」での発表資料です
ak2ie
June 17, 2023
Tweet
Share
More Decks by ak2ie
See All by ak2ie
SVG完全に理解してグラフ書いてみた
ak2ie
0
38
Go言語CLIツールで生産効率UPした話
ak2ie
0
110
Notion APIと学ぶNext.js
ak2ie
0
550
NestJSのはじめ方
ak2ie
0
140
フロントエンドでDDDやってみた
ak2ie
0
76
初心者がシビックテックに参加してみた
ak2ie
0
110
Firebase についてとことん語りたい
ak2ie
0
110
D3.jsでグラフを描いてみた
ak2ie
0
110
Flutterはじめます
ak2ie
0
150
Other Decks in Technology
See All in Technology
品質視点から考える組織デザイン/Organizational Design from Quality
mii3king
0
210
EncryptedSharedPreferences が deprecated になっちゃった!どうしよう! / Oh no! EncryptedSharedPreferences has been deprecated! What should I do?
yanzm
0
470
AIをプライベートや業務で使ってみよう!効果的な認定資格の活かし方
fukazawashun
0
100
dbt開発 with Claude Codeのためのガードレール設計
10xinc
2
1.3k
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
Evolución del razonamiento matemático de GPT-4.1 a GPT-5 - Data Aventura Summit 2025 & VSCode DevDays
lauchacarro
0
210
Terraformで構築する セルフサービス型データプラットフォーム / terraform-self-service-data-platform
pei0804
1
190
[ JAWS-UG 東京 CommunityBuilders Night #2 ]SlackとAmazon Q Developerで 運用効率化を模索する
sh_fk2
3
450
2025年夏 コーディングエージェントを統べる者
nwiizo
0
180
サラリーマンの小遣いで作るtoCサービス - Cloudflare Workersでスケールする開発戦略
shinaps
2
470
「何となくテストする」を卒業するためにプロダクトが動く仕組みを理解しよう
kawabeaver
0
420
AWSを利用する上で知っておきたい名前解決のはなし(10分版)
nagisa53
10
3.2k
Featured
See All Featured
Art, The Web, and Tiny UX
lynnandtonic
303
21k
Music & Morning Musume
bryan
46
6.8k
Designing for Performance
lara
610
69k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
810
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Facilitating Awesome Meetings
lara
55
6.5k
Build The Right Thing And Hit Your Dates
maggiecrowley
37
2.9k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
BBQ
matthewcrist
89
9.8k
How GitHub (no longer) Works
holman
315
140k
Transcript
Goではじめる バックエンド開発 2023/06/17
自己紹介 • 名前:ak2ie • 職業:Webエンジニア • 好きなもの:コーヒー、YouTube
バックエンド どんな言語で開発してますか?
Ruby on Rails?
PHP?
TypeScript?
Go!
目次 • Goとは • Goを使っている企業 • Goの特徴 • HTTPサーバー •
テスト • DB操作
Goとは • Googleが2012年にリリースしたプログラミング言語 • マスコットキャラクターはGopher(ゴーファー) • 半年に1度バージョンアップし、最新バージョンは1.20 • ver.1系は後方互換性があるので、仕事でも安心して使える by
Renée French
Goを使っている企業 • メルカリ ◦ メルカリUSのバックエンドで採用 • ヤフー ◦ 分散オブジェクトストレージをGoで実装 https://findy-code.io/engineer-lab/go-findy-event-1
https://www.slideshare.net/techblogyahoo/go-go-conference-2017-spring
Goの特徴 • 静的型付き言語 • シンプルな構文(ループはfor文のみ) • 標準ライブラリが充実 ◦ HTTPリクエスト処理 ◦
DB操作 ◦ テスト • Goを初めて学ぶ方は「プログラミング言語 Go完全入門」がおすすめ http://tenn.in/go
HTTPサーバー • 標準ライブラリでHTTPリクエスト を処理できる • http://localhost:8080/hello で”hello world!”を返す package main
import ( "net/http" ) type Handler struct{} func Hello(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello world!")) } func main() { http.HandleFunc("/hello", Hello) http.ListenAndServe(":8080", nil) } 処理 ルーター
テスト • 標準ライブラリでテストを実 行できる • テスト関数 ◦ _test.goで終わる ◦ Testから始まる
◦ *testing.Tが引数 // main_test.go package main import ( "net/http" "net/http/httptest" "testing" ) func TestHello(t *testing.T) { r := httptest.NewRequest(http.MethodGet, "/hello", nil) w := httptest.NewRecorder() Hello(w, r) if w.Body.String() != "hello world!" { t.Errorf("result should be \"hello world!\", but %s", w.Body.String()) } } 検証 処理
DB操作 • 基本的操作は標準ライブラリで実装可能 • エンジンに応じてドライバーを使い分ける ◦ PostgreSQLなら”jackc/pgx”など • DB接続 ◦
db, err := sql.Open(“pgx”, “【接続情報】”) • クエリ実行 ◦ db.Query(“【クエリ】”)
まとめ • GoはGoogleがリリースしたプログラミング言語 • 現在ver.1.20が最新。ver.1系は後方互換性があるので仕事でも使える • 有名企業でも採用事例あり • 構文がシンプル •
標準ライブラリが充実 ◦ HTTPサーバー ◦ DB ◦ テスト