はじめに
6月後半、Go 1.26のリリースやGitHub Copilot CLIの改善など、実務に直結するアップデートがいくつか重なった。Rustのコミュニティニュースレターも連続して出ており、追うだけで手が動く話題が尽きない週だった。気になったものを実際に触りながらまとめてみる。
Go 1.26:新GCとgo fixの刷新が地味に嬉しい
Go 1.26がリリースされた。新しいガベージコレクターの導入と、go fixコマンドの大幅強化が個人的に一番刺さっている。
go fixはGo 1.26で「古いAPIを新しい書き方に自動変換する能力」が大きく向上した。手元のプロジェクトで試してみたら、これだけで済んだ:
$ go fix ./...
以前は deprecated なAPIをgrepで探して手動置換していたが、ライブラリのメジャーバージョン移行後の作業時間が体感で半分以下になった。地味だけど積み重なると効く。
新GCについては、STW(Stop-The-World)時間が改善されているとのこと。社内バッチ処理サービスで検証中だが、本番投入はもう少し様子見。GOGCやGOMEMLIMITの挙動も変わる部分があるので、既存の設定値をそのまま持ち込むと予期しない挙動になる可能性があり要注意。
experimentalながらruntime/secretパッケージも入った。秘密情報をメモリ上で扱う際の明示的ゼロ化をサポートするもので、セキュリティ要件が厳しいサービスで将来的に使いたい候補に入れた。
Go 1.25のFlight Recorderも改めて試した
Go 1.25で入ったFlight Recorderを遅ればせながら検証してみた。本番環境でトレースを常時バッファリングしておき、問題発生時にそこまでの実行履歴を取り出せる仕組みだ。
import "runtime/fgprof"
f, _ := os.Create("flight.pprof")
defer fgprof.Start(f, fgprof.FormatPprof).Stop()
ステージング環境で意図的に負荷をかけて試したところ、通常のprofilerでは見えにくかったgoroutineのブロッキング箇所が可視化できた。「本番でだけ起きるパフォーマンス問題」の調査がこれで変わる予感がする。
GitHub Copilot CLI:委譲を減らす方向に舵を切った
Copilot CLIがサブエージェントへの「委譲判断」を改善したというブログが出た。これまでは少し複雑な操作でもすぐ別のエージェントに処理を渡していたため、実行が遅くなったりコンテキストが途中で失われるケースがあった。今回の改善で「委譲しなくていいケースは自前で処理する」判断が賢くなったとのこと。
業務でCopilot CLIを使っているが、確かに最近のバージョンはコマンド応答が速くなった気がしていた。原因がこれだったかと納得。特にgitの複雑な操作(cherry-pickのコンフリクト解消など)を頼んだときの精度が上がっている印象がある。
GitHub Secret Scanning:LLMでコンテキストを読むようになった
GitHubのシークレットスキャンが、コンテキスト認識型のLLM推論で誤検知を削減する方向に改善された。
以前はテストファイル内のダミートークン(token = "test-secret-12345" のようなもの)が普通にアラートを出していた。管理者として毎回「これは意図的なテスト用です」と説明するのが地味に面倒だったので、この改善は素直に歓迎。テストファイルやコメントアウトされたコードへの誤検知が減ることに期待している。次のスキャンサイクルで実際の変化を確認するつもり。
Rustコミュニティ:週刊ニュースレターが4号連続で活発
This Week in Rustが653〜656号と4号連続で届いている。Rustはバージョンアップのペース自体は落ち着いているが、エコシステム周りのライブラリやツールの進化が止まらない。最近では非同期ランタイムの周辺ツールや、WebAssembly向けの軽量バイナリ生成に関するtipsが特に面白かった。業務でRustを書いている人はニュースレターを購読しておくと、毎週1〜2個は実務で使えるネタが拾える。
まとめ
Go 1.26のgo fixは即戦力になる。既存プロジェクトのモダナイズに使わない理由がない。Flight RecorderはGo 1.25からなので、まだ試していなければGoバージョンを確認して早めに触ってほしい。GitHub側の改善はどれも「ノイズを減らす」方向で、AIツールが増えた結果として出てきた自然な流れという感じがして面白い。来週もこのペースでアップデートが来そうなので、追いかけながら手を動かすサイクルをキープしていきたい。