Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアの仕事の本質は「正しい名前をつけること」にある。〜レガシー移行プロジェクトで得た「気...

Avatar for HideyukiKitao HideyukiKitao PRO
February 16, 2026
13

 エンジニアの仕事の本質は「正しい名前をつけること」にある。〜レガシー移行プロジェクトで得た「気づき」〜

現在進行中のAS/400(IBM i)システム移行プロジェクトにおける知見と、レガシーマイグレーションの本質についての考察です。

時に「レガシー」として刷新対象となるAS/400ですが、システム内部と深く向き合う中で、真の課題は「ハードウェアの古さ」にはないと気づきました。
かつてのエンジニアたちは、当時の「物理的制約(計算資源の乏しさ)」に対して懸命に最適化を行い、その結果としてコードから「名前(意味)」が失われ、バイト操作に特化していったのです。

本スライドでは、以下の視点から「意味の回復」へのアプローチをまとめています。

AS/400の再評価と真の敵: オーパーツとしての先進性(単一レベル記憶など)
レガシーコードの正体: なぜコードは「バイト操作」になったのか(80桁の画面制約、高価なディスク容量)
「秘伝のタレ」の経済合理性: なぜif文は継ぎ足され続けたのか(副作用を避けるための生存戦略)

失われた名前を取り戻す2つのアプローチ:
構造への名付け(DOA:データ中心アプローチの視点)
振る舞いへの名付け(DDD:ドメイン駆動設計の視点)

単なるプログラミング言語の置き換え(COBOL to C#/Java)ではなく、かつて物理制約によってコードから追い出された「意味」と「文脈」をコードに取り戻すこと。
「名前をつける(概念を定義する)」という行為こそが、レガシーシステム移行プロジェクトの核心であるというお話です。

Avatar for HideyukiKitao

HideyukiKitao PRO

February 16, 2026
Tweet

More Decks by HideyukiKitao

Transcript

  1. 当時の計算資源における、3つの物理制約 当時のコードが難解なのは、3つの異なる物理制約に対し、 それぞれ 懸命な最適化 を行った結果です。 制約対象 当時の状況 最適化(生存戦略) 1. CPU

    非力な計算能力 バイト/ビット単位の操作 (処理の高速化) 2. 画面 80桁 × 24行 項目の圧縮・略語化 (表示領域の確保) 3. ディスク 容量単価が高い コード化・区分値化 (記憶容量の節約) エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 7
  2. 制約条件の変化 また、もう1つ必要な視点があります。 現代では、ボトルネック(制約条件)が移動しました。 資源 かつて → 現在 希少資源 計算資源・メモリ →

    人間の認知能力 優先事項 バイト操作の高効率 → 理解のしやすさ エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 10
  3. 1. 構造への名付け まず1つ目のアプローチ 「構造への名付け」 について 1テーブルに大量のカラムを持つ「大福帳」テーブル これを整理し、正規化します。 目的 データの整合性を構造が守る 実践

    1つのテーブルを、人が認識できる単位(モノ・コト)に分 解し、名前をつける このデータ構造がシステムの「骨格」となります。 エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 15
  4. 2. 振る舞いへの名付け そして現代の私が行うべきは、その長大なif文の連なりから 埋もれた業務ルール を発掘し、名前をつけることです。 変換前 if (sts == '2'

    && stock < 0) 変換後 CanShip() (出荷可能判定) 「どう処理するか(How)」という手続きの記述から、 「どういう状態か(What)」という 意図の記述 への移行です。 エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 19
  5. 表1:負債の正体 項目 構造への名付け 振る舞いへの名付け 制するべき 「カオス」 大福帳データベース 数百のカラム 従属性の混在 長大なif文の連なり

    手続きの羅列 記号と化した名前 「痛み」 データの正しさが 確信できない どこを直せばいいか 特定できない 失った「価値」 業務・経営判断に使用できる 正確な情報 ビジネスの成長に追従する 迅速な機能改善 エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 24
  6. 表2:設計の指針 項目 構造への名付け 振る舞いへの名付け 主な対象 データ(構造) ロジック(振る舞い) 名付けの役割 「誰の情報か?」の名づけ 単価は商品に

    住所は顧客に 「何をする処理か?」の名づけ ロジックの塊に 「送料を算出する」と名付ける 「価値」の源泉 データの整合性と 長期的な再利用性 ビジネスルールの 変更に対する適応力 エンジニアの仕事の本質は「正しい名前をつけること」にある。 2026.02 北尾 英之 (@kitaohx) 25