アジャイルを支えるアジャイルなコード / RAKUS Meetup Osaka #2 / Agile Code

73560128b23de542e47a318145bc781a?s=47 Yu Kawanami
February 26, 2019

アジャイルを支えるアジャイルなコード / RAKUS Meetup Osaka #2 / Agile Code

「RAKUS Meetup Osaka #2 アジャイル Night」の発表資料 #RakusMeetup
https://rakus.connpass.com/event/117965/
https://twitter.com/hashtag/RAKUSMeetup

73560128b23de542e47a318145bc781a?s=128

Yu Kawanami

February 26, 2019
Tweet

Transcript

  1. アジャイルを支える アジャイルなコード RAKUS Meetup Osaka #2 アジャイル Night @kawanamiyuu

  2. • かわなみゆう • @kawanamiyuu • 株式会社ラクス / Lead Engineer •

    新規プロダクト(HR × Tech)の開発 • 登壇芸人 • PHP がすき 2 自己紹介 2
  3. アジャイルな開発プロセス • XP(eXtreme Programming) • スクラム 3

  4. アジャイルを支える技術 • VCS 中心の開発フロー (GitHub Flow、Git Flow) • CI (継続的インテグレーション) • CD (継続的デリバリー、継続的デプロイメント)

    4
  5. アジャイルな開発プロセスと アジャイルな技術を導入すれば アジャイルになるの? 5

  6. アジャイルを支える アジャイルなコード RAKUS Meetup Osaka #2 アジャイル Night @kawanamiyuu

  7. アジャイルなコード 7

  8. ビジネス要求の変化を 迅速に反映できるコード 8

  9. 変更しやすいコード 9

  10. 高凝集・疎結合なコード 10

  11. リファクタリングしやすいコード 11

  12. 「捨てやすい」コード 12

  13. アジャイルなコードの 3 つの P 13

  14. Principle たとえば、オブジェクト指向プログラミングの基本原則 • 単一責任の原則 (Single Responsibility Principle) • オープン・クローズドの原則 (Open-Closed Principle) •

    リスコフの置換原則 (Liskov Substitution Principle) • インタフェース分離の原則 (Interface Segregation Principle) • 依存性逆転の原則 (Dependency Inversion Principle) 14
  15. Practice • ドメイン駆動設計 (DDD:Domain-Driven Development) • テスト駆動設計 (TDD:Test-Driven Development) • デザインパターン 15

  16. Philosophy UNIX哲学 • Small is beautiful. • Make each program

    do one thing well. • ... 16
  17. 明日からできること • わかりやすい名前 • 責任の明確なメソッド • 適切な可視性 (package-private の活用) • テストを書くことを当たり前に

    17
  18. アジャイルなコードへの情熱と喜び • 我々が多くの時間をかけて向き合うのはソースコード • ビジネス要求に応えるための設計力と実装力の研鑽 • 原則とプラクティスの実践 • 業務知識を反映した高凝集で疎結合なコード •

    開発速度と品質の最適なバランスのための選択肢を持つ 18
  19. アジャイルなコード、 書いていきましょう! 19

  20. Appendix(おすすめ書籍) • オブジェクト指向のこころ • 現場で役立つシステム設計の原則 • Domain-Driven Design Quickly •

    UNIX という考え方 20