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
すてにゃん
December 03, 2023
Technology
0
640
開発チーム横断タスクフォース 「Goサブ会」の 運用事例と今後の展望
Go Conference mini 2023 Winter IN KYOTO - connpass
にて登壇した時の資料です。
すてにゃん
December 03, 2023
Tweet
Share
More Decks by すてにゃん
See All by すてにゃん
dotfiles について話したい #湘なんか
stefafafan
2
300
意義から考えるObservability入門 #srenext
stefafafan
2
1.1k
高橋メソッド風の発表を生成するCLIツールをPHPで作った #phpcon_odawara
stefafafan
1
360
令和最新版 ソフトウェアエンジニアのためのDJ入門、あるいはDJに学ぶ仕事術 #ya8
stefafafan
2
400
一番やさしいDJ入門 2024
stefafafan
6
1.7k
『Goサブ会』によるチームを超えた知見展開、あるいは hatena.go に対する期待 #hatenago
stefafafan
0
1.8k
Team Topologies輪読会とScrapboxの活用
stefafafan
1
250
Deployment Previewを用意する流れで学んだ良い仕事の進め方
stefafafan
0
1.1k
チーム開発における様々なボトルネックの整理 / Organization of bottlenecks in Team Development
stefafafan
0
2.8k
Other Decks in Technology
See All in Technology
なぜクラウドサービスで Web コンソールを提供するのか
shuta13
4
2k
AIで変わるテスト自動化:最新ツールの多様なアプローチ/ 20240910 Takahiro Kaneyama
shift_evolve
0
210
2024年のナビゲーション・フォーカス対応:Composeでキーボード・ナビゲーションをサポートしよう
tahia910
0
110
再考 アクターモデル/ reconsider actor model
ytake
0
160
アプリをリリースできる状態に保ったまま 段階的にリファクタリングするための 戦略と戦術 / Strategies and tactics for incremental refactoring
yanzm
6
1k
フロントエンド・オブザーバビリティを支える要素技術を学ぼう
sadnessojisan
2
130
リアルお遍路+SORACOM IoT
ozk009
1
130
PdMはどのように全てのスピードを上げられるか ~ 非連続進化のための具体的な取り組み ~
sansantech
PRO
4
1.1k
Analytics-Backed App Widget Development - Served with Jetpack Glance
miyabigouji
0
390
AI活用したくてもできなかった不動産SaaSの今とこれから
nealle
0
320
テスト”ケース”駆動開発 で手戻りをなくそう
ryohma0510
0
160
SORACOMで実現するIoTのマルチクラウド対応 - IoTでのクリーンアーキテクチャの実現 -
kenichirokimura
0
380
Featured
See All Featured
Agile that works and the tools we love
rasmusluckow
327
20k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
24
600
Thoughts on Productivity
jonyablonski
66
4.2k
The Brand Is Dead. Long Live the Brand.
mthomps
53
38k
GraphQLとの向き合い方2022年版
quramy
43
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Writing Fast Ruby
sferik
623
60k
Become a Pro
speakerdeck
PRO
22
4.9k
Fantastic passwords and where to find them - at NoRuKo
philnash
48
2.8k
Done Done
chrislema
180
16k
Product Roadmaps are Hard
iamctodd
PRO
48
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
25
3.9k
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