[{"content":"Software Design 2026 年 6 月号の第 2 特集「AI が書いたコード、どうテストする？」に「Mutation Testing で見抜く、AI テストコードの落とし穴」という記事を寄稿しました。\n寄稿のきっかけ もともと Mutation Testing と、その Go 実装として自分が開発した gomu については、Go Conference mini in Sendai 2026 でも発表していました。発表後に声をかけていただいたことが寄稿のきっかけです。\n登壇資料で伝えられることと、雑誌の記事で伝えられることはかなり異なります。スライドは「その場で聞いている人に伝わる」ことが大前提であるのに対し、記事は「文章だけで一人で読んでも理解できる」必要があります。コードの背景や理由を省略せず書き下ろす作業は、登壇準備とはまた違う種類の大変さがありました。\n自分の文章が雑誌に載るということ Software Design は学生の頃から手に取ってきた雑誌です。自分が読んでいたページに、今度は自分の名前が載るというのは、少し不思議な気持ちになります。\n書いてみて、技術を文章で正確に伝えるのは思ったより難しいと感じました。やってよかったです。\n記事の内容について 記事では、AI がコードとテストを書く時代において、カバレッジだけではテストの品質を担保できないという問題を出発点に、Mutation Testing という手法と gomu の仕組み、そして CI への組み込み方を解説しています。\n詳しい内容は誌面でご確認いただければ幸いです。\nおわりに Software Design 編集部の皆様、ありがとうございました。読んでいただけたら嬉しいです。\n","permalink":"https://sivchari.dev/ja/logs/software-design-202506/","summary":"\u003cp\u003e\u003ca href=\"https://gihyo.jp/magazine/SD/archive/2026/202606\"\u003eSoftware Design 2026 年 6 月号\u003c/a\u003eの第 2 特集「AI が書いたコード、どうテストする？」に「Mutation Testing で見抜く、AI テストコードの落とし穴」という記事を寄稿しました。\u003c/p\u003e\n\u003ch2 id=\"寄稿のきっかけ\"\u003e寄稿のきっかけ\u003c/h2\u003e\n\u003cp\u003eもともと Mutation Testing と、その Go 実装として自分が開発した \u003ca href=\"https://github.com/sivchari/gomu\"\u003egomu\u003c/a\u003e については、\u003ca href=\"/ja/logs/sendai-go-2026/\"\u003eGo Conference mini in Sendai 2026\u003c/a\u003e でも発表していました。発表後に声をかけていただいたことが寄稿のきっかけです。\u003c/p\u003e\n\u003cp\u003e登壇資料で伝えられることと、雑誌の記事で伝えられることはかなり異なります。スライドは「その場で聞いている人に伝わる」ことが大前提であるのに対し、記事は「文章だけで一人で読んでも理解できる」必要があります。コードの背景や理由を省略せず書き下ろす作業は、登壇準備とはまた違う種類の大変さがありました。\u003c/p\u003e\n\u003ch2 id=\"自分の文章が雑誌に載るということ\"\u003e自分の文章が雑誌に載るということ\u003c/h2\u003e\n\u003cp\u003eSoftware Design は学生の頃から手に取ってきた雑誌です。自分が読んでいたページに、今度は自分の名前が載るというのは、少し不思議な気持ちになります。\u003c/p\u003e\n\u003cp\u003e書いてみて、技術を文章で正確に伝えるのは思ったより難しいと感じました。やってよかったです。\u003c/p\u003e\n\u003ch2 id=\"記事の内容について\"\u003e記事の内容について\u003c/h2\u003e\n\u003cp\u003e記事では、AI がコードとテストを書く時代において、カバレッジだけではテストの品質を担保できないという問題を出発点に、Mutation Testing という手法と gomu の仕組み、そして CI への組み込み方を解説しています。\u003c/p\u003e\n\u003cp\u003e詳しい内容は誌面でご確認いただければ幸いです。\u003c/p\u003e\n\u003ch2 id=\"おわりに\"\u003eおわりに\u003c/h2\u003e\n\u003cp\u003eSoftware Design 編集部の皆様、ありがとうございました。読んでいただけたら嬉しいです。\u003c/p\u003e","title":"Software Design 6月号に寄稿しました"},{"content":"KubeCon + CloudNativeCon North America 2025 にて、SIG Cluster Lifecycle から Kubernetes Contributor Award 2025 をいただきました。受賞理由には「being always available to help and for the impact he made in the Cluster API project」と書いていただきました。とても嬉しい一方で、自分がこれまで何をしてきたのかを振り返る良い機会だったので、受賞につながった活動と、そこで自分が学んだことを書き残しておきます。\n受賞につながった活動 僕が SIG Cluster Lifecycle で取り組んできたことは、大きく分けて 2 つあります。\nKube API Linter ひとつは Kube API Linter (KAL) です。KAL は Kubernetes の API 規約 や、規約にないルールも含めて API をチェック・強制する linter です。\n僕の最初の関わりは、2025 年の初めに nomaps linter を追加した PR #41 でした。そこから duplicatemarkers、ssatags、defaults といった linter を継続的に追加し、やがて reviewer に、そして approver に加えていただきました。\nKAL は単体で使うだけでなく、Cluster API のような大きなプロジェクトに導入して API の一貫性を保つのにも使われます。linter を書く側と、それを実際に導入する側の両方を経験できたのは良かったです。\nCAPD の v1beta2 移行 もうひとつは、Cluster API における CAPD (Cluster API Provider Docker) の v1beta2 移行です。自分にとって特に大きなタスクでした。\nAPI バージョンの移行は、新しい types を定義して終わりではありません。v1beta2 types の追加 から始まり、condition の promote、v1beta2 contract の実装、controller での v1beta1 status の段階的な切り離し、E2E テストの移行、他プロバイダとの conversion の整合、さらに Cluster API book のサンプル更新まで、十数本の PR にわたる地道な作業の積み重ねでした。Cluster API 全体の API バージョン移行という貴重な機会に携わることができたことは達成感がありました。\n憧れと、継続すること 学生の頃、Kubernetes のメンテナーというのは僕にとって何となく憧れであり、同時にとても遠い存在のようにも見えていました。\nでも、いざ自分がここまで辿り着いてみて思うのは、それを近づけてくれたのは才能でも大きな一発でもなく、ただ「打席に立ち続けたこと」だったということです。Cluster API に出した最初の PR は、2024 年 3 月の ptr パッケージへのちょっとした置き換え のような、本当に小さなものでした。小さくても出し続け、レビューをもらい、また出す。すぐに離れずに、続ける。気づけばそうした PR が積み上がっていて、CAPD の移行のような大きなタスクにも自分から手を挙げて取り組めるようになっていました。\nOSS で本当に大事なのは、どれだけ打席に立ち続けて、すぐに離れずに継続できるかなのだと思います。そこに一回ごとの貢献の大きさは関係ありません。継続することそのものに価値がある。「always available to help」という言葉も、結局はその継続の積み重ねを見ていてくれた人がいた、ということなのだと受け止めています。\n感謝 今回の受賞は、間違いなく一緒に活動してきたメンテナー・レビュアーのみなさんのおかげです。\nCluster API では、Fabrizio Pandini さんと Stefan Büringer さんに、CAPD の移行をはじめ何度もレビューしてもらいました。設計の議論にも付き合ってもらって、多くのことを学びました。\nKube API Linter では、Joel Speed さんに API デザインの考え方をたくさん教えてもらいました。\nこれから 賞をいただけて、純粋に嬉しいです。これからも変わらず、続けていきたいと思います。\n","permalink":"https://sivchari.dev/ja/logs/kubernetes-contributor-award-2025/","summary":"\u003cp\u003e\u003ca href=\"https://events.linuxfoundation.org/kubecon-cloudnativecon-north-america/\"\u003eKubeCon + CloudNativeCon North America 2025\u003c/a\u003e にて、SIG Cluster Lifecycle から \u003ca href=\"https://www.kubernetes.dev/community/awards/2025/\"\u003eKubernetes Contributor Award 2025\u003c/a\u003e をいただきました。受賞理由には「being always available to help and for the impact he made in the Cluster API project」と書いていただきました。とても嬉しい一方で、自分がこれまで何をしてきたのかを振り返る良い機会だったので、受賞につながった活動と、そこで自分が学んだことを書き残しておきます。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"Maintainer Summit での Kubernetes Contributor Award 2025 授賞の様子。スクリーンに「Takuma Shibuya / SIG Cluster Lifecycle」と受賞理由が映し出されている\" loading=\"lazy\" src=\"/images/logs/kubernetes-contributor-award-2025.jpg\"\u003e\u003c/p\u003e\n\u003ch2 id=\"受賞につながった活動\"\u003e受賞につながった活動\u003c/h2\u003e\n\u003cp\u003e僕が SIG Cluster Lifecycle で取り組んできたことは、大きく分けて 2 つあります。\u003c/p\u003e\n\u003ch3 id=\"kube-api-linter\"\u003eKube API Linter\u003c/h3\u003e\n\u003cp\u003eひとつは \u003ca href=\"https://github.com/kubernetes-sigs/kube-api-linter\"\u003eKube API Linter (KAL)\u003c/a\u003e です。KAL は Kubernetes の \u003ca href=\"https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md\"\u003eAPI 規約\u003c/a\u003e や、規約にないルールも含めて API をチェック・強制する linter です。\u003c/p\u003e\n\u003cp\u003e僕の最初の関わりは、2025 年の初めに \u003ccode\u003enomaps\u003c/code\u003e linter を追加した \u003ca href=\"https://github.com/kubernetes-sigs/kube-api-linter/pull/41\"\u003ePR #41\u003c/a\u003e でした。そこから \u003ccode\u003eduplicatemarkers\u003c/code\u003e、\u003ccode\u003essatags\u003c/code\u003e、\u003ccode\u003edefaults\u003c/code\u003e といった linter を継続的に追加し、やがて reviewer に、そして \u003ca href=\"https://github.com/kubernetes-sigs/kube-api-linter/pull/190\"\u003eapprover\u003c/a\u003e に加えていただきました。\u003c/p\u003e","title":"Kubernetes Contributor Award 2025 をいただきました"},{"content":"2026 年 2 月 21 日に Go Conference mini in Sendai 2026 が開催されました。僕は「Who tests the Tests ?」というタイトルで登壇し、参加者としてもセッションや懇親会を楽しんできました。とても楽しかったので、イベント全体の雰囲気、自身の発表内容、仙台でのコミュニティとの交流について書き残しておきます。\n僕と Sendai.go 僕にとって Sendai.go は特別な意味を持つカンファレンスです。というのも、生まれてはじめて現地参加したオフラインカンファレンスが Go Conference mini 2022 Autumn IN SENDAI だったからです。学生の頃からGo Conference に登壇していましたが、当時はまだコロナが少しずつ落ち着いてきたかなといった時代だったこともあり登壇は全てオンラインで行っていました。オフラインで登壇をすると、発表を本当に聞かれている、リアクションしてくれるというオンライン上では感じ取り辛いライブ感が加わりとても楽しかったことを覚えています。\nその場で交わした会話や紹介してもらった人たちとのつながりは、その後のカンファレンスや OSS 活動を通じて現在まで続いています。Go Conference の運営に関わるようになり、メインオーガナイザーになったことも、そのテーマを「一期一会」にしたことも、Kubernetes や Argo CD のメンテナーとして活動するようになったことも、あのときの一歩が出発点でした。\nそうした個人的な原点とも呼べる場所に、4 年後の 2026 年に登壇者として戻ってくることができたのは、非常に感慨深い出来事でした。\n登壇: Who tests the Tests ? 僕のセッションでは、Mutation Testing と、それを Go 向けに実装した OSS ツール gomu について発表しました。スライドは SpeakerDeck で公開しています。\n発表の趣旨 近年の開発では AI エージェントによるコード生成とテスト生成が急速に普及しています。人間が書いたコードも AI が書いたコードも、最終的に品質を担保するガードレールは CI であり、その中核にあるのがテストです。しかし「テストが存在すること」と「テストが意味のある検証をしていること」は別の問題です。\n従来、テストの品質指標としては Code Coverage が広く使われてきました。しかし Goodhart\u0026rsquo;s Law \u0026ndash; 「ある指標が目標になると、その時点でその指標は良い指標ではなくなる」\u0026ndash; が示すとおり、カバレッジを追い求めると、assertion を書かずにコードを通過するだけの形骸化したテストが生まれてしまいます。AI エージェントにテスト生成を任せると、t.Skip を使って実質的に何も検証していないテストを生成されるケースすら存在します。\nそこで本発表では「テストをテストする」手法として Mutation Testing を紹介し、その仕組みと gomu の実装、さらに CI への組み込み方について解説しました。\n発表後には「既存プロジェクトへの導入の始め方」「どの粒度で適用すべきか」といった質問をいただき、実際に Mutation Testing を運用に載せることへの関心の高さを感じました。\n印象に残った発表: tobari 今回のカンファレンスで特に印象に残ったのが、goccy さんによる tobari の発表です。\n僕の発表が「テストが意味のある検証をしているか」というテストの質の話であったのに対し、tobari は「どのテストがどこをカバーしているか」というカバレッジの話であり、両者は同じ「CI とテストをどう信頼するか」という課題に対して異なる角度からアプローチしています。\nAI によるテスト生成が当たり前になる時代には、テストの質とカバレッジの両方が必要になるはずであり、同じカンファレンスでこの2つのトピックが並んだことにはコーディングエージェントの過渡期にいる今の時代を象徴しているように感じました。\n仙台でのコミュニティ交流 冒頭にも書いたとおり、僕にとって Sendai.go は 2022 年のオフライン初参加の場所です。そのときに出会った人たちの多くは現在もコミュニティで活動を続けており、今回の Sendai.go 2026 でも会場や懇親会で再会することができました。\nオンラインでのコミュニケーションが主流になった現在だからこそ、「名前と顔と人となりが結びつく瞬間」の価値は相対的に高まっているように思います。Sendai.go のようなローカルカンファレンスは、東京で開催される大規模カンファレンスと比べて距離が近く、登壇者と参加者の境界が緩やかで、会場と懇親会の一体感も強いように感じます。参加者全員が「仙台まで足を運ぶくらいに Go が好き」という共通体験を持っていることもとても素敵だなと思います。\nおわりに 2022 年にはじめて現地参加したコミュニティに、2026 年にも登壇者として戻ってくることができました。コミュニティとの関係をこうした形で長く続けていける、社会人になってもたくさんの出会いがあることは非常に幸せなことです。\n実行委員長の senoue さんをはじめとする運営委員のみなさま、スポンサー各社、会場を提供してくださったクラウドスミス株式会社、そして当日会場で声をかけてくださった参加者のみなさま、本当にありがとうございました。\nまた次回、仙台でお会いできることを楽しみにしています。\n","permalink":"https://sivchari.dev/ja/logs/sendai-go-2026/","summary":"\u003cp\u003e2026 年 2 月 21 日に \u003ca href=\"https://sendaigo.jp/\"\u003eGo Conference mini in Sendai 2026\u003c/a\u003e が開催されました。僕は「Who tests the Tests ?」というタイトルで登壇し、参加者としてもセッションや懇親会を楽しんできました。とても楽しかったので、イベント全体の雰囲気、自身の発表内容、仙台でのコミュニティとの交流について書き残しておきます。\u003c/p\u003e\n\u003ch2 id=\"僕と-sendaigo\"\u003e僕と Sendai.go\u003c/h2\u003e\n\u003cp\u003e僕にとって Sendai.go は特別な意味を持つカンファレンスです。というのも、生まれてはじめて現地参加したオフラインカンファレンスが Go Conference mini 2022 Autumn IN SENDAI だったからです。学生の頃からGo Conference に登壇していましたが、当時はまだコロナが少しずつ落ち着いてきたかなといった時代だったこともあり登壇は全てオンラインで行っていました。オフラインで登壇をすると、発表を本当に聞かれている、リアクションしてくれるというオンライン上では感じ取り辛いライブ感が加わりとても楽しかったことを覚えています。\u003c/p\u003e\n\u003cp\u003eその場で交わした会話や紹介してもらった人たちとのつながりは、その後のカンファレンスや OSS 活動を通じて現在まで続いています。Go Conference の運営に関わるようになり、メインオーガナイザーになったことも、そのテーマを「一期一会」にしたことも、Kubernetes や Argo CD のメンテナーとして活動するようになったことも、あのときの一歩が出発点でした。\u003c/p\u003e\n\u003cp\u003eそうした個人的な原点とも呼べる場所に、4 年後の 2026 年に登壇者として戻ってくることができたのは、非常に感慨深い出来事でした。\u003c/p\u003e\n\u003ch2 id=\"登壇-who-tests-the-tests-\"\u003e登壇: Who tests the Tests ?\u003c/h2\u003e\n\u003cp\u003e僕のセッションでは、Mutation Testing と、それを Go 向けに実装した OSS ツール \u003ca href=\"https://github.com/sivchari/gomu\"\u003egomu\u003c/a\u003e について発表しました。スライドは \u003ca href=\"https://speakerdeck.com/sivchari/who-tests-the-tests\"\u003eSpeakerDeck\u003c/a\u003e で公開しています。\u003c/p\u003e\n\u003ch3 id=\"発表の趣旨\"\u003e発表の趣旨\u003c/h3\u003e\n\u003cp\u003e近年の開発では AI エージェントによるコード生成とテスト生成が急速に普及しています。人間が書いたコードも AI が書いたコードも、最終的に品質を担保するガードレールは CI であり、その中核にあるのがテストです。しかし「テストが存在すること」と「テストが意味のある検証をしていること」は別の問題です。\u003c/p\u003e\n\u003cp\u003e従来、テストの品質指標としては Code Coverage が広く使われてきました。しかし Goodhart\u0026rsquo;s Law \u0026ndash; 「ある指標が目標になると、その時点でその指標は良い指標ではなくなる」\u0026ndash; が示すとおり、カバレッジを追い求めると、assertion を書かずにコードを通過するだけの形骸化したテストが生まれてしまいます。AI エージェントにテスト生成を任せると、\u003ccode\u003et.Skip\u003c/code\u003e を使って実質的に何も検証していないテストを生成されるケースすら存在します。\u003c/p\u003e","title":"Go Conference mini in Sendai 2026 で登壇しました"},{"content":"About Me sivchari\nWork Period Company 2025.6 - Present newmo 株式会社 2024 - 2025 株式会社カウシェ 2023 - 2024 Ubie 株式会社 2022.4 - 2025.4 株式会社サイバーエージェント 2022 - Present Codatum 株式会社 OSS Activities Reviewer / Approver Cluster API - Reviewer Kube API Linter - Approver Argo CD - Member Community Go Conference Japan - Main Organizer Award Year Award 2025 Kubernetes Contributor Award (SIG Cluster Lifecycle) 2023 - 2025 CyberAgent Go Next Experts Get in touch GitHub: @sivchari X: @sivchari SpeakerDeck: sivchari Email: shibuuuu5@gmail.com ","permalink":"https://sivchari.dev/ja/about/","summary":"\u003ch2 id=\"about-me\"\u003eAbout Me\u003c/h2\u003e\n\u003cp\u003esivchari\u003c/p\u003e\n\u003chr\u003e\n\u003ch2 id=\"work\"\u003eWork\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003ePeriod\u003c/th\u003e\n          \u003cth\u003eCompany\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2025.6 - Present\u003c/td\u003e\n          \u003ctd\u003enewmo 株式会社\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2024 - 2025\u003c/td\u003e\n          \u003ctd\u003e株式会社カウシェ\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2023 - 2024\u003c/td\u003e\n          \u003ctd\u003eUbie 株式会社\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2022.4 - 2025.4\u003c/td\u003e\n          \u003ctd\u003e株式会社サイバーエージェント\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2022 - Present\u003c/td\u003e\n          \u003ctd\u003eCodatum 株式会社\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003chr\u003e\n\u003ch2 id=\"oss-activities\"\u003eOSS Activities\u003c/h2\u003e\n\u003ch3 id=\"reviewer--approver\"\u003eReviewer / Approver\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-sigs/cluster-api\"\u003eCluster API\u003c/a\u003e - Reviewer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kubernetes-sigs/kube-api-linter\"\u003eKube API Linter\u003c/a\u003e - Approver\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/argoproj/argo-cd\"\u003eArgo CD\u003c/a\u003e - Member\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"community\"\u003eCommunity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://gocon.jp/\"\u003eGo Conference Japan\u003c/a\u003e - Main Organizer\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"award\"\u003eAward\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003eYear\u003c/th\u003e\n          \u003cth\u003eAward\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2025\u003c/td\u003e\n          \u003ctd\u003eKubernetes Contributor Award (SIG Cluster Lifecycle)\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e2023 - 2025\u003c/td\u003e\n          \u003ctd\u003eCyberAgent Go Next Experts\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003chr\u003e\n\u003ch2 id=\"get-in-touch\"\u003eGet in touch\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eGitHub: \u003ca href=\"https://github.com/sivchari\"\u003e@sivchari\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eX: \u003ca href=\"https://twitter.com/sivchari\"\u003e@sivchari\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSpeakerDeck: \u003ca href=\"https://speakerdeck.com/sivchari\"\u003esivchari\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmail: \u003ca href=\"mailto:shibuuuu5@gmail.com\"\u003eshibuuuu5@gmail.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e","title":"About"},{"content":"受け付けている仕事 登壇・講演 技術顧問・アドバイザー 執筆・レビュー 取材・インタビュー 研修 依頼フォーム 仕事のご依頼は以下のフォームからお願いします。\n依頼フォームへ\n","permalink":"https://sivchari.dev/ja/job/","summary":"\u003ch2 id=\"受け付けている仕事\"\u003e受け付けている仕事\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e登壇・講演\u003c/li\u003e\n\u003cli\u003e技術顧問・アドバイザー\u003c/li\u003e\n\u003cli\u003e執筆・レビュー\u003c/li\u003e\n\u003cli\u003e取材・インタビュー\u003c/li\u003e\n\u003cli\u003e研修\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch2 id=\"依頼フォーム\"\u003e依頼フォーム\u003c/h2\u003e\n\u003cp\u003e仕事のご依頼は以下のフォームからお願いします。\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"/req\"\u003e依頼フォームへ\u003c/a\u003e\u003c/p\u003e","title":"Job"},{"content":"2026 Go 1.26 リリースパーティ Who tests the Tests ? Go Conference mini 2026 in Sendai\n2025 Google Developer Group - DevFest Tokyo 2025 Go1.25 リリースパーティ ~ nil pointer bug ~ govalid ~ Type-safe validation tool ~ 静的解析 x Kubernetes API Conventions = Kube API Linter What\u0026rsquo;s GOCACHEPROG ? 2024 Visualization Go scheduler by gosched-simulator gh_extensions による快適な OSS 生活 protoc plugin のはじめかた Deep dive into runtime features provided by Go1.22 Go 1.22 range over func/range over int 2023 GopherCon 2023 recap Dive into arena package ~ Go 1.20 release party ~ What\u0026rsquo;s context package Go 1.22 で追加予定だった zero の紹介 Go Conference mini 2023 in Kyoto\nDive into testing package ~ Part of Fuzzing Test ~ database/sql の仕組みについて goroutine の仕組みについて ","permalink":"https://sivchari.dev/ja/talks/","summary":"\u003ch2 id=\"2026\"\u003e2026\u003c/h2\u003e\n\u003ch3 id=\"go-126-リリースパーティ\"\u003eGo 1.26 リリースパーティ\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/20cfa94bfea84cbda038331cd4c236d6\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"who-tests-the-tests-\"\u003eWho tests the Tests ?\u003c/h3\u003e\n\u003cp\u003eGo Conference mini 2026 in Sendai\u003c/p\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/556b6c20df59499f8871c110a126e01b\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"2025\"\u003e2025\u003c/h2\u003e\n\u003ch3 id=\"google-developer-group---devfest-tokyo-2025\"\u003eGoogle Developer Group - DevFest Tokyo 2025\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/6993c257b730470295668c50a9cb9783\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"go125-リリースパーティ--nil-pointer-bug-\"\u003eGo1.25 リリースパーティ ~ nil pointer bug ~\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/8d30431664dd4876b670306de5781afd\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"govalid--type-safe-validation-tool-\"\u003egovalid ~ Type-safe validation tool ~\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/ff70775a01a546cba8d6b3eb40e7f83e\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"静的解析-x-kubernetes-api-conventions--kube-api-linter\"\u003e静的解析 x Kubernetes API Conventions = Kube API Linter\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/8c5435b31a5442c081609b028627af80\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"whats-gocacheprog-\"\u003eWhat\u0026rsquo;s GOCACHEPROG ?\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/d2b3fea7eda44f688125e2eea9f2f3c3\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"2024\"\u003e2024\u003c/h2\u003e\n\u003ch3 id=\"visualization-go-scheduler-by-gosched-simulator\"\u003eVisualization Go scheduler by gosched-simulator\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/774c68ba598d4f36964f9ee6a624b31a\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"gh_extensions-による快適な-oss-生活\"\u003egh_extensions による快適な OSS 生活\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/66d1472695ee42f2a60e2bec6e9149e8\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"protoc-plugin-のはじめかた\"\u003eprotoc plugin のはじめかた\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/fa79314e96a64de9add3d91960ffa0c8\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"deep-dive-into-runtime-features-provided-by-go122\"\u003eDeep dive into runtime features provided by Go1.22\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/ff89cff40d504e359e18b59d75792126\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"go-122-range-over-funcrange-over-int\"\u003eGo 1.22 range over func/range over int\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/3fdf5eaaae3d4f9ca84157b090051f31\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch2 id=\"2023\"\u003e2023\u003c/h2\u003e\n\u003ch3 id=\"gophercon-2023-recap\"\u003eGopherCon 2023 recap\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/fe2f26a818244b36bb829b780f01682b\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"dive-into-arena-package--go-120-release-party-\"\u003eDive into arena package ~ Go 1.20 release party ~\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/472ddbe068c24287b41b417543f6a585\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"whats-context-package\"\u003eWhat\u0026rsquo;s context package\u003c/h3\u003e\n\u003cdiv class=\"speakerdeck-embed\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; margin: 1rem 0;\"\u003e\n  \u003ciframe\n    class=\"speakerdeck-iframe\"\n    frameborder=\"0\"\n    src=\"https://speakerdeck.com/player/0dd58f6004f54f68a0c0abe4d2c36679\"\n    allowfullscreen=\"true\"\n    style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 40px;\"\u003e\n  \u003c/iframe\u003e\n\u003c/div\u003e\n\n\u003ch3 id=\"go-122-で追加予定だった-zero-の紹介\"\u003eGo 1.22 で追加予定だった zero の紹介\u003c/h3\u003e\n\u003cp\u003eGo Conference mini 2023 in Kyoto\u003c/p\u003e","title":"Talks"}]