ANDPADでGoを利用して諸々のプロダクトを作っているtomtwinkleです。
2025年6月18日(水)、「golang.tokyo #39」が、弊社アンドパッドのオフィスで開催されました! アンドパッドにとってGo関連イベントの会場提供は初めての試み。運営メンバーとして「皆さんに楽しんでいただけるだろうか…」 とドキドキしていましたが、当日は多くの方にお集まりいただき、大盛況のうちに幕を閉じることができました。 ご参加いただいた皆様、本当にありがとうございます!
後で伺った話では、なんとgolang.tokyoのオフライン参加者数としては過去最大級の55名もの方々にご参加いただけたとのこと!
というわけで、参加した今回のイベントの各発表者のLT内容を振り返りつつ所感をつらつら書いてみます。
では、早速内容を振り返っていきましょう!
開催概要
- イベント名: golang.tokyo #39
- 開催日時: 2025年6月18日(水) 19:00 〜 21:30
- 会場: 株式会社アンドパッド(東京都千代田区神田練塀町300 住友不動産秋葉原駅前ビル 9階)
- Xハッシュタグ: #golangtokyo
LT感想
LT 1: 株式会社ラクス 竹田氏 - SQLガードレールを作った話
トップバッターは竹田氏による、SQLの予期せぬ実行などを防ぐための「SQLガードレール」を自作したという、非常に興味深いお話でした。発表スライドはこちらです。
本日の資料です!https://t.co/7huJsmDTv0
— TKD (@TKDDDDDS) 2025年6月18日
#golangtokyo
pg_query_go を使ってホワイトリスト(もしくはブラックリスト)形式で実行可能なSQLを判別できるSQLガードレール使ったよ!というお話。
SQLはそれ自体が強力な言語であるため、単純な文字列マッチングや正規表現で脆弱性を防ぐのは非常に困難です。 そこで、PostgreSQLのパーサーをGoから使えるpg_query_go を活用し、安全なSQLクエリを判定する仕組みを構築されたとのこと。 堅牢なシステムを作る上で、こうしたライブラリ選定の重要性を改めて感じました。
このライブラリ、内部ではC言語で書かれたパーサーを呼び出しており、スキーマ定義にはProtocol Buffersが使われているんですね。 github.com
スキーマ情報がProtocol Buffersで定義されているなら、protocプラグインでコードを自動生成するなど、応用の幅も広がりそうですね!
また、個人的にはCGOを使わずにWASMで動作するgo-pgqueryも気になるところです。 distrolessのような軽量コンテナイメージで動かす際に、非常に有力な選択肢になりそうです。 発表で使われたコードも公開されていますので、ぜひご覧ください。
ソースコードGithubにあげました!https://t.co/I7Eq7EMmFT#golangtokyo
— TKD (@TKDDDDDS) 2025年6月18日
LT 2: 株式会社ドクターズプライム 早瀬氏 - CI での golangci-lint の実行を約 90% 削減した話
続いては早瀬氏による、CIの高速化事例。なんと、golangci-lintの実行時間を約90%も削減したというから驚きです!
本日の登壇資料です!!
— はやせ (@KazukiHayase) 2025年6月18日
転職後初めての登壇だったのですが、とても楽しかったです😆https://t.co/VDcaS9TaXv
#golangtokyo
CIの実行速度は、多くの開発者が抱える共通の悩みではないでしょうか。 最初は良くても、いつの間にか遅くなってしまう…というのは「あるある」ですよね。 会場からも共感の声が聞こえてきました。
golangci-lint-actionsをそのまま使うのではなく、module cache
、build cache
、golangci-lint cache
を
それぞれ個別にキャッシュするようにGHAのワークフローを修正したとのこと。
この丁寧なチューニングが、劇的な速度改善に繋がったのですね。非常に参考になるお話でした。
早いことは良いことだ! "この世の理はすなわち速さだと思いませんか!"(by ストレイト・クーガー)
LT 3: GO株式会社 pyama86氏 - 新しい職場の CI が 20 分かかっていたらあなたならどうする?
pyama86(P山)氏のLTは「どうする〜? GOする!」という、CMでお馴染みのキャッチーなフレーズでスタート!会場も一気に引き込まれました。
どうするぅ〜〜〜?
— P山 (@pyama86) 2025年6月18日
「GO」するぅぅぅ〜〜〜〜!!!って感じでお話した、goplsの資料です!
久しぶりに人前で喋りましたが楽しく喋れました!ありがとうございました!https://t.co/cQavn3pyaQ#golangtokyo
ところで、goplsの読み方が「Go Please」の略だという豆知識も飛び出し、Xのタイムラインも盛り上がっていましたね。ご存知でしたか? pkg.go.dev
当初は機能通りの名称"LSP"だったという経緯もあるようです。
昔はねgolspだったんじゃ #golangtokyo
— tenntenn | newmo (@tenntenn) 2025年6月18日
本題は「巨大な単一パッケージ」と「go test -p 1」の組み合わせによるテストの実行速度低下問題。 このキーワードに「あ〜…」と頷いていた方も多かったのではないでしょうか。
ぼくのところも -p 1 だ。小声。#golangtokyo
— しまぶ (@shimabox) 2025年6月18日
この課題に対し、テストを高速化するためのリファクタリング手順が非常に分かりやすく解説されていました。 パッケージを小さく保つことは、保守性だけでなくテストの実行速度の観点からも重要だと再認識しました。
この大規模なパッケージ分割を支援するために自作されたCLIツールpachangerも紹介されていました。これは便利そう! pyama.fun
普段何気なく恩恵を受けているgoplsですが、その機能を直接使ったリファクタリング手法は新鮮で、gopls renameなど、すぐにでも試してみたいテクニックが満載でした。
運営企業 LT: 株式会社アンドパッド 小島 - アンドパッドの Go 勉強会「 gopher 会」とその内容の紹介
ここで、弊社アンドパッドの小島から、社内Go勉強会「gopher会」について紹介させていただきました。
先程の小島の発表資料です ! https://t.co/PLuwp91vI5 #golangtokyo
— ANDPAD (アンドパッド)開発部 (@andpad_dev) 2025年6月18日
この会は、弊社のGo技術顧問であるtenntenn氏のお力をお借りする機会を定期的につくろう、という目的で始まったと聞いています。 私も途中から参加した身ですが、気づけば開催回数はなんと150回以上!継続は力なり、ですね。
Goの話題が中心ですが、時にはk8sのヘルスチェックなど、業務で直面した悩みを気軽に相談できる貴重な場となっています。
もちろん、全ての問いに明確な答えが出るわけではありません。「CACHEPROGの真価とは…?」のように、議論が続く奥深いテーマもあります。
CACHEPROGもめっちゃ頑張って実装すればちょい早くなるんです…(なお、通常そこを頑張るほどの価値はない) #golangtokyo
— mazrean (@mazrean22) 2025年6月18日
なるほど……
connectのTypedNil実装は nil checkしているのに何故か nil referenceしてしまってpanicするという挙動を深掘りしていく中で見つけたものです。
issueは投げて結局修正はされなかったのですが、error check最初にするべきだよねという言い分は分かりつつも error の場合、値はTypedNilではなくnilで返るべきじゃね?と思っていたりします。
最近では、Goのproposalを定期的にウォッチする文化も根付いてきており、Go Conferenceへのプロポーザル提出に繋がるケースも増えてきたように感じます。 github.com
私が先日執筆したgo:linknameの記事も、このgopher会での雑談がきっかけでした。 tech.andpad.co.jp
発表後、「gopher会、良さそう!」というお声を多くいただけて、とても嬉しかったです。
gopher会すごくいいな
— matumoto (@matumoto_1234) 2025年6月18日
自分もやってみたい
#golangtokyo
gopher会は別の記事でも触れていますので、こちらもご覧ください。
LT 4: kuro氏 - Go1.25 からの GOMAXPROCS
kuro氏からは、Go 1.25で導入が検討されているGOMAXPROCSの自動調整機能についてのお話。パフォーマンスに直接影響する重要な変更点であり、注目しているテーマです。
昨日のスライドです!
— kuro (@knkurokuro7) 2025年6月19日
オフラインでわいわいできて楽しかった🤩#golangtokyo
Go1.25からのGOMAXPROCS https://t.co/MEUtPnmsbk
現状ではautomaxprocsのようなライブラリを使うのが一般的ですが、これがGo本体に取り込まれる可能性があります。 このテーマは弊社のgopher会でも話題に上がっており、特にKubernetesのcgroup環境下でCPUコア数がどう解釈されるのかは、実際に計測してみないと分からない部分も多く、今後の動向から目が離せません。
#golangtokyo
— Takuto Nagami (logica) (@logica0419) 2025年6月18日
cgroupの設定変更に追従するようになったの、K8sのin-place resource resizeに対して非常に有効に働きそうで良いhttps://t.co/2YBIttaVbW
ところで、発表中にあった「GOMAXPROCSの最小値が2になるかもしれない」という話、なぜなのでしょうか? 素朴な疑問ですが、Goを動かすなら最低でも2コアを用意するのが推奨される、ということ?
LT 5: ディップ株式会社 村松氏 - Go で SFTP コンテナからファイルをダウンロードする
村松氏の発表テーマは「SFTP」。令和のこの時代に、まさかSFTPというキーワードを聞くことになるとは!懐かしさを感じた方も多かったのではないでしょうか。
モダンな環境でSFTPを扱う際、Goでどのように実装したのかが丁寧に解説されており、素晴らしい発表でした。 Xでも温故知新を感じる多くの方々の反響がありました。
SFTP懐かしい#golangtokyo
— asuka (@a_skua) 2025年6月18日
「SFTPとFTPSというのがあってじゃな・・・」
— ちひろ@GoConnect (@chiroruxxxx) 2025年6月18日
LT 6: 株式会社ベースマキナ syumai氏 - ジェネリクスによるスライス操作との付き合い方
syumai氏からはiterとジェネリクスを使ったスライス操作の実装例についてのお話でした。
本日の発表資料です!#golangtokyo
— syumai (@__syumai) 2025年6月18日
GoのGenericsによるslice操作との付き合い方 - Speaker Deck https://t.co/LnkulNvn02
iterのrange ovre funcの概念自体はシンプルですが実装を見るとやっぱちょっと認知負荷高いよねという気持ちよくわかります。 xiterの話も無くなっちゃいましたからね。 github.com
#golangtokyo
— Takuto Nagami (logica) (@logica0419) 2025年6月18日
Russ Coxがxiter proposalを閉じる直前に放った一言は、Gopherたちをイテレーターパッケージ自作へと駆り立てた!
「便利なイテレーターパッケージか?欲しけりゃくれてやる…!探せ…!イテレーターの全てを、サードパーティーパッケージに託してきた!!!!」 https://t.co/z6t4DZcIMH
samber/lo便利だけど機能多すぎて使う時の認知負荷が高いので みんなちょい改造した似たようなライブラリ作ってる説はあります。 私のチームでも実のところslicesパッケージを拡張したライブラリを自作しています。
みんなloつくってる#golangtokyo
— ちひろ@GoConnect (@chiroruxxxx) 2025年6月18日
あと、go-functionalのマスコットキャラはかわいい!
LT 7: yushin氏 - gopls で知る言語サーバー
最後のLTはyushin氏による、goplsを題材にした言語サーバープロトコル(LSP)の解説。奇しくもpyama86氏の発表に続き、goplsネタで会場が和む一幕も。
https://t.co/6RpjhsBP9C#39 発表資料です!https://t.co/9DsVTQf5nH
— yushin (@yuu_matsu_yuu) 2025年6月18日
楽しくて、ご飯もおいしかった!#golangtokyo
新卒のエンジニアの方と伺いましたが、LSPの基本からgoplsの内部実装までを非常に分かりやすく解説されており、その技術力の高さに圧倒されました! 普段、エディタの裏側で動いているgoplsがどのような仕組みでコード補完や定義ジャンプを実現しているのか、そのインターフェースを垣間見ることができ、大変勉強になりました。
まとめ
golang.tokyo #39、どの発表も非常に興味深く、最高のイベントでした! Go ConferenceのProposal提出期限がイベント当日までということもあり、2次会では「プロポーザル出せるまで帰れま10」を実施していたみたいですね。
#golangtokyo 過去に参加した勉強会の中では最大規模で、普段出会えない人との交流が非常に楽しかったです!
— Takuto Nagami (logica) (@logica0419) 2025年6月18日
運営のみなさん、ありがとうございました‼︎
本日の2次会は、6人で酒をあおって歓談しながら、Go Conferenceのプロポーザル執筆 / 最終調整をする会でした。
みんな受かってたらいいな〜
LTでご登壇された皆様、そして会場やオンラインで参加し、イベントを盛り上げてくださった全ての皆様に、改めて感謝申し上げます。ありがとうございました!
これからも、皆さんと一緒にgolang.tokyoを盛り上げていけたら嬉しいです!
アンドパッドでは gopher会 に参加してみたいGoエンジニアを絶賛募集中です!