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

LaravelConf Taiwan 2019 - Challenge from inexpe...

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

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 こ ぶ か た 株式会社サイダス - アプリケーションエンジニア n 2013年〜2018年 SIer インフラエンジニア 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 チームと社員を飛躍的な成長に導くAI目標達成支援 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(日本) 2017年以降 Laravel が人気を伸ばしている!
  8. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. プロダクト開発における Laravelの活用 1.
  9. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

    assignment. そもそも Laravel を採用した理由 開発経験のある言語を選択することで、プロジェクトをスムーズに進めたい狙い n Laravel での開発経験があるメンバーがいたから Ø テックリードエンジニア Ø オフショア(ルワンダ)
  10. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

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

    assignment. 全体のアーキテクチャ 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
  12. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

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

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

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

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

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

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

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

    assignment. プロジェクトメンバー プロダクトオーナー フロントエンド バックエンド バックエンド
  20. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

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

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

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

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

    assignment. モブプログラミングでの工夫:ふりかえりを毎日行う 試行錯誤しながら改善を繰り返し、チームが成長!
  25. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

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

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

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

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

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

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

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

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

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

    assignment. 今日お話ししたこと プロダクト開発における Laravel の活用 開発する際の チーム運営の工夫 Laravel 初心者 の学習方法
  35. ©2019 CYDAS Inc. |Prohibition of copying without permission /prohibition of

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