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

アプリケーションの仕組みと開発プロセス / How an application works and its developing process

アプリケーションの仕組みと開発プロセス / How an application works and its developing process

アプリケーションの仕組みと開発プロセスを、専門的な用語を極力排除して説明します。
此処で言うアプリケーションはクライアント・サーバモデルのWeb / モバイルアプリケーションを指しています。

アプリケーションの仕組み:
サーバ・クライアント等、役割を分担し、それぞれが知るべきことを知り、やるべきことをやる。
そうして複雑なアプリケーションを作り上げている。

アプリケーションの開発プロセス:
開発プロセスはただ「作る」ではなく、「既存の実装を把握し介入」「既存箇所含めた動作確認」というプロセスがあり、それは「役割分担の綺麗さ」「自動テストの量・質」の影響を強く受ける。
そのため、スピードを追求する中でも、役割分担の見直し・テスト整備等を日頃から行なうことが、アプリの品質・中長期的な開発スピード向上に繋がる。

演習の意味合いで、以下の付録を設けました。
・アプリケーションの仕組みを踏まえてトラブルシューティングを行なう
・アプリケーションの仕組みに基いて開発の影響範囲を考えてみる
・「役割分担」が実際どのように行われているのか、適切に行われないとどう問題になるのか、ツイッターのタイムライン機能を実例として扱い覗いてみる

想定読者は「自社アプリケーションを通じてサービス提供する会社に属するビジネスサイドの方」です。

Toshinori Tsugita

March 16, 2018
Tweet

Other Decks in Technology

Transcript

  1. アプリケーションの仕組みまとめ ཁٻɾԠ౴ ಡΈॻ͖ αʔό ΫϥΠΞϯτ σʔλϕʔε 6*पΓ୲౰
 ଟ͘Λ஌Γա͗ͳ͍ த֩Λ୲͏ ଟ͘ΛޠΒͳ͍

    ৘ใอ࣋୲౰
 ஌ೳΛ࣋ͨͳ͍ ໾ׂΛ෼୲͠ɺͦΕͧΕ͕஌Δ΂͖͜ͱΛ஌Γɺ΍Δ΂͖͜ͱΛ΍Δ ͦ͏ͯ͠ෳࡶͳΞϓϦέʔγϣϯΛ࡞Γ͍͋͛ͯΔ
  2. 例)UI 担当の単体テスト 6*୲౰ σʔλอ࣋୲౰
 ʢςετ༻ʣ දࣔ಺༰औಘ ΠϯςϦܥ
 ʢςετ༻ʣ ϘλϯԡԼ௨஌ πΠʔτσʔλ͕݅ͷ࣌ɿ


    ʮπΠʔτ͸͋Γ·ͤΜʯͱදࣔ πΠʔτσʔλ͕݅ͷ࣌ɿ
 ͕݅ඳը͞ΕΔ ϛϡʔτϫʔυΛؚΉπΠʔτɿ
 දࣔ͞Εͳ͍ Ϣʔβͷ஀ੜ೔͕ࠓ೔ͷ࣌ɿ
 λΠϜϥΠϯʹࢴਧઇ͕߱Δ πΠʔτϘλϯ͕λοϓ͞ΕΔͱɿ
 ΠϯςϦܥʹ௨஌͞ΕΔ ςετର৅ʢ6*୲౰ʣͱ
 ؔΘΔ୲౰Λࠩ͠ସ͑Δʂ ௨஌͕དྷͨ͜ͱΛ
 ใࠂ͢ΔΑ͏ʹ ςετ༻ʹ༻ҙͨ͠
 σʔλΛฦ٫͢ΔΑ͏ʹ ςετ؂ಜ ௨஌ͷใࠂ 6*νΣοΫ
  3. 例)リクエスト・レスポンスの結合テスト ౤ߘड෇ σʔλϕʔε
 ʢςετ༻ʣ จࣈ਺͕/จࣈҎ্ͩͬͨΒɿ
 ڋ൱ͷฦ౴Λฦ͢ จࣈͷӳจ͕౤ߘ͞ΕͨΒɿ
 0,ͷฦ౴Λฦ͢ ςετ؂ಜ ϦΫΤετΛૹΓ


    ϨεϙϯεΛݟΔ ඵؒʹ݅Ҏ্౤ߘ͍ͯͨ͠Βɿ
 ڋ൱ͷฦ౴Λฦ͢ ςετର৅ ςετର৅ͷ໾ׂͷܥ͸%#ʹґଘ
 %#Λࠩ͠ସ͑Ε͹ঢ়گผςετՄೳ લճͷ౤ߘͱಉ͡จষͩͬͨΒɿ
 ڋ൱ͷฦ౴Λฦ͢