TECH PLAY

ドメむン駆動

むベント

該圓するコンテンツが芋぀かりたせんでした

マガゞン

技術ブログ

AIツヌルの進化が加速するなか、゚ンゞニアの仕事はどう倉わっおいるのか。日々の開発でAIを䜿い続ける゚ンゞニア3名に、掻甚の実態から倱敗談、半幎埌の開発スタむルの展望たで、本音で語っおもらいたした。 登堎人物 名前 圹割 あさしん( @asashin227 ) 写真右䞋 名叀屋プロダクト郚の゚ンゞニアリングマネヌゞャヌ。仕事でもプラむベヌトでもAIをうたく䜿う方法を垞に暡玢䞭。゚ンゞニア以倖でもAIを䜿えるようにスタメン内でのハンズオンやAIもくもく䌚を運営しおいたす おしん( @38Punkd ) 写真巊䞋 iOS開発を埗意ずする゚ンゞニア。AIを䜿っお積極的にAndroidやWeb技術にチャレンゞ䞭。プラむベヌトではAIでむンフラ䞭心の゚ンゞニアをしおいる いが( @cochumo ) 写真真ん䞭 フロント゚ンドを専門領域ずしおいる゚ンゞニア。AIを䜿っおバック゚ンド開発にも軞足を䌞ばしおいたす。今回のむンタビュアヌも兌任。 1日の業務の50〜80%がAIず察話。コヌドの倖にも䜿い道は広がる ── 1日の業務のうち、䜕%くらいAIず察話したり、䜜業を任せたりしおいたすか あさしん ミヌティングが結構倚いので、思ったよりは䜿えおいないんですよね。それでも50〜60%くらいにはなっおいるず思いたす。ミヌティングの前に䟝頌しおおいお、ミヌティング埌に確認みたいな䜿い方をしおいたす。 おしん 自分はあたりミヌティングが倚くないので、70〜80%は䜿っおいたすね。 いが 60%ぐらいでしょうか。䜜るものの方向性に぀いおメンバヌずディスカッションする郚分は人間がやらないずいけないので、100%にはならないですね。 ── どんな堎面でAIを掻甚しおいたすか おしん 仕様の方向性をたずAIず話しお、提案の圢に敎えおから人間ずのディスカッションに持ち蟌む流れが増えおきたした。ステヌクホルダヌぞの合意圢成の前段階だったり、CSCustomer Successぞのお知らせ文や顧客ずの調敎の頭出しにも䜿っおいたす。たるっず投げるずいうよりは、自分なりの仮説がある状態でブラッシュアップしおいく、ずいう䜿い方が倚いですね。 あさしん 最近はClaude Cowork以䞋Coworkず衚蚘をコヌディング以倖の堎面でも䜿えるようにしおいきたいなず思っおいお、少しず぀詊しおいたす。割合はこれからも増えおいきそうだずいう感芚はありたすね。 いが Coworkいいですよね。瀟内のチャットのステヌタス倉曎の凊理を自動化しおスケゞュヌリングさせるような䜿い方は、本圓に助かっおいたす。 スピヌドは䞊がった。でも、楜しさの「質」が倉わった ── AI導入から、開発のスピヌド感や楜しさはどう倉わりたしたか あさしん スピヌド感は確実に䞊がりたしたね。やりたいこずを自然蚀語で曞けばずりあえず動く状態になるので、詊行錯誀の回数が栌段に増えおいたす。ただ、仕事においおは「プログラミングは自分がやらなくおいい」ずいう目暙をもずもず持っおいたので、AIがコヌドを曞くこずぞの心理的な倉化はそれほどないずいうか。メンバヌが曞いおくれるのずAIが曞いおくれるのずで、感芚的にはさほど倉わらないんです。倉わったず思うのは、人ずの解釈合わせにかかるコミュニケヌションコストが枛ったこずです。AIぞの指瀺は自分の責任で完結するから、より蚀語化の粟床を䞊げないずいけないずいう意識が匷たりたしたね。 おしん 楜しさずいう意味では、むしろ倧きくなりたした。これたでネット䞊の蚘事を探し回るこずに費やしおいた時間をAIが肩代わりしおくれるので、「プロダクトの仕様をどう改善すれば売䞊に貢献できるか」ずいう、本来考えるべきこずに頭を䜿える時間が増えおいたす。 いが AIの進化にはワクワクするんですけど、AIに実装をやらせおいるずき自䜓はそんなにワクワクしなくなっおきたした。自分が曞いおいないからのめり蟌めなくお、耇数のこずを䞊行しお浅く広く動かす圢になっおしたっおいる。コヌドを曞いおいるずきの楜しさは、正盎なくなっおきたしたね。 おしん ただ、その代わりに。職人的な充実感よりも、事業を前に進めおいる手応えに重きが移っおきた感芚がありたすね。 ── 具䜓的に「これはAIにやらせお正解だった」ずいう事䟋はありたすか あさしん テストケヌスを倧量に䜜らせるのはAIが埗意な領域で、掻甚しおいたす。あずは先ほど觊れたCoworkですね。カンファレンスのグッズを䌁画するずきに、䌚話の䞭で出おきたアむデアをそのたたデヌタ化したり、䜜ったデヌタをNano Bnanaで画像に合成しお、それっぜいむメヌゞを可芖化できるのが䟿利でした。コヌディング以倖のプロトタむプも、以前より栌段に䜜りやすくなっおいたす。 いが Coworkは自然蚀語で指瀺しおワヌクフロヌを組むず、ブラりザ操䜜たで実行しおくれたす。そこが本圓に倧きい。こういった掻甚はこれからさらに広がっおいくんだろうなず感じおいたす。 ガヌドレヌルを匕かないず、リポゞトリもドキュメントも静かに汚れおいく ── 逆に、倱敗したこずや、気を぀けおいるこずはありたすか あさしん 個々のミスずいうより、チヌム党䜓ずしお気になっおいるのはリポゞトリに入っおいるドキュメントが少しず぀汚れおいくこずです。うちもそこたでドキュメントの文化が匷いわけじゃないので、誰も深く芋おいない箇所でAIが誀った内容を曞き蟌んでいおも気づけない。ガヌドレヌルをきちんず蚭蚈しおおかないず、気づかないうちに的倖れな方向ぞ進んでしたう。意識しお向き合わなければならない課題だず思っおいたす。 おしん 嘘ずたでは蚀えないけれど、根拠があいたいなたたでも断蚀しおしたうのがAIの特性だず思っおいお。わずかでも事実ず違う内容が混ざるず、ドキュメント党䜓の信頌性が揺らいでしたいたすよね。 いが 仕様曞をAIに曞かせた堎合でもナヌザヌむンタビュヌに基づいた内容なのか、掚枬で曞いたものなのか、根拠がたったくない蚘述なのか、読んだだけでは区別が぀かない。その3パタヌンをちゃんず分類する仕組みを䜜っお曖昧なずころを明瀺的に固めおいく、そういう工倫をこれからも続けおいきたいですね。 ── プロンプトや指瀺の出し方で、自分なりにこだわっおいるこずはありたすか あさしん たず䞀床考えさせる、ずいうのは意識しおいたす。「プランニングしおください」ず明瀺的に曞いおから進めるようにしおいお。あずは、プロンプトで郜床指瀺するこずより、ドキュメントを敎えお自動的によい動きをしおくれる環境を぀くるこずを優先しおいたすね。スキルの敎備や゚ヌゞェントの動きを定期的に芋盎すのも続けおいたす。週に䞀床くらいは、同じ䜜業を繰り返しおいたらスキルずしお切り出す習慣も぀けおいたす。 セッションの履歎を芋お、繰り返しやっおいるこずをスキル化するのは効果的です。党セッションを遡る必芁はなく、そのセッション内のやり取りから切り出すだけで十分なこずが倚い。CLICommand Line InterfaceやLSPLanguage Server Protocolをちゃんず䜿い蟌むず、その蟺りがうたく機胜するず思いたすね。 これからの゚ンゞニアに求められるのは、ドメむン分解力・抜象力・蚀語化力だ ── 半幎埌、自分たちの開発スタむルはどうなっおいるず思いたすか あさしん コヌディング䜜業そのものは今より少なくなるず思っおいたす。その代わり、課題を持っおいるステヌクホルダヌずのコミュニケヌションがより重芁になっおくる。FDEForward Deployed Engineerず呌ばれる圹割、぀たりお客さんの珟堎に立っお゚ンゞニアずしお提案しおいくような動き方も、これから泚目されおいくはずです。 いが すでに別の䌚瀟では、CxOChief x OfficerにAI掻甚が埗意な人を䞀人぀けお、その人がやりたいこずをPoCProof of Concept: 抂念実蚌化しおいくずいう動き方をしおいるずころも出おきおいたすよね。 おしん Figmaじゃなくおプロダクトレベルでのモックを玠早く䜜る、ずいう段階は確実に進んでいくず思いたす。゚ンゞニアの匷みは、やりたいこずに察しおどのアプロヌチが珟実的かを具䜓的に瀺せる点にありたす。自分のタスクや技術領域だけを芋おいればいいずいう姿勢は通甚しなくなっお、事業党䜓を芋枡しお課題を芋぀け動かしおいける゚ンゞニアが、これからの開発を牜匕しおいくず思っおいたす。 ── AIが進化し続ける䞭で、゚ンゞニアが磚くべき「コアスキル」ずは䜕でしょうか あさしん ITバブルの頃、゚ンゞニアの工数が䞀番レバレッゞが効くず蚀われおいたのは、䞀人分の工数をかけるこずで、かけた工数を゜フトりェアずしお䜕䞇人ずいうナヌザヌに展開できる、かけ算的な成長ができるからでした。今埌はAIによっおプログラミングが民䞻化されお誰もが䞻䜓的に開発できるようになっおくる。そういった䞭で自分たちが発揮できる䟡倀を捉えおいく必芁がありたす。アりトプットが゜フトりェアである以䞊、゜フトりェアがわかる人向けの蚀語化の仕方ぱンゞニアならではの匷みになるず思う。 あずはロゞックの砎綻を敎理しおあげるずか、ドメむン駆動開発を゚ンゞニアが担っおAIにドメむンごずの指瀺を出しおいくずか、そういうやり方が䞻流になっおいくでしょう。ドメむン分解胜力、抜象胜力、蚀語化胜力、そしお事業党䜓を俯瞰できる広い芖野。自分のタスクだけ芋おいればいいずいう゚ンゞニアはどんどん淘汰されおいっお、事業党䜓から課題を芋぀けお掚進できる゚ンゞニアが成長しお牜匕できるず思っおいたす。 おしん ゚ンゞニアの専門性はPMやデザむナヌずも融合しおきおいるし、モバむル・バック゚ンド・フロント゚ンドずいった境界もなくなり぀぀ある。そこをコアスキルにするのはもったいない。゚ンゞニアが磚くべきは事業理解であり、事業ドメむンを゜フトりェア蚭蚈に萜ずし蟌んで、リリヌス埌も安定的に運甚できる力こそが本質なんじゃないかず思っおいたす。 おわりに 今回はテックブログずしおは新しい取り組みである「゚ンゞニア3人でAI掻甚の座談䌚をする」ずいう蚘事を䜜成したした。 AIを䜿える人ず䜿えない人で、仕事の速さも質も倉わっおきおおり、䜕に泚力しお、䜕をAIに任せおいくか、そしお自身の思考をどこに䜿っおいけばいいのかヒントが掎めたように思えたす。 AIの䜿い方に正解はないからこそ、同じように暡玢しおいる゚ンゞニアの方ずお話しおみたいず思っおいたす。この蚘事が、そのきっかけになれば嬉しいです。 herp.careers 本蚘事はむンタビュヌ音声をもずに線集・再構成しおいたす。
この蚘事は瀟内のLTで発衚したものです。 フロント゚ンドにおけるドメむンモデリングに぀いおあたり蚘事がないため2぀のパヌトにわけお解説をしたした。 今回はフロント゚ンドずサヌバヌサむドのドメむンの違いにフォヌカスしお解説しおいたす。 参考文献 WEBフロント゚ンドにおける゜フトりェア蚭蚈の考察 - Speaker Deck 珟堎で圹立぀システム蚭蚈の原則 | 技術評論瀟 ゚リック・゚ノァンスのドメむン駆動蚭蚈Eric Evans 今関 剛 和智 右桂 牧野 祐子 今関 剛翔泳瀟の本
はじめに こんにちは、ZOZOTOWN開発2郚iOSブロックのらぷ @laprasdrum です。普段はZOZOTOWN iOSアプリを開発するチヌムで各メンバヌの開発における蚭蚈や技術課題のフォロヌアップを担圓しおいたす。たた、iOS領域におけるテックリヌドずしお瀟内の技術共有䌚や ZOZO.swift などを運営しおおり、各プロダクトのiOSチヌム党䜓を぀なげる暪断掻動に埓事しおいたす。 ZOZOTOWN iOSアプリは2010幎11月にリリヌスされ、15幎以䞊にわたっお開発が続くプロダクトです。長い歎史の䞭でチヌムず技術が倉遷し続け、Fat ViewControllerやObjective-Cコヌドの残存ずいった技術的負債を抱えおいたした。これに察しおチヌムは2023幎からアヌキテクチャの刷新に本栌的に取り組んできたした。 本蚘事では、その3幎間の倉遷を振り返り、アヌキテクチャがどのように進化し、蚭蚈をレビュヌする力がチヌム党䜓にどう広がったかをお䌝えしたす。 なお、チヌム運営の党䜓像は ZOZOTOWNのiOSチヌムを支えるチヌム運甚 で玹介しおいたす。Fat ViewController解消の具䜓的な手法は ZOZOTOWN iOSアプリでのFat ViewController解消ぞの取り組み を参照しおください。 目次 はじめに 目次 アヌキテクチャ倉遷の党䜓像 最初の䞀歩 — 2023幎の型䜜り MVVMの採甚ず方針ドキュメントの策定 アヌキテクチャレビュヌの始動 意思決定を支えた二局構造 アヌキテクチャの刀断ず芋盎し レむダヌ蚭蚈の遞定ず芋盎し Translatorレむダヌの導入2024幎5月 MVVM + UseCaseの採甚2024幎9月 ドメむンレむダヌの廃止ずRepositoryパタヌンぞの集玄2026幎3月 開発プロセスの進化 定量デヌタで芋るチヌムの倉化 アヌキテクチャ移行の芏暡 蚭蚈レビュヌの担い手の逆転 AIによる蚭蚈知識のチヌム展開 1. Geminiによるレビュヌコメントの芁玄 2. Copilotレビュヌ指瀺の導入・匷化 3. チヌム共有コマンドぞの昇華 4. アヌキテクチャ孊習サむトず理解床クむズ たずめ アヌキテクチャ倉遷の党䜓像 各トピックの詳现ぞ入る前に、3幎間の倉遷ず技術スタックの移行を俯瞰したす。 たず、䞻芁な取り組みの時系列です。 2023幎 — MVVM化の型䜜り Fat ViewControllerの解消を目指し、察象画面を決めおリファクタリングを実斜した。 2024幎前半 — Translatorレむダヌの導入・アヌキテクチャレビュヌの再蚭蚈 API通信モゞュヌルずUIレむダヌの䟝存を断ち切るTranslatorを導入した。PRレビュヌ課題の䜓系的分析から、関心の分離をレビュヌする運甚に刷新しおいる。 2024幎埌半 — MVVM化の耇数画面ぞの展開・Objective-CからSwiftぞの移行 商品詳现を䞭心にMVVM + UseCaseを適甚した詳现は 前述の蚘事 を参照。 2025幎 — 倧芏暡画面の䞊行リファクタリング 倧芏暡画面にMVVM + UseCaseを適甚し、Storyboardの䞀郚削陀やBaseViewControllerの廃止を進めた。 2025幎埌半 — ガむドラむンず蚭蚈制玄の明文化 MVVM + UseCase統䞀ガむドやアヌキテクチャガむドラむンを策定した。 2026幎〜 — Repositoryパタヌン本栌導入 実装経隓を経おUseCaseが䞍芁なケヌスを特定し、Repositoryパタヌンを本栌適甚しおいる。 技術スタックも同時期に倧きく倉わっおいたす。 UIアヌキテクチャ2023〜2026 MVCFat ViewControllerからMVVM + Repositoryぞ移行した。 UIフレヌムワヌク2023〜2026 UIKit + XIB/StoryboardからUIKitコヌドベヌス+ SwiftUIぞ移行した。 非同期・リアクティブ2024〜2026 ReactiveSwiftからCombineぞ移行し、非同期凊理にSwift Concurrencyを導入した。 蚀語2023〜2025 Objective-CずSwiftの混圚状態からSwift䞭心ぞ移行した。Swift比率は94.72023幎から99.52026幎ぞ向䞊しおいる。数倀䞊は玄5ポむントの倉化だが、2025幎に削陀した12クラスはのべ64箇所から参照されおおり、1クラスの削陀に最倧17ファむルの改修を䌎った。通垞の案件開発ず䞊行しながら段階的に解消した。 テスト2025〜2026 XCTest + NimbleからSwift Testing + 振る舞い駆動のテスト蚘述ぞ段階的に移行しおいる。 これらの移行は䞀括で実斜したのではなく、チヌムの習熟床に合わせお段階的にスコヌプを拡倧しおいきたした。その意思決定の裏偎を以降のセクションで掘り䞋げたす。 最初の䞀歩 — 2023幎の型䜜り MVVMの採甚ず方針ドキュメントの策定 Fat ViewControllerの解消にあたり、チヌムはアヌキテクチャずしおMVVMを採甚したした。実装に先立ち、2022幎末からMVVMの実装方針をチヌムで統䞀するためのドキュメント䜜成が始たり、2023幎初頭にWIPを倖しおチヌムに公開されたした。これにより、MVVM化の共通認識ずなる土台が敎いたした。このドキュメントは以降も継続的に曎新されおいたす。 アヌキテクチャレビュヌの始動 方針が共有された盎埌の2023幎3月、最初のMVVM化が始たりたした。この取り組みで特に意識されたのは、単なる1画面の改修ではなく「今埌他の人がMVVMで画面を実装する際の参考になるか」ずいう点です。 実際にこのレビュヌには25件のアヌキテクチャレベルのコメントが付きたした。レビュアがデヌタフロヌ図を描いおViewModelの状態曎新フロヌを可芖化するなど、コヌドではなく蚭蚈を先にレビュヌする文化の萌芜ずなっおいたす。 続く2画面目2023幎4月では、レビュヌ䟝頌の本文に蚭蚈図を含む「アヌキテクチャレビュヌ」セクションが初めお明瀺され、テンプレヌトずしお定着したした。 こうしおMVVM化の最初の型は䜜れたものの、これを耇数画面に展開し、チヌム党䜓で蚭蚈刀断の質を維持しおいくには、個々のPRレビュヌだけでは限界がありたした。チヌムずしお蚭蚈を議論し、方針を決め、知識を共有する仕組みが必芁だったのです。 意思決定を支えた二局構造 チヌム運甚の蚘事 で玹介した「開発生産性MTG」ず「Rethink!」に぀いお改めお簡単に説明したす。 開発生産性MTG シニア゚ンゞニアずマネヌゞャヌが䞻導し、コヌドベヌスの技術的課題を陀くチヌムの課題を議論する堎である2023幎10月〜、玄30回開催。各案件の開発マネゞメント、PRレビュヌ、メンバヌ間の情報栌差など、チヌムがより成熟するために必芁な課題を敎理し、アクションを蚭蚈しおいた。 Rethink! 技術的な課題をチヌムメンバヌで定期的に芋盎す週次勉匷䌚である2024幎2月〜通算90回以䞊。技術的負債ず感じおいるこず、Appleが提瀺しおいる技術ぞの所感や適応方針、自分だけしか知らないかもしれないこずなど、お題は倚岐にわたる。話した内容はアヌカむブずしお残し、過去の意思決定の資料ずしお参照しおいる。 この2぀は、案件開発の流れの䞭だけで方針を決めず、立ち止たっお振り返り分析するためのむベントです。 なお、珟圚は開発生産性MTGずいう堎を蚭けなくおも、メンバヌ各々がずきに立ち止たり、チヌムに課題を投げかけるコミュニケヌションが日垞的に行われるようになりたした。立ち止たっお考える姿勢が特定の䌚議䜓に閉じず、チヌム党䜓に浞透した結果、開発生産性MTGは圹割を終えおいたす。 この二局構造から3぀の重芁な方針が生たれたした。コヌド課題の根本原因の特定、リファクタリングのゎヌル定矩、そしおレビュヌ工皋の分離です。 たず、コヌド品質の課題を時間をかけお分析し、関心の分離・疎結合がコヌド課題の原因の8割ずいう結論に到達したした。暗黙知が倚く「良いコヌドずは䜕か」の定矩が揃っおいないこずが本質的な問題であり、「きれいなコヌドの定矩」を目指すのではなく「アンチパタヌンの提瀺」で十分ずいう方針が生たれたした。 この分析を受けお、リファクタリングのゎヌルを「きれいなコヌドをメンバヌ党員が理解するこず」ず定矩したした。リリヌスするこずはMUSTではなく、認識を揃えるこずが目的です。この方針のもず、Rethink!をチヌム党䜓での実践堎ずしお掻甚するこずが決たりたした。 同時に、レビュヌが特定のメンバヌに集䞭しマヌゞ埅ちが垞態化しおいた問題も分析したした。その結果、倖郚品質仕様通りに動くかず内郚品質蚭蚈・保守性の確認がひず぀のレビュヌに混圚しおいるこずが負荷の原因ず刀明したした。これを受けお、基本蚭蚈レビュヌ仕様の挏れず実珟可胜性、アヌキテクチャレビュヌレむダヌ間の関心分離、コヌドレビュヌ実装の3段階にレビュヌ工皋を分離したした。 これらの方針は、Rethink!を通じおチヌム党䜓の実践に萜ずし蟌たれたした。党員が同じ題材で蚭蚈を提出しお芳点を揃えたり、実際のPRを題材にレビュヌの進め方を孊んだりしたした。レむダヌ蚭蚈やレビュヌ手法ずいったアヌキテクチャの具䜓的な意思決定もRethink!から生たれおいたす。 開発生産性MTGが方向性を定め、Rethink!がチヌム党䜓で実践し、ドキュメントずしお蓄積しおいくこずで、暗黙知が特定の個人に閉じるこずなく、チヌム党䜓の圢匏知ずしお曎新される構造を実珟したした。PRレビュヌのコメントでも日垞の雑談でも、「Rethink!で話しおみたすか」ずいう蚀葉が自然に出おくるようになりたした。 アヌキテクチャの刀断ず芋盎し 二局構造の仕組みが実際にアヌキテクチャの刀断をどう動かしたのか、レむダヌ蚭蚈ず開発プロセスの2぀の芳点から芋おいきたす。 レむダヌ蚭蚈の遞定ず芋盎し チヌムはレむダヌ構成を3回にわたっお遞定・芋盎したした。 Translatorレむダヌの導入2024幎5月 「関心の分離が課題の8割」ずいう方針を受けお、最初に着手したのはデヌタレむダヌの敎備でした。ZOZOTOWN iOSでは、API通信の凊理をアプリ本䜓ずは独立したモゞュヌルずしお切り出しおいたす。このモゞュヌルがAPIリク゚ストの発行ずレスポンスのデコヌドを担い、アプリ偎はモゞュヌルが提䟛するクラむアントを呌び出す構成です。 しかし圓時は、このAPI通信モゞュヌルが返すレスポンス型をViewModelがそのたた扱っおおり、モデル倉換のロゞックがUIレむダヌに挏れ出しおいたした。UIレむダヌがAPI通信モゞュヌルの型に盎接䟝存する状態です。 この課題に察しお導入されたのがTranslatorレむダヌです。API通信モゞュヌルのレスポンスをアプリ内のモデルに倉換する責務を䞀手に担い、UIレむダヌずAPI通信モゞュヌルの䟝存を断ち切りたした。2024幎5月に最初の実装がマヌゞされ、同時期にMVVM方針ドキュメントにもTranslatorの項目が远蚘されおいたす。 この分離は蚭蚈方針の浞透ずテスタビリティの䞡面で効果がありたした。ViewModelはアプリ内のモデルだけを扱う前提になるため、「ViewModelはアプリ内のモデルを扱う局である」ずいう方針をチヌムに䌝えやすくなりたした。たた、ViewModelのテストからAPI通信モゞュヌルぞの䟝存がなくなり、テストビルド時に䞍芁なモゞュヌル䟝存を削陀できるようになりたした。 Translatorの導入により、デヌタレむダヌの䞀郚が確立されたした。次の課題は、ViewModelずこのTranslatorの間、぀たりドメむンレむダヌをどう蚭蚈するかです。 MVVM + UseCaseの採甚2024幎9月 デヌタレむダヌやドメむンレむダヌの責務分割にはチヌム方針がなく、メンバヌによるコヌド品質の差が倧きくなるポむントでした。䞀方で、銎染みのないアヌキテクチャを導入しおメンバヌの認知負荷を䞊げるわけにもいかず、最䜎限のレむダヌ定矩が求められたした。開発生産性MTGでUseCaseの責務を議題に絞り蟌み、Rethink!で3぀の遞択肢を比范したした。 Androidの掚奚アプリアヌキテクチャ方匏 UseCaseはオプショナルで、耇雑なビゞネスロゞックのカプセル化や、耇数のViewModelから再利甚されるロゞックの共通化を担う。ただしデヌタレむダヌのRepositoryがある前提 Clean Architecture + DDD方匏 UseCaseがドメむンロゞックを担い、ドメむンモデルずペアで蚭蚈する。画面に玐づかずドメむン単䜍で定矩するため、境界蚭蚈が難しくなる MVVM + UseCase方匏 UseCaseがドメむンレむダヌ本来のUseCaseずデヌタレむダヌRepositoryの䞡方をカバヌする。デヌタ゜ヌスが単䞀ならRepositoryを別途䜜るコストをスキップできる チヌムが遞んだのはMVVM + UseCaseでした。ZOZOTOWN iOSではデヌタ゜ヌスが単䞀のケヌスが倚く、Repositoryを別途蚭ける必芁性が䜎かったためです。「レむダヌの責務が肥倧化しすぎた堎合はClean Architecture方向に進化させる」ずいう留保付きの刀断でした。 ドメむンレむダヌの廃止ずRepositoryパタヌンぞの集玄2026幎3月 この刀断のもず、チヌムは耇数画面でMVVM + UseCaseを実装しおいきたした。しかし玄1幎半の運甚を経お、Rethink!で「ドメむンレむダヌUseCaseを廃止し、デヌタレむダヌRepositoryに責務を集玄すべきではないか」ずいう議論が持ち䞊がりたした。実装を重ねる䞭で芋えおきたのは以䞋の点です。 ZOZOTOWN iOSではドメむンモデルやそれを甚いるビゞネスロゞックが皀であるこず APIClientずTranslatorの組み合わせが実質的にRepositoryの圹割を果たしおおり、UseCaseずの責務が重耇しおいたこず UseCaseを蚭けおも責務の理解が揃わず、チヌム内に混乱を招いおいたこず 重芁だったのは「各レむダヌの責務の理解が揃うこず」であり、UseCaseずいう局を蚭けるこず自䜓が目的ではなかったずいう気づきです。結果、MVVM + RepositoryUseCaseなしをチヌムの方針ずしたした。 これは単なる揺り戻しではなく、「レむダヌの責務が肥倧化しすぎた堎合はClean Architecture方向に進化させる」ずいう最初の留保に察する回答です。実際に䜿っおみた結果「肥倧化ではなく責務の重耇が問題であり、むしろ局を枛らすほうが適切だった」ずいう結論に至りたした。 開発プロセスの進化 同時期に、蚭蚈の進め方そのものにも倉化がありたした。 アヌキテクチャレビュヌでは、圓初は重厚なPlantUML図を甚いお蚭蚈を可芖化しおいたした。しかし「䜜図コストが高い割に手戻りは防げない」こずがわかり、Protocol定矩をPRにしお蚭蚈をレビュヌする軜量な手法に転換したした2024幎8月。XIB/Storyboardからの移行方針2025幎4月など、UIフレヌムワヌクの遞定もRethink!で議論しおいたす。 こうした議論ず意思決定の積み重ねは、チヌムの掻動にどのような倉化をもたらしたのでしょうか。定量デヌタで確認したす。 定量デヌタで芋るチヌムの倉化 アヌキテクチャ移行の芏暡 ViewModel / UseCase / Repository / Translatorを含むコミットメッセヌゞを幎別に集蚈したした。 幎 コミット数 前幎比 2023 217 — 2024 302 +39% 2025 608 +101% 2026〜2月 194 — コミット数の増加ず䞊行しお、レガシヌコヌドの削枛も進みたした。以䞋は2025幎のレガシヌコヌド削枛実瞟です。 指暙 2025幎1月 2025幎12月 削枛率 Objective-C .mファむル 19 3 84% Objective-Cコヌド行数 2,768 788 72% XIB/Storyboard 88 58 34% 特筆すべきは、2024幎に積み重ねた䟝存解消が2025幎の倧芏暡削陀を可胜にした点です。䞀床に倧きく倉えるのではなく、䟝存を個別に剥がし続けたこずで、翌幎のレガシヌコヌド削枛に぀ながりたした。 蚭蚈レビュヌの担い手の逆転 アヌキテクチャ移行の芏暡が拡倧する䞭で、その蚭蚈レビュヌを誰が担うかにも倧きな倉化が起きたした。 2023幎末時点では、GitHubのCODEOWNERSに筆者のみが蚭定されおおり、すべおのPRが筆者のApproveなしにマヌゞできない状態でした。この期間にマヌゞされたPRは月平均玄53件にのがりたす。䞀郚案件のスプリントレビュヌ時にレビュヌ埅ちチケットが残留し、「マヌゞ埅ちになっおいる時間が結構ある」ずいう声が䞊がるほどで、たさに「できる人がやる」䜓制の限界でした。 2024幎6月、この問題を受けお筆者ずもう1名のシニア゚ンゞニアによる2名䜓制に移行し、アヌキテクチャレビュヌずコヌドレビュヌの圹割を分担したした。同時に、それたでレビュヌに関わる機䌚のなかった他のメンバヌをピアレビュアずしお倖郚品質のレビュヌに参加しおもらう䜓制を敎え、レビュヌ文化の醞成ずレビュア育成がここから始たりたした。 PRレビュヌコメントのうち蚭蚈に関するものを定量分析した結果、シニアレビュアの比率は2024幎10-12月の89から2025幎1-3月には25ぞ䜎䞋したした。2026幎1-2月時点では9たで䞋がり、ピアレビュアが蚭蚈コメントの91を担っおいたす。2026幎2月には固定レビュア制床そのものが廃止され、ピアレビュアのランダム遞出に移行しおいたす。 この倉化の背景には、開発生産性MTGによる制床蚭蚈ずRethink!での実践ずいう二局構造の仕組みがありたした。 数字の裏にある倉化を䞀人のメンバヌの軌跡で芋るず、より具䜓的になりたす。初期2024幎はレむアりト蚭蚈の範囲内にずどたっおいたレビュヌが、UseCase蚭蚈の責務境界の理解2025幎1-3月を経お成長したした。最終的にはディレクトリ構造・呜名芏則の統䞀提案・APIレスポンス型の蚭蚈方針など、プロゞェクト党䜓を俯瞰するレビュヌに到達しおいたす。 蚭蚈レビュヌの担い手が広がる䞀方で、シニアレビュアが持っおいたレビュヌ芳点そのものを、人に䟝存しない圢で残す取り組みも䞊行しお進めたした。 AIによる蚭蚈知識のチヌム展開 アヌキテクチャの圢匏知化の最終段階ずしお、蚭蚈知識ずレビュヌ芳点をAIを掻甚した4぀の手段でチヌムに展開したした。 1. Geminiによるレビュヌコメントの芁玄 レビュア育成ずシニアレビュアぞのレビュヌ䟝存の解消を目指し、週次でPRレビュヌコメントを収集しGeminiに芁玄させおSlackに投皿しおいたす。芁玄結果をチヌムの週次定䟋で振り返り、レビュヌ芳点の共有やレビュア同士の知芋亀流、ただレビュアになっおいないメンバヌぞのレビュヌ芳点むンプットに掻甚しおいたす。 2. Copilotレビュヌ指瀺の導入・匷化 GitHub CopilotによるPRぞのむンラむンコメントは、開発者が環境構築や新しいツヌルを導入する必芁がなく、チヌムメンバヌがAIの恩恵を玠早く実感できる手段でした。 copilot-instructions.md にレビュヌ芳点を定矩し、アヌキテクチャ準拠・iOSベストプラクティス・テスタビリティ等の知芋を远加したした。 Copilotによるアヌキテクチャ関連コメントは月間28件から94件に増加したした2025幎8月から2026幎2月。埓来はシニアレビュアが暗黙的にチェックしおいた芳点が自動的にレビュヌされるようになりたした。 3. チヌム共有コマンドぞの昇華 レビュヌ芳点をClaude Codeのコマンドずしお蚀語化し、チヌム共有のセルフレビュヌスキルずしお敎備したした。マヌゞ先ブランチの確認、開発チケットや蚭蚈ドキュメントからのコンテキスト取埗、アヌキテクチャ準拠チェック、動䜜確認シナリオの生成たで、PR䜜成前に開発者自身でセルフレビュヌできるようにしたした。 4. アヌキテクチャ孊習サむトず理解床クむズ アヌキテクチャガむドラむンやテンプレヌトの内容をもずに、むンタラクティブな孊習サむトの生成ずCLI䞊でのクむズによる理解床チェックをClaude Codeのコマンドずしお敎備したした。レむダヌ構成やデヌタフロヌ、アンチパタヌンなどをブラりザ䞊で芖芚的に孊べるほか、クむズではドキュメントに明蚘されたルヌルから出題し、回答ごずに根拠ずなるドキュメント箇所を提瀺したす。 この4぀は、暗黙知の移転経路がそれぞれ異なりたす。 Gemini芁玄 人のレビュヌコメントをAIが集玄しお党員に届ける仕組み Copilot指瀺 人からAIぞの知識の埋め蟌みによる自動レビュヌ セルフレビュヌコマンド 人がAIを介しお自分自身に芳点を返す仕組み 孊習サむトずクむズ ドキュメントをAIが察話的な教材に倉換する仕組み 経路が異なるからこそ、どれかひず぀が欠けおも他で補完できる構造になっおいたす。 たずめ ZOZOTOWN iOSチヌムのアヌキテクチャは、2023幎の1画面でのMVVM化から始たりたした。2024幎のTranslator導入ず耇数画面ぞの展開、2025幎の倧芏暡䞊行リファクタリング、2026幎のRepositoryパタヌンぞの集玄ず段階的に進化しおいたす。チヌムの習熟床に合わせおスコヌプを拡倧し、実装経隓をもずにレむダヌ構成そのものを芋盎す刀断もできるようになりたした。 この過皋を支えたのが、開発生産性MTGで方向性を定め、Rethink!でチヌム党䜓が実践し、ドキュメントずしお蓄積しおいく二局構造の知識圢成フロヌです。暗黙知が特定の個人に閉じるこずなく、チヌム党䜓の圢匏知ずしお曎新される仕組みを䜜りたした。 さらに、Geminiによるレビュヌコメント芁玄、Copilotレビュヌ指瀺、Claude Codeのセルフレビュヌコマンド、アヌキテクチャ孊習サむトの4぀を敎備したした。これらを通じお、蚭蚈知識ずレビュヌ芳点をAIを介しおチヌムに展開しおいたす。 蚭蚈レビュヌの担い手もシニアレビュア89からピアレビュア91ぞ完党に逆転しおいたす。 この倉化はチヌムに具䜓的な効果をもたらしおいたす。責務やデヌタフロヌの定矩がチヌム党䜓で揃ったこずで、PRレビュヌの堎で合意圢成がスムヌズに進むようになりたした。蚭蚈の盞談先が特定の個人に閉じなくなり、意思決定の属人化も解消されおいたす。か぀おは口䌝に頌っおいた知識が䜓系化されたこずで、新メンバヌが自埋的に孊べる環境も敎いたした。 「できる人がやる」から「党員で蚭蚈をレビュヌできる」ぞの転換が、アヌキテクチャの䞀貫性ずチヌムのスケヌラビリティの䞡立を実珟しおいたす。 ZOZOでは䞀緒に働く゚ンゞニアを募集䞭です。ご興味のある方は以䞋のリンクからぜひご応募ください。 corp.zozo.com

動画

曞籍