Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
クリーンアーキテクチャ導入が、 どのような作業に影響を及ぼすのか考察
Search
YUTO NAKANO
January 21, 2020
Technology
0
100
クリーンアーキテクチャ導入が、 どのような作業に影響を及ぼすのか考察
プロジェクトにクリーンアーキテクチャを導入して起きた変化を表に視覚化しました。
YUTO NAKANO
January 21, 2020
Tweet
Share
More Decks by YUTO NAKANO
See All by YUTO NAKANO
武蔵小山infoアプリ
yutonakano
0
18
Other Decks in Technology
See All in Technology
2023 Japan AWS Jr.Championsに選出されての振り返りとこれから
hiropy877
1
130
20240321_生成AI時代のDevOps
kzkmaeda
2
610
Elementaryを用いたデータ品質の可視化とデータ基盤の運用改善
10xinc
6
1.5k
統計的学習理論読み Chapter 1
kmatsui
3
860
.NETの非同期戦略とUnityとの相互運用
neuecc
2
2.4k
Oracle Database で機械学習を始めよう! Oracle Machine Learning
oracle4engineer
PRO
1
140
任意コード実行の原理
ffri
0
170
LLMプロダクト事業の立ち上げにおける挑戦
layerx
PRO
7
1.4k
8週連続ウェビナー_イチから学ぶFivetran
cmsuzu
0
170
10分でわかるfreeeのQA
freee
0
230
社内共通ルールを値オブジェクトにして社内ライブラリとして運用してみた話
leveragestech
2
1.1k
単回帰分析について数式を追いながら実装してみた
kentaitakura
0
500
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
13
3.7k
Statistics for Hackers
jakevdp
789
220k
In The Pink: A Labor of Love
frogandcode
137
21k
Music & Morning Musume
bryan
39
5.5k
Designing for Performance
lara
601
67k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
113
18k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
67
38k
Making Projects Easy
brettharned
106
5.4k
Testing 201, or: Great Expectations
jmmastey
27
6.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
657
120k
Debugging Ruby Performance
tmm1
68
11k
Transcript
クリーンアーキテクチャ導入が、 どのような作業に影響を及ぼすのか考察
自己紹介
中野 湧仁 iOS @yuto_nakano44
中野 湧仁 iOS @yuto_nakano44
What’s fanc?
新機能ゾクゾク開発中!!
本題
クリーンアーキテクチャ導入が、 どのような作業に影響を及ぼすのか考察
調べた目的: • 自分自身、クリーンアーキテクチャを導入することのメリットが明確に理解できて いなかった • fancアプリで今後のグロースに向け、クリーンアーキテクチャ導入した。導入に より、どの作業が短縮され、開発の高速化を実現しているのかを視覚化し、理 解を深めたい
一つのタスクに対して時間を使っていること: 開発前 開発中 開発後 • 仕様確認 • 担当分け • 実装プラン検討
• コードリーディング • ロジックを考える • コードを書く • PR作成 • コードレビュー • 保守作業
クリーンアーキテクチャ導入前 • Requestの呼び出し • データをインスタンス変数で管理 Model • Model内のインスタンス変数を RxSwiftで購読 •
表示・ドメインロジック実装 ViewController
クリーンアーキテクチャ導入後
クリーンアーキテクチャ導入後 ViewController View Presenter Presentation Layer UseCase Repository Domain Layer
Entity DataStore Data Layer Model
• レイヤーやクラスが責務によって分かれた • 開発者同士で共通認識が生まれた • 実装に統一感が生まれた • ファイル(クラス)数が増えた クリーンアーキテクチャ導入後の変化:
一つのタスクに対して時間を使っていることと照らし合わせ て検証: 速度向上 変化なし 遅くなった
クリーンアーキテクチャ後の開発速度: 機能開発前 仕様確認 実装プラン検討 担当分け レイヤー・クラス が分かれた 共通認識ができた 実装に統一感ができた ファイル数が増えた
機能開発中 コードリーディン グ ロジックを 考える コードを 書く レイヤー・クラス が分かれた 共通認識ができた
実装に統一感ができた ファイル(クラス) 数が増えた クリーンアーキテクチャ後の開発速度:
機能開発後 PR作成 コードレビュー 保守作業 レイヤー・クラス が分かれた 共通認識ができた 実装に統一感ができた ファイル(クラス) 数が増えた
クリーンアーキテクチャ後の開発速度:
fancアプリにおいて特に効果が高かったポイント: 高速開発 ポイント1 高速開発 ポイント2 高速開発 ポイント3 共通認識の用語やオブジェクトができ、 タスクの分業や、見積もりがしやすくなった! クラスやメソッドの役割が明確になり、
保守しやすくなった! 属人化した処理が書けなくなり、 コードレビュー・保守作業が高速化 !
• なぜ,クリーンアーキテクチャを導入した方が、高速開発しやすくなるのか自分 の手を動かしながら理解できた。 • プロジェクト経験が少ないので、他プロジェクトの事例を学び、理解を深めて いきたい。 まとめ:
Thank You!