<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/feed.rss.xml" type="text/xsl" media="screen"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>reomin</title>
    <description></description>
    <link>https://speakerdeck.com/reomin</link>
    <atom:link rel="self" type="application/rss+xml" href="https://speakerdeck.com/reomin.rss"/>
    <lastBuildDate>2023-06-20 08:01:41 -0400</lastBuildDate>
    <item>
      <title>3年間お世話になった社内製PHP互換パッチに別れを告げるまで 〜 静的解析とリスク分析で進めたレガシー対応 〜</title>
      <description>PHP 8.0で文字列と数値のあいまい比較の挙動が変更され、0 == "foo" は true から false を返すようになりました。

この変更に対し、20年以上開発が続く当社の巨大なコードベースでは影響範囲をコードレビューやテストだけで把握しきれませんでした。
そこでPHP本体のCソースコードを修正し、PHP 7.4と8.0の比較処理を同時に実行して結果の差異を検知する互換パッチを構築することで、安全にバージョンアップを進めました。
詳細は当社 akamah の過去の登壇資料をご覧ください: https://speakerdeck.com/akamah/20nian-mononoju-da-regasipurodakutowo-php-8-dot-0niatupudetositaji-nodui-ce-tode-raretazhi-jian?slide=38

しかし導入から3年、お世話になった互換パッチ自体が次のバージョンアップを阻む技術的負債になっていました。残ったあいまい比較を全件レビューするのは現実的ではありません。

そこで nikic/php-parser で数万箇所のあいまい比較を抽出し、両辺の型が静的に決まらないものや外部入力由来の変数を含むものをパターン分類し、アプリケーションのどこで使われているかと業務影響の大きさを軸にリスクを分類し、確認すべき数百件まで絞り込んで互換パッチを外していきました。

仕様変更のリスクをどう見極め、技術的負債を外していったか。
影響範囲が見えないとき、どう安全に前へ進むか。リスク分析で前へ進んだ実践をお話しします！！</description>
      <media:content url="https://files.speakerdeck.com/presentations/54e325e34edf4017bb8bf8efe423de8c/preview_slide_0.jpg?40769652" type="image/jpeg" medium="image"/>
      <content:encoded>PHP 8.0で文字列と数値のあいまい比較の挙動が変更され、0 == "foo" は true から false を返すようになりました。

この変更に対し、20年以上開発が続く当社の巨大なコードベースでは影響範囲をコードレビューやテストだけで把握しきれませんでした。
そこでPHP本体のCソースコードを修正し、PHP 7.4と8.0の比較処理を同時に実行して結果の差異を検知する互換パッチを構築することで、安全にバージョンアップを進めました。
詳細は当社 akamah の過去の登壇資料をご覧ください: https://speakerdeck.com/akamah/20nian-mononoju-da-regasipurodakutowo-php-8-dot-0niatupudetositaji-nodui-ce-tode-raretazhi-jian?slide=38

しかし導入から3年、お世話になった互換パッチ自体が次のバージョンアップを阻む技術的負債になっていました。残ったあいまい比較を全件レビューするのは現実的ではありません。

そこで nikic/php-parser で数万箇所のあいまい比較を抽出し、両辺の型が静的に決まらないものや外部入力由来の変数を含むものをパターン分類し、アプリケーションのどこで使われているかと業務影響の大きさを軸にリスクを分類し、確認すべき数百件まで絞り込んで互換パッチを外していきました。

仕様変更のリスクをどう見極め、技術的負債を外していったか。
影響範囲が見えないとき、どう安全に前へ進むか。リスク分析で前へ進んだ実践をお話しします！！</content:encoded>
      <pubDate>Fri, 02 Oct 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/reomin/3-nenkan-osewa-ni-nata-shanaisei-php-gokan-pacchi-ni-wakare-o-tsugeru-made-seiteki-kaiseki-to-risuku-bunseki-de-susumeta-taiou</link>
      <guid>https://speakerdeck.com/reomin/3-nenkan-osewa-ni-nata-shanaisei-php-gokan-pacchi-ni-wakare-o-tsugeru-made-seiteki-kaiseki-to-risuku-bunseki-de-susumeta-taiou</guid>
    </item>
    <item>
      <title>_技法を探せ__の紹介</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/a5607dc77ff145c08370559349e7ab70/preview_slide_0.jpg?38784449" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Thu, 19 Mar 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/reomin/ji-fa-wotan-se-noshao-jie</link>
      <guid>https://speakerdeck.com/reomin/ji-fa-wotan-se-noshao-jie</guid>
    </item>
    <item>
      <title>新卒QAがWACATE参加で得られたもの</title>
      <description></description>
      <media:content url="https://files.speakerdeck.com/presentations/60524467646c47858f8f0934bdaf36cf/preview_slide_0.jpg?38733354" type="image/jpeg" medium="image"/>
      <content:encoded></content:encoded>
      <pubDate>Fri, 13 Mar 2026 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/reomin/xin-zu-qagawacatecan-jia-dede-raretamono</link>
      <guid>https://speakerdeck.com/reomin/xin-zu-qagawacatecan-jia-dede-raretamono</guid>
    </item>
    <item>
      <title>Dog apiを使用したLINEbotの作成</title>
      <description>6/28 LT会 様</description>
      <media:content url="https://files.speakerdeck.com/presentations/93badaf821ca473386db1870b2d5599b/preview_slide_0.jpg?26151575" type="image/jpeg" medium="image"/>
      <content:encoded>6/28 LT会 様</content:encoded>
      <pubDate>Sun, 30 Mar 2025 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/reomin/dog-apiwoshi-yong-sitalinebotnozuo-cheng</link>
      <guid>https://speakerdeck.com/reomin/dog-apiwoshi-yong-sitalinebotnozuo-cheng</guid>
    </item>
    <item>
      <title>緩く学ぶ英語学習</title>
      <description>シャンいの勉強会向けに作成した資料です</description>
      <media:content url="https://files.speakerdeck.com/presentations/13a87623b14843c1a4ec47a26a0fb774/preview_slide_0.jpg?26066323" type="image/jpeg" medium="image"/>
      <content:encoded>シャンいの勉強会向けに作成した資料です</content:encoded>
      <pubDate>Sun, 30 Mar 2025 00:00:00 -0400</pubDate>
      <link>https://speakerdeck.com/reomin/huan-kuxue-buying-yu-xue-xi</link>
      <guid>https://speakerdeck.com/reomin/huan-kuxue-buying-yu-xue-xi</guid>
    </item>
  </channel>
</rss>
