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_College_最終発表資料__外部公開用_.pdf
Search
xe-pc23
March 23, 2026
Programming
660
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Go_College_最終発表資料__外部公開用_.pdf
xe-pc23
March 23, 2026
Other Decks in Programming
See All in Programming
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.7k
A2UI という光を覗いてみる
satohjohn
1
170
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
570
AIを活用したE2Eテスト実装効率化のあゆみ / ebisu-mobile-14-kotetu
kotetuco
0
150
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
220
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
280
自作OSでスライド発表する
uyuki234
1
3.5k
軽量Java基盤の設計 DIコンテナに頼らない、長期保守と1秒起動の実現 JJUG CCC 2026 Spring
macha64
0
620
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
140
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
160
Mujeres en SEO Summit 2026 - Greatest Disaster Hits en Web Performance
guaca
0
220
Featured
See All Featured
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
170
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.6k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
The SEO identity crisis: Don't let AI make you average
varn
0
510
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Deep Space Network (abreviated)
tonyrice
0
220
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
210
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.1k
Building Adaptive Systems
keathley
44
3.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
Documentation Writing (for coders)
carmenintech
77
5.4k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
2
880
Transcript
Go college 最終発表資料(外部公開用) 発表者:xe-pc23
Go collegeに参加した背景 今年は スピード重視 ハッカソン 去年まで コードをしっかり 読まない 継続的な開発 ユーザーがいる環境での運用
興味のある実務インターン 自分の作成したコードに 責任が生じる とりあえず動けばいい
発表構成 最終課題での挑戦 基礎要件は全て実装できました! 本インターンでの成長ポイント 今後に向けた意気込み
最終課題での挑戦 Redis 補足 ゲームのAPI実装 ガチャを回すともらえる アイテムのコレクション 一覧を取得するAPI 実装した内容 コレクション
認証トークン 1
model/collection.go 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 func SelectCollectionItemsByUserID(ctx context.Context, userID string) ([]*CollectionItem, error) { var items []*CollectionItem key := collectionListKey(userID) err := db.Cache.Get(ctx, key, &items) if err == nil { log.Printf("collection items found in Redis for user ID: %s", userID) return items, nil } log.Printf("collection items not found in Redis for user ID: %s, fetching from MySQL: %v", userID, err) //======// [MySQLの処理] //======// // Redisにコレクションアイテムのリストを保存する if err := db.Cache.Set(&cache.Item{ Ctx: ctx, Key: key, Value: items, TTL: 7 * 24 * time.Hour, }); err != nil { log.Printf("failed to set collection items to Redis for user ID: %s, error: %v", userID, err) } else { log.Printf("collection items cached in Redis for user ID: %s", userID) } return items, nil } コレクションのRedis実装 Flowchart next:なぜTTL1週間 1
削除の処理を実装しているから コレクションのRedis実装 Flowchart model/gacha.go 1 2 3 4 5 6
7 8 9 10 11 12 13 14 15 16 17 func SaveGachaResult(ctx context.Context, userID string, collectionIDs []int) error { // === 【DB更新処理】 ==================== // トランザクション開始 // 1. ガチャ結果をバルクインサート // 2. コインを消費 // トランザクション終了 (Commit) // ===================================== // DBの更新が成功したら、古いキャッシュを「削除」する key := collectionListKey(userID) if err := db.Cache.Delete(ctx, key); err != nil { log.Printf("failed to delete cache: %v", err) } return nil } 削除処理を実装しているが、TTLを設定しているのはユーザーがゲームをしなく なった時、キャッシュが溜まり続けるのを防ぐため1週間のTTLを設定している 補足 1
最終課題での挑戦 Redis Redisを実装した時としてない時の パフォーマンスの比較を実際に行いました 補足 -n :総リクエスト数 -c 同時並列数 1
2 3 4 5 #インストール方法 brew install hey #テストで使用するコマンド hey -n 50000 -c 100 -H "x-token: $TOKEN" "$BASE_URL/collection/ list" HTTPリクエストの負荷テストツール 引用:https://github.com/rakyll/hey 1
実行結果 注目するところ Average Latency Requests/sec 99%Latency 1
実行結果 試行回数5回 NEXT:これらをグラフにすると→ 1
実行結果 グラフを Nanobanana 2で生成してみました 1
本インターンでの成長ポイント Go Collegeでの目標 自分のコードに責任 を持てるようになる Goに関する知識 をつける 2
本インターンでの成長ポイント Goに関する知識をつける Goの構文 Redis Echo Gin アーキテクチャ MySQL 2
本インターンでの成長ポイント 自分のコードに責任を持てるようになる ログ表示を沢山実装 パフォーマンスを意識した実装 この処理はこの層で行う 2
今後に向けた意気込み Goのイベントの参加 記事などでのアウトプットなど 補足 ・Goに関しての知識をさらに深める ・継続的な開発経験を積む(実務&個人開発) 3