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
開発スピード向上Tipsその2.pdf
Search
SatoshiN
September 23, 2020
0
45
開発スピード向上Tipsその2.pdf
SatoshiN
September 23, 2020
Tweet
Share
More Decks by SatoshiN
See All by SatoshiN
担当しているiOSアプリを全部作り直す開発中に_いろいろ半自動化した事_簡易版.pdf
satoshin303
0
65
秘伝のタレ.pdf
satoshin303
0
23
GitHub小技集.pdf
satoshin303
0
26
iOS_DC_2018_参加レポート.pdf
satoshin303
0
23
量子コンピュータ_の仕組みとQ_.pdf
satoshin303
0
160
モバイルアプリ_開発スピード向上Tips.pdf
satoshin303
0
20
Featured
See All Featured
How To Stay Up To Date on Web Technology
chriscoyier
786
250k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
29
1.7k
How GitHub (no longer) Works
holman
311
140k
Testing 201, or: Great Expectations
jmmastey
38
7k
KATA
mclloyd
27
13k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
26
1.9k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
355
29k
How to Think Like a Performance Engineer
csswizardry
16
1k
Documentation Writing (for coders)
carmenintech
65
4.3k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
Code Review Best Practice
trishagee
62
16k
Producing Creativity
orderedlist
PRO
341
39k
Transcript
モバイルアプリ 開発スピード向上Tips その2
自己紹介 佐藤慎 (さとしん) Twitter @satoshin2071 GitHub https://github.com/SatoshiN303 最近の趣味は TIDAL で楽曲検索です
はじめに 現在所属している会社の部署変更があり、開発チームとし てこれまでよりソフトウェア設計が求められるようになりま した 所属しているチームの中での開発効率化向上の取り組み について現状の課題と合わせてお話します。
目次 - 設計損益ラインの話 - python製 の コマンドラインツール 「Cookiecutter」を利用して 使い捨て可能な設計の雛形を作る
設計損益ライン の話
受諾案件では設計の見極めが難しい 多くのお客様が求めるのは目にみえる わかりやすいアウトプットの部分 所属している会社では重厚長大案件でな い限りはスピード勝負が多く 力を注ぐべきはアウトプットの部分 しかし…
受諾案件では設計の見極めが難しい 単発・短納期で来た案件かと思えば その後に「ヨコテンしたい…」的な 相談が来たりもする 逆に長期・運用を見込んだ案件かと思えば 半年から1年でクローズやお引越し が決まるものもある
開発者や開発チームはどんな対策をすればいいのか?
賢人のお言葉 初期バージョンのシステムでやっておくと良いのは、あるべき最適なモジュー ル構造についてよく考えること。交換に備えて知見を蓄える。初期のシステ ムなら丸ごと捨てるのも悪くないかもしれないが、システムが大きくなるにつ れて個々のモジュールを捨てる方が良くなる。それができるのは、うまい具 合のモジュール境界がある時だけだ。 Martin Fowler 犠牲的アーキテクチャーより
設計や実装を使い捨て可能なものにする 出来上がったものを(なるべく) 再利用できるようにする
None
Cookiecutter とは GitHubリンク 主にPythonパッケージやDjangoなどのプロジェクトの雛形 を作成することができるツール Python関連の雛形が多いがAndroidやiOSやUnityも 雛形は cookiecutter-template で公開されてたりもするの でまずは
Forkして カスタマイズするのも有
Cookiecutter で iOSの雛形を自作してみた iOS-Blueprints-CleanArchitecture QuickStart $ brew install cookiecutter $
cookiecutter https://github.com/SatoshiN303/iOS-Bluep rints-CleanArchitecture.git
こんな感じで設定してプロジェクト作成
入力値をCookiecutterがリプレイスする
生成されたプロジェクトの確認
Cookiecutterの美味しいところ - 既存の動いてるプロジェクトをテンプレート化するの が容易 - 色々なプラットフォームに利用可能 - プロジェクトなのでCI等での運用で定期ビルドなど 運用が容易 -
GitHub等でホストしなくてローカルでも可
設計を使い捨てにするだけなら Xcodeのプロジェクトテンプレート でも同じことができるのでは?
Xcodeのプロジェクトテンプレートも自作可能
Xcodeプロジェクトテンプレート自作のツラミ - CartfileやPodfile等の設定は非常に面倒 - 作成時の Info.plistの独特なルールの把握 - 雛形自体はプロジェクトではないのでCIでの運用が面 倒になるため形骸化しやすくなる Cookiecutter
であれば (ほぼ)いつもどおりに 実装したものをテンプレートとして転用化
Cookiecutter でのテンプレ化をさらに加速させるには (iOSの場合) Embedded Frameworkとの合わせ技で 出来てる実装をテンプレ化してマイクロサービスに (iOS, Android, Flutter) AWS
Amplify との合わせ技で バックエンドとの連携を シームレスに生成して開発を爆速化する
まとめ - Cookicutter で テンプレート量産 - 既存プロジェクトも Forkして不要なものを削除してテン プレ化 -
設計フェーズは時間を掛けつつ 可能な限りは楽をしよう