【Pythonで学ぶ】テレシーVPoE佐々木氏が「依存性逆転の法則」で基幹システムをモダナイズ!PyCon mini 東海登壇の全貌

テレシーVPoE佐々木氏、PyCon mini 東海で「依存性逆転の法則」による基幹システムモダナイズ戦略を解説

2025年11月8日(土)、名古屋市で開催されるPython技術カンファレンス「PyCon mini 東海」において、株式会社CARTA HOLDINGSのグループ会社である株式会社テレシーのVPoE兼開発部部長兼テックリード、佐々木大輔氏(fujidomoe)が登壇します。佐々木氏は、「ビジネスを止めずに基幹バッチを安全にリプレイスする」という、多くの企業が直面する課題に対し、「依存性逆転の法則(DIP)」を用いた現代的なアーキテクチャと、その実践知見を紹介する予定です。

この発表は、既存システムを運用しながら最新の技術を取り入れ、より堅牢で保守しやすいシステムへと進化させるための具体的なアプローチを学ぶ貴重な機会となるでしょう。AIやプログラミングに詳しくない方でも、基幹システムのモダナイズがいかに重要か、そしてそれを実現するための設計思想とは何かを、分かりやすく解説していきます。

PyCon mini 東海で登壇するテレシーの佐々木氏

PyCon mini 東海とは?Python技術者が集う祭典

「PyCon mini 東海」は、Pythonプログラミング言語のコミュニティのための技術カンファレンスです。2025年も名古屋市を舞台に開催され、全国各地からPythonista(Pythonプログラマーの愛称)が集まります。このイベントの目的は、Pythonに関する最新情報の共有と、日本各地のPython技術者たちが交流を深められる場を提供することにあります。

主催はPyCon mini 東海 実行委員会、共催は一般社団法人PyCon JP Associationです。初心者からベテランまで、幅広いレベルのエンジニアが参加し、最新の技術トレンドや実践事例を学ぶことができます。

テレシー佐々木大輔氏の登壇テーマを深掘り:基幹バッチのモダナイゼーション

佐々木氏のセッションは「稼働中のバッチアプリケーションを依存性逆転の法則でモダナイズ – 型安全と堅牢なテストによるリプレイス戦略」と題され、2025年11月8日(土)14:50から15:15まで、中日ホール&カンファレンスにて行われます。

バッチアプリケーションとは?なぜモダナイズが必要なのか?

まず、「バッチアプリケーション」とは何かをAI初心者向けに説明しましょう。バッチアプリケーションとは、事前に決められた一連の処理をまとめて実行するプログラムのことです。例えば、毎日の夜間に顧客データを集計したり、月末に請求書を自動生成したりするなど、人間が手動で操作しなくても自動的に動くシステムを指します。

テレシーのサービスを支えるバックエンドシステムにも、長期間にわたりビジネス価値を生み出し続けている基幹バッチアプリケーションが存在します。しかし、初期開発から時間が経つと、以下のような課題に直面することがよくあります。

  • 技術的負債の蓄積: 開発当初の技術や設計が古くなり、新しい機能を追加したり、不具合を修正したりするのが難しくなります。

  • 保守性の低下: コードが複雑化し、どこをどう変更すれば良いのかが分かりにくくなります。

  • 拡張性の限界: ビジネスの変化に合わせてシステムを拡張しようとしても、構造が古いために新しい技術やサービスを導入しにくい状況になります。

  • 属人化: 特定の担当者しかシステムの詳細を知らず、その人がいないと誰も手が出せない状態になることがあります。

これらの課題を解決し、システムを現代のビジネスニーズに合わせて進化させることを「モダナイズ」と呼びます。モダナイズは、単に見た目を新しくするだけでなく、システムの内部構造を改善し、将来にわたってビジネスを支え続けるための重要な投資なのです。

佐々木氏のセッションでは、このモダナイズを「稼働中のシステムを止めずに」行うという、非常に高度で実用的なアプローチが紹介されます。これは、多くの企業が抱える「システム改修中にビジネスが停止するリスク」を回避しながら、着実にシステムを進化させる方法論であり、その秘訣が「依存性逆転の法則(DIP)」にあるとされています。

「依存性逆転の法則(DIP)」とは?AI初心者にもわかる解説

佐々木氏の発表の核心となる「依存性逆転の法則(Dependency Inversion Principle: DIP)」は、オブジェクト指向プログラミングにおける設計原則の一つであるSOLID原則(※)の「D」にあたる考え方です。

(※)SOLID原則とは、ソフトウェア設計における5つの原則の頭文字をとったもので、保守性、拡張性、理解しやすいコードを書くための指針となります。

DIPを簡単に説明すると、「プログラムの部品同士の関係を、具体的なものから抽象的なものへと逆転させる」という考え方です。これだけ聞くと難しく感じるかもしれませんが、日常の例に例えると分かりやすいかもしれません。

DIPを身近な例で理解する

例えば、あなたがコーヒーを淹れるとします。

DIPがない場合(具体的なものに依存)
「コーヒーメーカー」という具体的な機械に直接「コーヒー豆」を入れて、スイッチを押す、というプログラムを考えます。この場合、「コーヒーメーカー」が壊れたり、別の種類の「エスプレッソマシン」を使いたくなったりすると、プログラム全体を大きく変更しなければなりません。なぜなら、「コーヒーメーカー」という具体的な部品に強く依存しているからです。

DIPがある場合(抽象的なものに依存)
DIPの考え方を取り入れると、あなたはまず「飲み物を作る」という抽象的な「インターフェース」(※)を考えます。そして、「コーヒーメーカー」も「エスプレッソマシン」も、この「飲み物を作る」というインターフェースを満たす具体的な道具だと位置づけます。

(※)インターフェース:プログラミングにおいて、ある機能やサービスが持つべき操作の「窓口」や「契約」のようなものです。具体的な実装は問わず、「何ができるか」を定義します。

この設計では、あなたがコーヒーを淹れるプログラムは、「飲み物を作る」という抽象的な機能に指示を出すだけでよくなります。具体的な機械(コーヒーメーカーやエスプレッソマシン)が変わっても、プログラムの主要部分は変更する必要がありません。新しい種類の機械が登場しても、それが「飲み物を作る」というインターフェースを満たしていれば、簡単に組み込むことができます。

DIPがもたらすメリット

ソフトウェア開発においてDIPを適用すると、以下のような大きなメリットがあります。

  1. 柔軟性の向上: 個々の部品が特定の具体的な実装に依存しなくなるため、部品の交換やシステムの変更が容易になります。これは、ビジネスの変化に迅速に対応できるシステムを構築する上で非常に重要です。
  2. テストの容易性: 具体的な部品ではなく、抽象的なインターフェースに依存するため、テストを行う際に「モック」(本物の部品の代わりに、テストのために一時的に用意する偽物の部品)を使いやすくなります。これにより、部品単体でのテスト(単体テスト)が格段にしやすくなり、バグの早期発見につながります。
  3. 保守性の向上: 各部品の役割が明確になり、互いの影響範囲が限定されるため、コードの変更が他の部分に予期せぬ影響を与えるリスクが減ります。結果として、システムの保守や改善がしやすくなります。
  4. 再利用性の向上: 抽象的なインターフェースを通じて設計された部品は、他のプロジェクトや異なる状況でも再利用しやすくなります。

テレシーでは、このDIPの考え方を用いて、古くなった基幹バッチアプリケーションを、ビジネスを止めずに段階的に新しいアーキテクチャへと移行させることに成功しました。これは、既存の資産を尊重しつつ、未来を見据えたシステム刷新を行うための、非常に洗練された戦略と言えるでしょう。

テレシーの実践事例:最新ツールと堅牢なテスト戦略

テレシーの基幹バッチアプリケーションは、その初期開発から時間が経過し、明確なアーキテクチャパターンやコーディングルールが不明瞭になるという課題を抱えていました。このような状況は、多くのレガシーシステムで共通して見られる問題です。

佐々木氏の発表では、この課題に対し、DIPに基づいた現代的なアーキテクチャへの段階的なリプレイスをどのように実現したかの実践事例が公開されます。安定稼働を維持しながら進化を遂げるために不可欠な、以下の最新ツール群が活用されました。

  • mypy: Pythonのコードに「型ヒント」を導入し、プログラムの誤りを事前に発見しやすくするツールです。これにより、コードの品質と堅牢性が向上します。

  • pydantic: データモデルを定義し、データのバリデーション(検証)や設定管理を容易にするライブラリです。入力されるデータの整合性を保証し、予期せぬエラーを防ぎます。

  • uv: Pythonのパッケージ管理を高速化し、依存関係の解決を効率的に行うためのツールです。

  • ruff: Pythonのコードを自動的に整形し、スタイルガイド(PEP 8など)に準拠させるためのリンター・フォーマッターです。チーム全体のコーディングスタイルを統一し、可読性を高めます。

これらのツールを活用することで、テレシーは秩序ある開発環境を構築しました。さらに、pytestによる堅牢なテスト戦略についても、具体的なコードを交えて詳細に解説されます。pytestはPythonで広く使われているテストフレームワークで、柔軟性と拡張性に優れており、効率的なテスト記述を可能にします。

技術的負債の解消と組織的なプロセス

佐々木氏の発表では、単なる技術的な解決策だけでなく、既存開発資産への敬意を払いながら、技術的負債を解消するためのリプレイスの必要性をロジカルに言語化し、チーム全体の協力を得てプロジェクトを成功に導いた組織的なプロセスについても焦点を当てて紹介されます。

これは、技術的な課題解決だけでなく、それを組織全体で推進するためのコミュニケーションや合意形成がいかに重要であるかを示す貴重な知見となるでしょう。

登壇者プロフィール:佐々木 大輔氏

テレシーVPoE 佐々木大輔氏

佐々木 大輔(ささき だいすけ)氏

大学卒業後、オンラインゲームの開発に携わり、RTS(リアルタイムストラテジー)やアクションRPGのエンジニアリングを手掛けました。2017年に株式会社VOYAGE GROUP(現 株式会社CARTA HOLDINGS)に入社し、子会社の株式会社fluctにて広告配信のエンジニアリングに従事。2020年には株式会社テレシーにJOINし、リードエンジニアとしてアプリケーションとインフラのエンジニアリングを担当しました。2024年からはVPoE兼テックリードに就任し、テレシーの技術戦略と開発組織を牽引しています。

佐々木氏の多岐にわたる経験と深い技術的知見が、今回のセッションでの具体的な実践事例と解説に説得力をもたらすことでしょう。

株式会社テレシー(TELECY)について

株式会社テレシーは、クライアント企業の課題に対し、運用型テレビCMを軸とした統合型マーケティング・コミュニケーションサービスを提供する企業です。戦略策定からCMクリエイティブの企画制作、メディアバイイング、効果測定まで一気通貫でクライアント企業に伴走し、事業成長に貢献しています。

テレシーの主な特長

  1. 統合コミュニケーション施策: 運用型テレビCMを核に、クライアント企業の課題に合わせた統合的なマーケティング戦略を立案・実行します。クリエイティブ制作、メディア選定、効果測定までワンストップで対応します。
  2. 特許取得の可視化技術: 特許を取得した「テレシーアナリティクス」により、Web広告と同じ指標でテレビCMの効果を可視化できます。これにより、テレビCMの効果をより客観的に評価し、次の施策に活かすことが可能になります。
  3. 多様な広告媒体: タクシー広告やエレベーター広告といったオフライン広告から、TVerやYouTubeなどのオンライン広告まで、幅広い広告媒体を取り扱い、クライアントのニーズに応じた最適なメディアミックスを提案します。

テレシーは、データに基づいた効果的なマーケティング戦略を通じて、企業の成長をサポートしています。

まとめ:進化し続けるシステム開発の未来

テレシーの佐々木大輔氏が「PyCon mini 東海」で発表する「依存性逆転の法則」を用いた基幹バッチアプリケーションのモダナイゼーション事例は、多くの企業が直面するシステム開発の課題に対する具体的な解決策を示しています。

AI初心者の方にとっては、今回の記事を通じて「なぜ古いシステムを新しい技術で改善する必要があるのか」「そのためにはどのような設計の考え方があるのか」といった、システム開発の根本的な重要性を理解するきっかけになったことでしょう。特に「依存性逆転の法則(DIP)」のように、一見難解に思える設計原則も、具体的な例を通じて理解を深めることで、より堅牢で柔軟なシステムを構築するための強力な武器となることが分かります。

稼働中のシステムを止めずに進化させる技術と、それを支えるチームの協力、そして最新ツールの活用は、これからのソフトウェア開発においてますます重要になるでしょう。今回の発表は、Pythonコミュニティだけでなく、システム開発に携わるすべての人々にとって、大きな示唆を与えるものとなるはずです。技術的負債の解消と、未来を見据えたシステム構築への挑戦は、これからも続いていきます。

タイトルとURLをコピーしました