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

LaravelConf Taiwan 2019 - Challenge from inexperience! Product development at Laravel (Taiwanese)

LaravelConf Taiwan 2019 - Challenge from inexperience! Product development at Laravel (Taiwanese)

Ayumi Kobukata

July 13, 2019
Tweet

More Decks by Ayumi Kobukata

Other Decks in Technology

Transcript

  1. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 沒有經驗也可以挑戰! 用 Laravel 開發產品 株式会社サイダス 小深田 あゆみ
  2. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 自己紹介 小深田 あゆみ @_kobuuukata こ ぶ か た CYDAS Inc. – Application Engineer n 2013年〜2018年 SIer Infrastructure Engineer n 2018年10月よりサイダスに Join ! n Laravel 歴 4ヶ月
  3. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. サイダスについて すべての⼈・チームの才能を引き出す新しい仕組みをつくる n 2011年創立 n 沖縄・東京・ソウルにオフィスを持つ n 「CYDAS」の開発・販売・コンサルティング・サポート
  4. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. banto(Personal Assistant) 幫助您的團隊和員工快速成長並實現目標的工具 https://banto.jp/ 2019年 7月 末 リ リ ー ス !
  5. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 今日お話ししたいこと 在產品開發中使用 Laravel 如何學習 Laravel 初學者 開發期間的設備管理
  6. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Google Trends(台湾) 2016年以降 Laravel が圧倒的な注目度を誇る!
  7. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Google Trends(日本) 2016年以降 Laravel が人気を伸ばしている!
  8. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. そもそも Laravel を採用した理由 開発経験のある言語を選択することで、プロジェクトをスムーズに進めたい狙い n Laravel での開発経験があるメンバーがいたから Ø Tech Lead Engineer Ø Offshore development ( Rwanda )
  9. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Laravel's architecture 各クラスで役割を明確に! Route Controller Service Repository Model View リクエストの受け取り と結果を返す 要求に対するロジック 変更されない定数の定義 データの取得や更新
  10. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Overall architecture AWS を導入することでスモールスタートで始められ、開発に注力できる! Amazon EC2 AWS Cloud ELB Amazon RDS Amazon S3 Amazon SES Chat platform Amazon API Gateway AWS Lambda Amazon DynamoDB banto web application Chat bot
  11. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Deploy Laravel Backlog GitのWebhookを利用し、OpsWorksでデプロイ! Amazon API Gateway AWS Lambda AWS OpsWorks Amazon EC2 AWS Cloud push Webhook deploy
  12. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発における工夫:キャッシュ利用し、パフォーマンス改善 キャッシュさせることでデータの読み出しが早くなり、リクエスト処理も高速化! n Laravel で用意されている Cacheファサード を利用 n Lacal Cache を利用することでさらにパフォーマンス改善
  13. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発における工夫:API reference の実装 プログラムからAPIリファレンスを自動生成! n プログラム内で API 定義を書き、リファレンスを表示させる Ø Routing:API定義をロードし、ルーティングに自動登録 Ø Validation:POSTパラメータの Laravel 式バリデーションの実現
  14. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発における工夫:API reference の実装 単なるAPI referenceとしての機能だけでなく、APIの実行まで行える! n リファレンス上でAPIの実行と結果を表示する Ø frontend:定義名はリファレンスを見れば実装できる Ø backend:テストができるので実装が楽になる
  15. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発の際に役立つ Tool :laravel-ide-helper Laravel で開発するなら必須のプラグイン n IDE 補完用のプラグイン n Composer で簡単インストール! laravel-ide-helper を入れないとクラスが認識されない・・
  16. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発の際に役立つ Tool:deep-assoc-completion PHPコードを読み取って配列のキーを補完してくれる n 他の関数から推測される配列のキーを補完する PhpStorm プラグイン
  17. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 開発の際に役立つ Tool :Presentation Assistant ショートカットを駆使して開発効率アップ! n 操作すると操作内容とショートカットを表示する PhpStorm プラグイン n 便利なショートカットをチーム内で共有できる!
  18. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Project Member Product Owner Frontend Backend Backend
  19. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Team Member チームの課題 1年 15年 プログラミング歴 半年 沖縄 沖縄 勤務地 東京 経験豊富なメンバーが少なく、勤務地も違う
  20. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. その他にも・・ スクラム開発での課題 n タスクの属人化 n チームなのにコミュニケーションが少ない n プログラミング未経験者でも入りやすい施策が必要
  21. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. これらの課題を解決する1つとして・・Mob Programming! What’s Mob Programming? n 複数人でひとつのプログラムを開発する n Mob Programmingでの役割分担 Ø Driver:マウスやキーボードを操作してコードを書く Ø Navigator :ドライバーに助言する n あ とはいえ、Mob Programming は全員未経験・・
  22. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Method of Mob Programming :常に zoom を繋いだ状態にする リモートワークでもモブプログラミングはできる!
  23. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Method of Mob Programming : Do retrospective daily 試行錯誤しながら改善を繰り返し、チームが成長!
  24. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Improvements from the retrospective n 詰まってしまうとチームの空気が・・ Ø 詰まった時は各自で調査する時間を設ける n 未経験者はドライバーに言われるがままになってしまう・・ Ø 実装手順の確認と実装フェーズに分けて進める Ø 未経験者はドライバーをやる割合を増やし、コードに触れる時間を多く作る
  25. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. プログラミング初心者の悩み・・成長が実感できない 成功記録をつけていき、できるようになったこと・学んだことを可視化!
  26. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. チームにとって Mob Programming でよかったこと タスクの属人化が解消されただけではなく、開発スピード・チームワークもアップ! n merge, conflictの解消にかかる時間が減った! n コミュニケーションが多くなった! n ほぼ残業ゼロ! n retrospective で改善を繰り返し行うことで、チームとして成長できた!
  27. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 初心者にとって Mob Programming でよかったこと プロエンジニアの技術を身近で学べる! n どんな処理を行っているのかその場で理解しながら進められる n コードの追い方やどうやって無駄なく処理を書くかなどを知れる n すぐに間違いを指摘してくれるので手戻りが少ない
  28. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Laravel の実践的な内容を学びたいならコレ! Laravel の学習 n Laravel5.5 に対応 n 実践的なアプリケーション実装方法や設計を学べる n 初心者にはちょっと難しい
  29. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Laravel は PHP のフレームワーク!PHP についても勉強! PHP の学習 n PHP7 の新文法に対応 n Webアプリケーション開発をしながら学べる n 静的解析などチーム開発に役立つツールの解説
  30. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 自分でアプリケーションを作ってみる! タスク管理のアプリケーションを作成 n 機能を追加すれば知識が広がる! n 何がわからないのか明確になる! n モノができると楽しい!
  31. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 情報収集の方法 SNSや勉強会で最新情報を GET! n PHP ユーザーズ(Slack)への参加 n Laravel 関連(Twitter)を Follow n 各種勉強会へ参加
  32. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. Programming 初心者が Laravel を使ってみて 初心者にも始めやすいフレームワーク! n 導入が簡単で始めやすい! n 日本語のドキュメントも充実している! n 勉強会も多く開催されていて情報収集しやすい! まだまだ知識不足・・ 早く Laravel マスターになってプロダクト開発に貢献する!
  33. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. 今日お話ししたこと 在產品開發中使用 Laravel 開發期間的設備管理 如何學習 Laravel 初學者
  34. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. WE ARE HIRING! Laravelでの開発/スクラム開発/自社プロダクト開発/沖縄が好きなエンジニア集まれ!