6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

エンジニアのためのワールドカップ オランダ戦観戦ガイド ── 11人の選手を技術概念で解説する

6
Last updated at Posted at 2026-06-13

📝 はじめに

こんにちは、シュートです。

前回までは React 関連の記事を書いていましたが、今回は完全に別ジャンルです。

2026年6月15日(月)朝5時から、FIFA ワールドカップで日本代表 vs オランダ代表の試合があります。

この記事は、「サッカーは詳しくないけど、せっかくのW杯だから日本戦は観たい」というエンジニア向けの観戦ガイドです。

オランダ代表の予想スタメン11人を、それぞれ技術概念に対応させて解説します。

例えば、

  • キャプテンのファン・ダイク → Tech Lead
  • 爆速DFのファンデフェン → Rustで書かれたネイティブコード
  • 中盤のデ・ヨング → ストリーム処理

のような対応です。

サッカー用語が分からなくても、技術用語を経由すれば、
「あ、この選手はこういう役割なのか」
と直感的に理解できるはずです。

なお、ここでの技術アナロジーは、厳密な定義対応ではなく、選手の特徴をエンジニアに直感的に伝えるための比喩です。

サッカーファンが読んでも、
「あ、確かにファン・ダイクってTech Leadっぽいな」
と楽しんでもらえると思います。

エンジニア × サッカーファンという交差点にいる自分にしか書けない記事だと思ったので、書いてみました。

試合は 日本時間6月15日(月)朝5時キックオフ
観戦のお供にどうぞ。


⚽ 試合情報

キックオフ日時

  • 2026年6月15日(月) 日本時間 朝5時 キックオフ
  • 2026 FIFA ワールドカップ グループステージ第1戦

朝5時。
エンジニアにとっては、朝活と言い張ればギリギリ見やすい時間ですね。


グループステージ初戦の重み

グループステージ初戦は、スプリント初日のキックオフミーティングみたいなものです。

ここでどんな結果を出すかによって、その後の戦い方が大きく変わります。

  • 勝てば、グループ突破に向けて大きなアドバンテージになる
  • 引き分けなら、まだ立て直し可能。ただし2戦目以降のプレッシャーは増える
  • 負ければ、残り2戦の戦略がかなり難しくなる

プロジェクトで言えば、最初のMTGでスコープ・優先順位・リスク認識を間違えると、その後のスプリント全体に影響が出るのと近いです。

初戦は、それくらい重いです。


オランダの現状

オランダ代表は直近の試合で勝利したものの、内容としては辛勝でした。
完璧な仕上がりとは言い切れない状態で、この大会に入ってきています。

エンジニア的に言うと、

テストは通ったが、コードレビューでパフォーマンス改善や設計上の指摘が複数入っている状態

に近いです。

動作はする。
しかし、まだ最適化の余地はある。

日本代表がその隙をどう突くかが、この試合の大きなポイントになります。


📐 オランダの予想スタメンとシステム

フォーメーション: 4-3-3

オランダ代表は、直近のウズベキスタン戦と同じ 4-3-3 で挑む見込みです。

4-3-3を技術用語で説明すると、厳密なWebアプリの4層アーキテクチャというより、役割ごとに責務が分かれたレイヤードな処理系に近いです。

サッカー エンジニア視点での役割
第1層 GK 最後の砦。エラーを検知し、処理を継続する
第2層 DF 守備と初期ビルドアップを担う基盤層
第3層 MF 状態管理・ルーティング・攻守の切り替えを担うロジック層
第4層 FW 最終アウトプット、つまりゴールを生成する層

このシステムでは、ボール = データです。

GKやDFから始まったボールが、MFを経由してFWへ届けられ、最終的にゴールというアウトプットに変換されます。

もちろんサッカーはWebアプリのように一方向にきれいに流れるわけではありません。
ただ、各ポジションに明確な責務があり、それぞれが連携して最終成果物を出すという意味では、かなりエンジニアリングに近い構造を持っています。


予想スタメン11人の配置

image.png

上が攻撃方向、下が自陣ゴール側です。


アナロジー一覧表

ここから先の章では、11人を順に解説していきます。
観戦中に手元に置いてもらえるよう、先に対応表を貼っておきます。

ポジション 選手 技術アナロジー
GK Verbruggen try-catch + 復旧処理
左SB van de Ven Rust / ネイティブコード
CB van Hecke APIゲートウェイ
CB(C) van Dijk Tech Lead
右SB Dumfries async/await
MF De Jong ストリーム処理
MF Gravenberch フルスタックエンジニア
MF Reijnders Promiseのresolve
FW(左) Gakpo Polymorphism / 汎用コンポーネント
FW(中央) Malen Pure Function
FW(右) Summerville ベータ版 / 新興フレームワーク

🥅 GK ── 最後の砦

Bart Verbruggen

呼称: フェルブルッヘン

技術アナロジー: try-catch + 復旧処理

ブライトン所属の若き守護神です。

セービング能力は同年代でも高いレベルにあり、さらに現代GKに求められる足元の技術も持っています。
つまり、単にシュートを止めるだけでなく、ボールを保持した後にビルドアップへ参加できるGKです。

Verbruggenを try-catch + 復旧処理 に例えたのは、次の2点からです。

  • セービング = 例外キャッチ
  • ビルドアップ参加 = 復旧処理

相手のシュートは、システムにとっての例外です。
それをキャッチして終わりではなく、キャッチした後に適切な味方へパスを出し、チーム全体を正常な状態に戻す。

try {
  opponentShoot();
} catch (error) {
  verbruggen.save(error);
  restartBuildUp();
}

重要なのは、例外を握りつぶすことではありません。
例外を処理した後、システム全体を再び前進可能な状態に戻すことです。

それがVerbruggenの役割です。

観戦中の注目ポイント

  • GKなのにディフェンスライン近くまで上がってビルドアップに参加する場面
  • セーブ後、どこにボールを配給するかの判断
  • ただ止めるだけでなく、次の攻撃につなげる意識

🛡️ DF ── 守備の要

Denzel Dumfries

右SB / 呼称: ドゥンフリース

技術アナロジー: async/await

インテル・ミラノ所属の右サイドバック。
特徴は、スピード、運動量、攻撃参加の積極性です。

Dumfriesを async/await に例えたのは、非同期処理そのものというより、タスク完了後に即座に次の処理へ遷移する制御フローに近いからです。

守備が終わった瞬間、すぐに攻撃参加へ切り替える。
ボールを奪った瞬間、右サイドを一気に駆け上がる。

await defend();   // 守備タスクが完了
overlap();        // 完了を検知して即座に攻撃参加

async/await は、Promiseベースの非同期処理を同期的に見える形で書ける構文です。
ただし、何でも速くなる魔法ではありません。

Dumfriesのすごさは、まさにそこです。
「非同期だから速い」のではなく、次のタスクへ移る判断と実行が異常に速い

守備タスクがresolveした瞬間、攻撃タスクが走り出す。
そんな選手です。

観戦中の注目ポイント

  • 守備が終わった直後、そのまま前線へ走り出す瞬間
  • 右サイドを何度も上下動するスタミナ
  • 攻撃参加のタイミング

Stefan van Hecke

CB / 呼称: ファン・ヘッケ

技術アナロジー: APIゲートウェイ

ブライトン所属のCB。
足元の技術があり、ビルドアップの起点になれる選手です。ロングフィードの精度も高く、後方から前線へボールを届ける役割を担います。

van HeckeをAPIゲートウェイに例えたのは、次のような役割があるからです。

  • 相手の攻撃を受けてボールを保持する = リクエストを受け取る
  • 足元で丁寧にボールを捌く = リクエストを検証し、必要に応じて整形する
  • ロングフィードで味方に配給する = 適切な宛先へルーティングする

APIゲートウェイは、リクエストをそのまま流すだけではありません。
認証、ルーティング、変換、制御などを通じて、バックエンドへ適切に処理を渡します。

van Heckeも同じです。

ただボールを跳ね返すだけではなく、受け取ったボールを一度落ち着かせ、状況を見て、最適な味方へ届ける。

const request = receiveBall();

const route = decideRoute(request);

passTo(route);

守備者でありながら、攻撃の入口でもある。
それがvan Heckeです。

観戦中の注目ポイント

  • CBなのに落ち着いてボールを保持する場面
  • 前線へのロングフィード
  • どの味方にボールを預けるかの判断

Virgil van Dijk

CB / キャプテン / 呼称: ファン・ダイク

技術アナロジー: Tech Lead

リバプール所属。
オランダ代表のキャプテンであり、現代最高クラスのCBです。

守備の強さ、空中戦、スピード、フィード能力、セットプレーでの得点力。
CBに求められる要素をほぼすべて高水準で備えています。

van DijkをTech Leadに例えたのは、次の理由からです。

  • 守備の強さ = 品質を守る最終レビュー
  • キャプテンシー = チーム全体の方向性を決める
  • フィード能力 = 適切なメンバーに適切な指示を出す
  • 得点力 = 自分でも実装できる

Tech Leadは、単に指示を出すだけの存在ではありません。
設計を見て、コードの品質を守り、メンバーを導き、必要な場面では自分でも実装します。

van Dijkも同じです。

class VanDijk implements TechLead {
  reviewDefense() {
    preventCriticalBug();
  }

  assignPass() {
    distributeBallToBestOption();
  }

  implementWhenNeeded() {
    scoreFromSetPiece();
  }
}

彼がいるだけで、チーム全体の守備構造が安定します。
逆に言えば、彼が欠けるとシステム全体の信頼性が下がる。

まさに、ピッチ上のTech Leadです。

観戦中の注目ポイント

  • 空中戦の強さ
  • ピンチの場面でのポジション修正
  • 味方への声がけ
  • セットプレーでの得点参加

Micky van de Ven

左SB / 呼称: ファンデフェン

技術アナロジー: Rustで書かれたネイティブコード

スパーズ所属。
最大の特徴は、異次元のスプリント速度です。

van de VenをRustに例えたのは、単に「速い」からだけではありません。

  • スプリント速度 = ネイティブに最適化された実行速度
  • 対人守備の強さ = メモリ安全性のような堅牢さ
  • 戻りの速さ = 低レイテンシな復旧処理

もちろん、実際のソフトウェア性能は言語だけで決まりません。
Rustが常にJavaScriptより速い、という単純な話ではありません。

ただ、比喩として言うなら、van de Venのスプリントは、JITで頑張っているというより、最初からネイティブに最適化されたバイナリが走っているような速さです。

通常のスプリント:
JavaScript実行

van de Venのスプリント:
Rustコンパイル済みバイナリ実行

「速い」というより、動作レイヤーが違う。
そんな印象を受ける選手です。

観戦中の注目ポイント

  • 左サイドでのスプリント速度
  • 裏を取られた後のリカバリー
  • 対人守備の強さ
  • 攻撃参加したときの加速

⚙️ MF ── ピッチの心臓部

Frenkie de Jong

MF / 呼称: デ・ヨング

技術アナロジー: ストリーム処理

バルセロナ所属のMF。
ボールを持って前進するキャリー能力が非常に高く、プレッシャーを受けても簡単には失わない選手です。

de Jongをストリーム処理に例えたのは、彼がボールを止めずに、運びながら、判断しながら、前進できるからです。

  • ドリブルで前進する = データを流しながら処理する
  • プレッシャーを受けても止まらない = 高負荷時でもスループットが落ちにくい
  • 周囲を見ながら運ぶ = リアルタイムに処理を挟み続ける

一般的な処理なら、一度データを受け取り、バッファに置き、考えてから次に流します。

しかしde Jongは違います。

受ける。
運ぶ。
かわす。
判断する。
渡す。

この一連の処理を、止まらずに行います。

for (const pressure of opponentPressing) {
  deJong.carryBall();
  deJong.scanField();
  deJong.progress();
}

ボールを持ちながら状況を更新し続ける。
まさに、ピッチ上のストリーム処理です。

観戦中の注目ポイント

  • ボールを持ったまま相手をかわして前進する場面
  • プレッシャーを受けても慌てないキープ力
  • 味方にパスを出す直前の視野の広さ

Ryan Gravenberch

MF / 呼称: フラーフェンベルフ

技術アナロジー: フルスタックエンジニア

リバプール所属。
遠藤航の同僚でもあります。

キャリーが上手く、守備にも攻撃にも顔を出せる選手です。
最近は得点に絡む場面も増えており、ミドルシュートも怖い存在です。

Gravenberchをフルスタックエンジニアに例えたのは、役割の幅が広いからです。

  • 守備に戻れる = バックエンドも見られる
  • ボールを運べる = レイヤー間をつなげられる
  • ゴール前にも出ていける = フロント側のアウトプットも出せる
  • ミドルシュート = 直接デプロイできるホットパス

de Jongが「運搬の専門家」だとすれば、Gravenberchは「運んで、つないで、自分でも最後まで行ける」タイプです。

class Gravenberch implements FullStackEngineer {
  defend() {
    recoverBall();
  }

  carry() {
    progressThroughMidfield();
  }

  attack() {
    shootFromMiddleRange();
  }
}

守備から攻撃まで、広い範囲をカバーする。
それがGravenberchの強みです。

観戦中の注目ポイント

  • ボール保持からそのままシュートに持ち込む場面
  • 守備でも攻撃でも顔を出す運動量
  • 中盤での前進力

Tijjani Reijnders

MF / 呼称: ラインデルス

技術アナロジー: Promiseのresolve

マンチェスター・シティ所属。
トップ下からの抜け出しや、ラストパスで決定機を作る能力に優れた選手です。

ReijndersをPromiseのresolveに例えたのは、未確定だった攻撃を、決定機という値に確定させる選手だからです。

  • トップ下からの抜け出し = 適切なタイミングで処理が発火する
  • ラストパス = Promiseに渡される値
  • 決定機の創出 = pending状態の攻撃をresolveする

Promiseは、まだ結果が分からない非同期処理を表します。
Reijndersは、停滞していた攻撃に入り込み、ラストパスや抜け出しによって、攻撃の結果を一気に決定機へ近づけます。

const chance = new Promise<Pass>((resolve) => {
  const perfectPass = reijnders.moveBetweenLines();
  resolve(perfectPass);
});

const shot = await chance;

Reijndersが動き出した瞬間、攻撃はpendingからfulfilledへ近づきます。

彼がresolveする値の質が、チームの決定力を左右します。

観戦中の注目ポイント

  • 相手の守備ラインの間に入り込む動き
  • FWへのラストパス
  • ゴール前への飛び出し
  • ゴール後のパフォーマンス

⚔️ FW ── 最終アウトプット

Cody Gakpo

左FW / 呼称: ガクポ

技術アナロジー: Polymorphism / 汎用コンポーネント

リバプール所属。
左FW、右FW、CFなど複数のポジションをこなせる万能型のアタッカーです。

GakpoをPolymorphism、つまり多態性に例えたのは、同じ選手でありながら、配置によって異なる振る舞いを実装できるからです。

  • 左FWでプレーできる = サイドから仕掛ける実装
  • 中央でもプレーできる = フィニッシャーとしての実装
  • 右にも流れられる = 別コンテキストでも動く
  • ドリブルもシュートもできる = 複数の振る舞いを持つ
type Position = "LW" | "RW" | "CF";

function gakpo(position: Position): Output {
  return playAs(position);
}

ジェネリックな攻撃コンポーネントとして、複数のポジションに差し込める。
それがGakpoの強みです。

ただし、今シーズンはやや調子を落としており、安定性という意味では課題もあります。
エンジニア的に言えば、ポテンシャルは高いが、最近は少しflaky test気味という状態です。

観戦中の注目ポイント

  • 左サイドだけでなく中央や右にも流れる動き
  • ドリブル突破
  • シュートの精度
  • 調子が上がっているかどうか

Donyell Malen

CF / 呼称: マレン

技術アナロジー: Pure Function

ローマ所属。
ゴール前での強さと決定力が特徴のストライカーです。

MalenをPure Functionに例えたのは、責務が非常に明確だからです。

Pure Functionは、一般に次のような性質を持ちます。

  • 同じ入力に対して同じ出力を返す
  • 外部状態を変更しない
  • 副作用を持たない

もちろん、サッカーでは同じような決定機でも毎回ゴールになるわけではありません。
なので、ここで言いたいのは「必ずゴールする」という意味ではありません。

Malenは、余計なことをしすぎるタイプではなく、ゴール前で受けた入力を、できるだけ高い確率でシュートやゴールという出力に変換する選手です。

function malen(chance: Opportunity): Shot {
  return finish(chance);
}

スコープは明確。
入力は決定機。
出力はシュート、あるいはゴール。

チームにとって、役割が読みやすく、テストしやすい関数のような存在です。

観戦中の注目ポイント

  • ペナルティエリア内での体の張り方
  • 決定機での冷静さ
  • フィジカルコンタクトで負けない場面
  • ゴール前で余計なタッチをせず打ち切る判断

Noa Summerville

右FW / 呼称: サマーヴィル

技術アナロジー: ベータ版 / 新興フレームワーク

ハマーズ所属。
圧倒的なスピードとドリブルが武器の若手アタッカーです。

まだ完成されたワールドクラスとは言えないものの、瞬間的な破壊力は非常に高い選手です。

Summervilleをベータ版、あるいは新興フレームワークに例えたのは、次の理由からです。

  • 圧倒的なスピードと個人技 = 特定の処理に対して高いパフォーマンスを発揮する
  • まだ安定感は発展途上 = 本番環境での全面採用には検証が必要
  • 将来性が高い = コミュニティの期待値が高い
  • ハマると強烈 = 既存技術を一部領域で上回る瞬間がある

新興フレームワークは、すべてのユースケースで安定しているわけではありません。
しかし、特定の条件下では既存の選択肢を一気に上回ることがあります。

Summervilleも同じです。

試合全体を支配する安定感はまだ発展途上かもしれません。
しかし、1対1の局面では、突然とんでもない突破を見せる可能性があります。

if (oneOnOne) {
  summerville.explode();
}

大舞台でどこまで本領を発揮できるか。
そこが一番の注目点です。

観戦中の注目ポイント

  • 右サイドでの1対1
  • 瞬間的な加速
  • ドリブル突破
  • 大舞台で安定して力を出せるか

👀 観戦中に注目すべきポイント

ここまでの11人の特徴を踏まえた上で、試合全体として注目したいポイントをまとめます。


1. 上田綺世 vs Virgil van Dijk

Pure StrikerとTech Leadの激突

この試合最大の見どころです。

オランダリーグ得点王の上田綺世が、現代最高クラスのCBであるvan Dijkにどう挑むか。

van Dijkは、コードレビューで品質を守るTech Leadのような存在です。
危険な攻撃を事前に察知し、致命的なバグになる前に潰します。

一方で、上田はゴール前で結果を出すストライカーです。

エンジニア的に言えば、

van Dijkのコードレビューを突破できるpull requestを、上田が出せるかどうか

ここが日本の得点への最大の鍵です。


2. 佐野海舟 vs Frenkie de Jong

ストリームを止められるか

de Jongを自由にさせると、オランダの攻撃は止まらなくなります。

彼はボールを持ちながら前進し、相手のプレッシャーを受けても処理を止めません。
まさに、高負荷時でもスループットが落ちにくいストリーム処理です。

佐野海舟がやるべきことは、そのストリームに割り込むことです。

流れ続けるデータをどこで止めるか

ここが日本の守備の鍵になります。


3. 冨安健洋 vs Cody Gakpo

安定性 vs 多態性

Gakpoは、左FW・右FW・CFをこなせる多態的なアタッカーです。
配置によって異なる振る舞いができるため、守る側からすると非常に厄介です。

一方で、今シーズンはやや調子を落としており、安定性には課題があります。

冨安健洋がその不安定さを突き、Gakpoの多態性を封じ込められるか。

エンジニア的に言えば、

汎用コンポーネントを、特定のユースケースに閉じ込めて無効化できるか

という勝負です。

冨安が完封できれば、オランダの攻撃の幅はかなり削れます。


まとめ

オランダは強いです。

個々のスペックが高く、システムとしての完成度も高い。
エンジニア的に言えば、GAFAM級のエンジニアが11人並んでいるようなチームです。

しかし、完璧に見えるシステムにも、必ずボトルネックはあります。

  • van DijkというTech Leadを、上田が突破できるか
  • de Jongというストリーム処理を、佐野が止められるか
  • Gakpoという多態的アタッカーを、冨安が封じられるか

日本代表がオランダのボトルネックを見つけ、そこを突けるか。
この試合の面白さは、まさにそこにあります。


🙌 おわりに

オランダは強い。

個々のスペックで言えば、GAFAM級のエンジニアが11人並んでいるようなチームです。

でも、だからこそ面白い。

エンジニアリングでも、完璧に見えるシステムに小さな穴を見つけ、そこを突くことで状況が変わることがあります。

上田がvan Dijkのコードレビューを突破する瞬間。
佐野がde Jongのストリームを断ち切る瞬間。
冨安がGakpoの多態性を封じる瞬間。

日本代表には、そのハックをピッチ上で見せてほしいです。

朝5時、眠い目をこすりながらでも観る価値があります。

さあ、全員で朝5時の熱狂に飲み込まれましょう🔥

最後まで読んでいただき、ありがとうございました!


参考リンク

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?