color_boxの復習帳

復習します

CAMPFIRE iOS #1 に参加した

ブログ枠で参加したので軽くまとめます。

https://yj-meetup.connpass.com/event/51735/

最適な設計でアプリを作る

  • 設計はプロジェクトの共通言語

短期でのアプリ開発にどう立ち向かったか

  • Wantedly peopleというアプリに関する設計の話
  • アプリの立たされているフェーズによって、柔軟に設計を変えていく
    • 設計は、基本的にそれを言い出したエンジニアが担当し、

ホットペッパービューティーリプレイスとMVCP

  • 6年以上運営されている息の長いアプリ
  • 秘伝のソースが溜まっていき、可読性やメンテナンス性が落ちる
  • アプリのリプレースを行った
    • その際の設計としてMVPを使用。
  • 最初はライトにMVPで設計していく方針

10分で振り返る、ソフトウェアアーキテクチャの歴史2017

発表資料 speakerdeck.com

  • 昔から議論されている設計についても言及する発表。
  • 昔に議論されていた設計について触れ、この数年で新しく出た設計にも触れる
  • Clean Architecture は様々な設計から影響を受けている

マネーフォワードの設計へのアプローチ

  • マネーフォワードで取り入れている設計に関する話
  • APIによる複雑性を考慮して設計を行う
    • 一つの画面で複数のAPIを叩くような場合や、一つの画面で一つのAPIしか多々勝たない場合とで適した設計は異なる。
      • 前者にはCleanArchitectureが適している。
  • CleanArchitectureでの取り組み
    • チームでの共通言語を作り、齟齬の内容にする。
  • 設計に銀の弾丸はなく、プロジェクトの取り巻く状況を鑑みて決定する。
  • 常に最適な設計を考え続ける。

Yahoo! JAPAN アプリという大規模アプリの設計と開発

  • Yahoo!Japan アプリの設計に関する発表。
  • Swift移行の話が個人的に興味深かった。
    • Objective-C版と同時並行でフルスクラッチでSwift版を開発し、Swift版の開発がObjective-C版に追いついたら切り替えるという方式。
    • リソースが潤沢にないと選択できない、大きいところはすごい。

感想

設計に関しては勉強不足感が否めなかったために参加。 今回だけでもかなりの知見を吸収できたので満足。

いくつかの発表で共通していたのは設計はプロダクトやそれを取り巻く環境に左右されやすく、状況によって正解はいくらでも変わる、という点。 最適な設計を選択するためには選択肢を増やすしかなく、選択肢を増やすには日々素振りしていかないといけない、という感想。