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
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
すてにゃん
December 03, 2023
Technology
0
1k
開発チーム横断タスクフォース 「Goサブ会」の 運用事例と今後の展望
Go Conference mini 2023 Winter IN KYOTO - connpass
にて登壇した時の資料です。
すてにゃん
December 03, 2023
Tweet
Share
More Decks by すてにゃん
See All by すてにゃん
急成長を支える基盤作り〜地道な改善からコツコツと〜 #cre_meetup
stefafafan
0
4.4k
小田原でみんなで一句詠みたいな #phpcon_odawara
stefafafan
0
1.7k
dotfiles について話したい #湘なんか
stefafafan
2
480
意義から考えるObservability入門 #srenext
stefafafan
2
1.4k
高橋メソッド風の発表を生成するCLIツールをPHPで作った #phpcon_odawara
stefafafan
1
1.4k
令和最新版 ソフトウェアエンジニアのためのDJ入門、あるいはDJに学ぶ仕事術 #ya8
stefafafan
2
820
一番やさしいDJ入門 2024
stefafafan
6
2.3k
『Goサブ会』によるチームを超えた知見展開、あるいは hatena.go に対する期待 #hatenago
stefafafan
0
2.3k
Team Topologies輪読会とScrapboxの活用
stefafafan
1
360
Other Decks in Technology
See All in Technology
Digitization部 紹介資料
sansan33
PRO
1
6.8k
30万人の同時アクセスに耐えたい!新サービスの盤石なリリースを支える負荷試験 / SRE Kaigi 2026
genda
1
220
コスト削減から「セキュリティと利便性」を担うプラットフォームへ
sansantech
PRO
3
1.2k
Mosaic AI Gatewayでコーディングエージェントを配るための運用Tips / JEDAI 2026 新春 Meetup! AIコーディング特集
genda
0
150
SREじゃなかった僕らがenablingを通じて「SRE実践者」になるまでのリアル / SRE Kaigi 2026
aeonpeople
6
2k
サイボウズ 開発本部採用ピッチ / Cybozu Engineer Recruit
cybozuinsideout
PRO
10
73k
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
5.5k
小さく始めるBCP ― 多プロダクト環境で始める最初の一歩
kekke_n
1
320
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.3k
GitLab Duo Agent Platform × AGENTS.md で実現するSpec-Driven Development / GitLab Duo Agent Platform × AGENTS.md
n11sh1
0
120
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
13k
Deno・Bunの標準機能やElysiaJSを使ったWebSocketサーバー実装 / ラーメン屋を貸し切ってLT会! IoTLT 2026新年会
you
PRO
0
290
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
How to build a perfect <img>
jonoalderson
1
4.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
96
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
1.9k
Technical Leadership for Architectural Decision Making
baasie
1
240
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
420
Darren the Foodie - Storyboard
khoart
PRO
2
2.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
0
140
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Code Reviewing Like a Champion
maltzj
527
40k
Building the Perfect Custom Keyboard
takai
2
680
The agentic SEO stack - context over prompts
schlessera
0
630
Transcript
開発チーム横断タスクフォース 「Goサブ会」の 運用事例と今後の展望 すてにゃん (id:stefafafan) 2023/12/02 Go Conference mini 2023
Winter IN KYOTO 1
自己紹介 • 株式会社はてな所属、すてにゃん (id:stefafafan) • Webアプリケーションエンジニア ◦ GoやPerlやTypeScriptを書いている ◦ 認定スクラムマスター
◦ テックリード • ブログ: https://blog.stenyan.jp/ 2
hatena.co.jp/recruit 3 3
今日お話しすること • 「はてな」で使うGo言語 • チーム横断の知識共有の必要性 • 「Goサブ会」の設立 • 施策と取り組みの紹介 •
課題と今後の展望 4
5 「はてな」で使うGo言語
「はてな」で使うGo言語 • 「はてな」と聞いてGoの印象ありますか? ◦ Go 1.6 Release Party - connpass
(2016年) では実 ははてな東京オフィスを会場として提供していた ◦ Go Conference 2023 もスポンサーしていました ◦ この場にもはてなスタッフが何人もきています 6
「はてな」で使うGo言語 • 長年Webアプリケーション開発にPerlを採用 • とはいえGoも長い間随所で使ってきた ◦ Mackerelのエージェントやプラグイン ◦ GraphQL APIサーバーなど
◦ はてなブログのサブシステム ◦ x-motemen/gore をはじめとしたツール 7
8 チーム横断の知識共有の 必要性
チーム横断の知識共有の必要性 • それぞれの開発チームでGoは普通に使っているが…… ◦ Perlほど「定石」が知見としてたまっていない ▪ チームに閉じている ◦ Perlのように新しいメンバー向けのキャッチアップ資 料・教材がまとまっていない
◦ チームそれぞれでハマった箇所などが共有できていな い 9
チーム横断の知識共有の必要性 • つまり、社内のPerlで出来ていることが出来ていない ◦ なんらかのアクションが必要 10
11 「Goサブ会」の設立
「Goサブ会」の設立 • はてなでは「サブ会」という仕組みがあります • チーム横断の職能グループ ◦ フロントエンド会 ◦ SRE標準化委員会 ◦
らくだ会 (Perlの会) ◦ 螺旋階段 (Scalaの会) 12
「Goサブ会」の設立 • PerlやScalaに関してはこういうチーム横断で集まる会が あったが、Goにはなかった • 開発チーム間でGoの知見共有ができていなかった • 今後新しいサービスで採用する言語としてGoは有力 ◦ 社内でGoの知識を蓄積させるモチベーションが高い
13
「Goサブ会」の設立 • 「Goサブ会、作ろう!」 ◦ lufiabb さんと共同オーナーとして立ち上げました ◦ CTOにも期待感のすり合わせをしました ▪ 会社としても、Goについて深掘りしてほしい・知見ためて
いって欲しいというようなこと 14
「Goサブ会」の設立 • 簡単に目的を決めて、定例もセットした 15
16 施策と取り組みの紹介
施策と取り組みの紹介 - 定例 • 毎週30分の定例 @ Slack Huddle ◦ 誰でも気軽に参加できる雰囲気を出す
◦ まずはGoのアップデート情報とみんなの困りごとをヒ アリングするのみ 17
施策と取り組みの紹介 - 定例 • アップデート情報のキャッチアップ ◦ Go 1.21 がリリースされたとか ◦
社内外のイベント情報拾ったり 18
施策と取り組みの紹介 - 定例 • 困りごとのヒアリング ◦ Goのイディオムがわからない ◦ 記述量が多くて大変 ▪
いつも同じ実装を書いている ▪ コレクションメソッドがほしい ◦ イチオシのライブラリが知りたい ▪ ORMとか 19
施策と取り組みの紹介 - 困りごとの解消 • 困りごとについてその場で解消できる場合はいいが、わ からない時どうするべきか ◦ 時間がある時に調べて次回回答する? ◦ 個人技でなんとかするというよりは、会としてなんと
かしていきたい ▪ →「Goサブ会標準化分科会」を設立しよう! 20
Goサブ会標準化分科会 • 定例が「Goの情報の知見展開」にフォーカスしていたの で、実際に深掘りをしたり標準化活動をする分科会を用 意した • Goサブ会オーナーはもちろん、他メンバーもこういう活 動に興味ある人は自由に参加可としている 21
Goサブ会標準化分科会 • 分科会でまずやったこと ◦ 定例のアジェンダ見直し、みんなの困りをどう拾って 改善していくか ▪ 欲しいグッズはありますか、みたいな形にしてみる • わかりやすくて効果ありそうなところから手をつける
◦ Graceful Shutdown ◦ コレクションメソッド ◦ ドキュメントの充実 22
Graceful Shutdownライブラリ • Graceful Shutdownを毎回手で実装しているという話が あり、ライブラリを作った ◦ これについては後ほど別のLTで紹介する予定なのでこ こでは割愛 23
コレクションメソッドの充実 • コレクションメソッドについて ◦ Go 1.20 では slices package のおかげで一部やりた
いことは標準で出来ている ◦ その上でまだ足りない場合は samber/lo というサー ドパーティライブラリがある • ただ、samber/lo は我々としては Too much なところも あり.. 24
コレクションメソッドの充実 • 「samber/loで使える関数は限定しつつ、slicesで事足り るものはそちらを使ってもらう」としたいですね ◦ → hatena/godash というライブラリを作成 • hatena/godash
は samber/lo の一部の関数だけ露出さ せたラッパー ◦ 将来的に標準パッケージに入った関数はDeprecated 扱いにするという方針をとるようにした 25
コレクションメソッドの充実 • https://github.com/hatena/godash 26
ドキュメントの充実 • 初学者がハマりそうなところや、キャッチアップしてな くて伝わっていない内容を社内Scrapboxにまとめていく 活動もしている • また、サブ会内で話題にあがったパッケージをおすすめ のパッケージとして社内にまとめていくなど 27
ドキュメントの充実 28
ドキュメントの充実 29
ドキュメントの充実 30
31 課題と今後の展望
課題 • 今見えている課題 ◦ 小手先の改善しかまだやれていない ▪ はてなでGoを使う時のレールをまだ引けていない ◦ まだまだGoが手に馴染んでいるメンバーは少ない ◦
はてながあまりGoコミュニティで存在感がない 32
今後の展望 - 改善について • Goで何かライブラリを作るときのおすすめテンプレート を整備していく ◦ 小さいスコープの改善では足りない ◦ 大体はてなで作りたいものは要件が揃っている場合が
多いためそこにマッチした標準構成を定めていく 33
今後の展望 - 知識について • Goに詳しいメンバーを増やしたいという話はある ◦ けど、Goサブ会などを通じて引き続きやっていくとお そらく徐々に解消していくであろう ◦ また、Goを使うプロダクトも増えれば書く機会も増え
る 34
今後の展望 - 存在感を出す • 私が個人的に勝手に危惧している「はてながGoコミュニ ティで存在感が薄い」という課題 ◦ 私をはじめ、他のGoサブ会メンバーにも積極的に定例 で声がけしてこのようなイベントに参加してもらう ◦
社内の取り組みを定期的に登壇など通じてアウトプッ ト • golang/go にもそのうち Contribute していきたい 35
36 まとめ
まとめ • はてなでのGoに関する課題感から「Goサブ会」を設立し た話を紹介しました • 実際にいくつか成果が出ているが、課題感は引き続きあ る • 今後も継続的に活動し、こういった場でアウトプットし ていきます!
37