採択
ゲストセッション

誰のためのソースコード?

shin1x1 新原 雅司

理解しやすいソースコードとはどういったものでしょう?

ソースコードのメンテナンス性が重要であることは多くのプログラマに認知されており、いわゆる可読性が高いコードを書くためのプラクティスはリーダブルコードや Effective XXX と言った文献で語られています。
一方、コードの可読性を語る上で重要な要素として、それを読む「人」があります。人が読み、人が理解することでコードはメンテナンスされていきます。

本セッションでは、人がコードを理解するいうことに焦点を当てて、理解しやすいコードについて考えてみます。

採択
ゲストセッション

マンガでわかる設計原則

tanakahisateru 田中ひさてる

あのマンガでわかるデザインパターンが、こんどはオブジェクト指向の原則になって登場します。

採択
IRT

Laravel.tamachi

endu

PHPやLaraveを業務で使っていたり、趣味で学んでいる方を対象としたIRT(Interactive Round Table)を行います。

IRTではLaravel用のテーブルと、PHP用のテーブルにそれぞれ分かれて、各技術トピックについて相談や議論を行う事を目的としてます。

各テーブルでの司会役は「Laravel.shibuya」と「Laravel.tenjin」の運営メンバーの方に担当して頂きます。
担当は以下の通りです

Laravel IRT: endu さん
PHPとJavaScriptを書いています。
SNS:https://twitter.com/Fendo181

PHP IRT: kunit さん
GMOペパボ ホスティング事業部 / 単なる旅行好き
SNS:https://twitter.com/kunit

タイムテーブルについて

IR20分、休憩5分を3セット行います。

10:30~10:50 IRT 1回目
10:55~11:15 IRT 2回目
11:20~11:50 IRT 3回目

※途中開始時間が前後するかもしれませんがご了承下さい。

なお、IRT中での入退室は自由になっております。
気軽にご参加下さい。

テーマについて

事前に募集もしますが、当日テーブルに来てその場で相談して頂いても問題ございません。

注意について

カンファレンス期間中も当然ですが、IRT中も他の参加者へのご迷惑となる行為はしないようお願いいたします。

採択
WorkShop

初心者向けLaravelワークショップ

吉田あひる

(以下の内容はあくまで予定している内容です。当日の進行状況によっては内容が変更になる可能性があります。)

このワークショップでは、Laravelのソースコードリーディングやモブプログラミング(※1)を通じてLaravelのライフサイクルやLaravelの様々な機能、テストコードの書き方などを学びます。

ワークショップの想定対象者

  • いわゆる初学者の方
  • PHPのコードをある程度読める方
  • Laravelを使った初歩的な開発をおおまかに理解している方(チュートリアルレベルのCRUDアプリケーションで可)

予定しているコンテンツ

ソースコードを読みながら学ぶLaravelのライフサイクル(1h)

Laravelのライフサイクルについてソースコードをベースに解説していきます。
ライフサイクルについて詳しくなると、Laravel本体のある程度詳細な知識が身につきます。
これによって、エラーの原因の切り分けが早くなったり、Laravelの機能をカスタマイズするための学習がしやすくなるなどの効果が見込めます。

Laravelの様々な機能を学びながら実装(1h)

あらかじめこちらで用意しているアプリケーションに機能を追加実装する過程で、様々なLaravelの機能を活用していきます。
Laravelを使って開発するのであれば絶対に知っておきたい便利な機能を学んでいきます。

モブプログラミング(1h)

大きなディスプレイに開発画面を写し、みんなでわいわい実装していきます。
特にシナリオは用意していないので、新たに機能を実装するもよし、既存の機能をより良いコードにリファクタリングするもよし、その場のノリで楽しみましょう。
モブプログラミングを通してエラーの潰し方やデバッグ方法などが学べる予定です。また、自分以外の人がプログラミングをする最中に考えていることを知れる貴重な機会になると思います。

※1
モブプログラミングとは、みんなで1つの画面を共有しながらわいわいプログラミングすることです。
交代で一人ずつドライバーとなりドライバーの人が実際にプログラミングを担当します。
周りの人はドライバーの人にアドバイスをしながらみんなで協力をして実装を進めていきます。

採択
スポンサーセッション

ChatOpsで立ち上がる、シームレスなプレビュー環境

kotamats 株式会社ROXX kotamat(松本宏太)

開発チームも大きくなり、関係メンバーが増えてきたため、柔軟にプレビュー環境を立ち上げるツールの紹介をします。
同時並行でPRが立ち上がるため、GitHubのコメントドリブンでPRごとにプレビュー環境が立ち上がるものとなっています。

ROXXでは事業部が2つあるのですが、それぞれの開発環境に最適化したプレビュー環境の作り方を紹介します。

  1. k8s + モノレポ構成
  2. ECS + AWS CDK + マルチレポ構成
採択
スポンサーセッション

Laravelベースのオープンソースソリューションを開発しました

hirossyi73 株式会社カジトリ 佐藤 裕

Laravel5.6をベースとした、オープンソースのWebデータベース「Exment」を開発しました。
本セッションでは、Laravelのメリット、LaravelをベースとしたOSSを開発する場合のメリット、注意点などをご紹介します。
また、Exmentの製品のご紹介を行います。

採択
スポンサーセッション

AWS Fargate に乗せたPHPと Amazon API Gatewayを組み合わせて使う

makies 株式会社ゆめみ マキ

「AWS Fargate の上で PHP (Laravel/Lumen) でAPIを提供する」
「Amazon API Gateway 経由で Lambda Function を Web APIとして提供する」

巷ではよくあるパターンですよね。
ではみなさん、これらを組み合わせて使ったことがあるでしょうか?
実際に使ってみると、たくさんのメリットがあったのでご紹介します。
※ Lambdaの話は出てきません

採択
スポンサーセッション

LaravelとAWSでProgressiveなアプリケーション開発

kazuhei__ 株式会社M&Aクラウド 荒井和平

LaravelをハブにしてAWSの様々なサービスを利用してサービスを段階的に成長させていくことについて話します。

レギュラーセッション(30分)

Artisanコードリーディング

tadsan うさみけんた

Laravelを使っていればご存じの通り、ArtisanはLaravelのCLIインターフェイスです。

その中にはさまざまなサブコマンドが用意されていますし、ユーザーが拡張できるようにもなっています。
Artisanそのものがどのように構成されているのか、そしてそれぞれのサブコマンドがどのように実装されているかについて解説します。

採択
レギュラーセッション(30分)

やんちゃなEloquent Modelの育て方

n_1215 中榮健二

フルスタックWebフレームワークLaravelの最大の特徴はEloquent。
Eloquentを制するものがLaravelを制するといっても過言ではありません。

Laravel利用者同士であれば、Eloquent Modelをどう使うか、太りがちなロジックをどう整理するかなどなど、Eloquentの話だけで一日中語り尽くせることでしょう。

最近のカンファレンスのLaravel系のトークでは、Laravel利用者が成熟してきたせいか、アーキテクチャや設計論が目立ち始め、Eloquent Model自体への評価は下降気味だと感じています。
曰く、Eloquentはやんちゃが過ぎるのでリポジトリに閉じ込めるべきである、ORMの"Model"クラスとは別のPOPOのクラスをドメインモデルとして使うべきである云々。

本トークでお伝えしたいのは、我々が普段書いているEloquent Modelのコードと、カンファレンスで話される理想的な設計の話は地続きであり、決して雲の上の出来事ではないということ。コードの良し悪しはとあるアーキテクチャやパターンを取り入れるかどうかのゼロイチで決まるものではなく、その間にある無数のトレードオフに目を向けることが大事だということ。

目の前にある泥臭いLaravelアプリケーションのコードと付き合いながら、設計について考えていきましょう。

● お話しすること

  • ActiveRecordとDataMapper
  • ドメインモデルと永続化モデル
  • リポジトリパターン
  • ドメインモデルとしてのEloquent Model
  • Eloquent Modelを分割統治するためのパターン集

● お話ししないこと

  • クリーンアーキテクチャ
  • ドメイン駆動設計

P.S. Laravel中〜上級者の皆様へ

リポジトリパターンやクリーンアーキテクチャは本当に必要ですか?
それらが利用される本当の目的を理解して利用していますか?
POPOが正義でしょうか?
Eloquentは力をセーブさせざるを得ない悪い子でしょうか?

本トークを通じて、Laravelを使い始めた頃に感じていたEloquentの万能感を、ぜひ思い出していただければと思います。

1
採択
ショートセッション(15分)

速習Composer

tadsan うさみけんた

現在のLaravelは近年の多くのPHPフレームワークと同様にComposerを基盤として構成されており、Packagistに登録された多数のPHPライブラリと簡単に相互運用できるようになっています。

この発表ではComposerの基本機能およびLaravelとComposerの関係、そしてComposerの設定方法などをまとめて解説します。

レギュラーセッション(30分)

Composerを学ぶ

tadsan うさみけんた

PHPの25年の歴史にはさまざまなフレームワークがありましたが、現代と過去を分ける一つの画期として「Composer以前/以後」があります。Laravelをはじめとして、近年のPHPフレームワークとライブラリはすべてComposerを基盤にして相互運用できるように構成されています。

この発表ではComposerとPHPの機能の関係およびLaravelがComposerをどのように使っているか、そしてWebアプリケーションを本番環境で運用するためにComposerの観点からどのように注目するかについて解説します。

ショートセッション(15分)

Full Serverless 作る自作サービス

seike460 清家史郎

僕たちが提供したいのはその技術では無く、その技術が実現する価値です。

その価値提供にFull Serverlessなシステムは非常に高い効果を発揮します。

運用レスを目指してFull Serverlessなサービスを作成し、その中での知見を共有します。

■対象
Serverlessに興味がある人

■お話すること

  • AWSで構築するFull Serverlessサービス
  • 個人利用を目的とした簡単なサービス
     
    ■内容を約束出来ないこと
     - PHP
     - Laravel
ショートセッション(15分)

初心者PHPerがLaravelで個人開発をして得た知見

jdkfx 田添春樹

個人開発でLaravelを使ったあるWEBアプリケーションを開発しています。
開発をする際にLaravelを使ってみてとても便利だなと思った点や、使いやすかった機能など色々と勉強になった点がたくさんありました。
このトークではその便利だと思った点、使いやすかった機能を、Laravelを扱ったことのない人にもわかりやすいように、簡単なCRUDアプリのコードを通して、余すことなく紹介できたらいいなと思っています。

採択
レギュラーセッション(30分)

Laravelで学ぶ、セッションの基本と応用

hanhan1978 富所 亮

ステートレスなHTTPをステートフルに変えてくれる仕組みがセッションです。ユーザのログイン、リダイレクト後のエラーメッセージの表示、CSRF対策等、現代のウェブアプリケーションで多用されているセッションですが、セッションがどのように動いているかと聞かれた時に正しく答えられますか?
初心者に近いPHPerがセッションを多用すると、中堅クラスのエンジニアから「セッションは危ないから多用しないように」とアドバイスされることも多いと思いますが、それは何故でしょうか?

本トークでは、ウェブアプリケーションにおけるセッションについて、その正体を分かりやすく解説します。また、セッションの正体を知ることで、ウェブアプリケーションのアーキテクチャーに対してセッションが及ぼす影響についても解説します。セッションにまつわるアレコレを解説することで、初心者とベテランエンジニアの間に存在する知識と経験の差を少しでも埋めることが狙いです。

このトークでお話すること

  • セッションの仕組み
  • Laravelにおいて無意識に利用されているセッションの例
  • Laravelが独自のセッション管理を行う理由
  • セッションが本番アプリのアーキテクチャに与える影響
1
LT(5分)

Laravel実行コンテナのDocker Hub運用のススメ

hanhan1978 富所 亮

Docker Hubは、Dockerが提供してくれるコンテナレジストリです。
Laravelをすぐに実行できるコンテナを自作して、Docker Hubに登録すると、開発・CI・CD・本番運用までの開発フローが単純になって良いことばかりです。

そんなDocker Hubのオススメの使い方を紹介します。

ショートセッション(15分)

Preloading Laravel

hanhan1978 富所 亮

PHP7.4から、OPCacheにpreloadという新しい設定が加わりました。この設定を利用すると、既にOPCacheを利用しているアプリケーションでも、動作速度を10倍[注1]に上げることが出来ます。

本トークでは、OPCacheの基本からおさらいし、preloadの機能を丁寧に解説した上で、Laravelで利用する場合の利用法や注意点を紹介します。
また、実際に本番で運用する際の、サーバー構成やデプロイの注意点もまとめます。

このトークでお話すること

  • OPCacheのおさらい
  • preloadの仕組み
  • Laravelにおけるpreloadの利用法
  • 本番運用でpreloadを使うときの注意点

対象者

  • OPCacheの基本を覚えたい方。
  • アプリケーションのチューニングに興味がある方。

[注1] DB接続等のIOバウンドな処理が含まれない場合に限る。

レギュラーセッション(30分)

Preloading Laravel

hanhan1978 富所 亮

PHP7.4から、OPCacheにpreloadという新しい設定が加わりました。この設定を利用すると、既にOPCacheを利用しているアプリケーションでも、動作速度を10倍[注1]に上げることが出来ます。

本トークでは、OPCacheの基本からおさらいし、preloadの機能を丁寧に解説した上で、Laravelで利用する場合の利用法や注意点を紹介します。
また、実際に本番で運用する際の、サーバー構成やデプロイの注意点もまとめます。

このトークでお話すること

  • OPCacheのおさらい
  • preloadの仕組み
  • Laravelにおけるpreloadの利用法
  • 本番運用でpreloadを使うときの注意点

対象者

  • OPCacheの基本を覚えたい方。
  • アプリケーションのチューニングに興味がある方。

[注1] DB接続等のIOバウンドな処理が含まれない場合に限る。

採択
ショートセッション(15分)

Laravel Vaporを再現!自ら作るServerless Laravel

seike460 清家史郎

Serverless PHP は作れる
Serverless Laravel といえば Laravel Vaporを思い浮かべる人が多いのでは無いでしょうか

Laravel Vaporが作れる様にAWSのArchitectureを正しく理解していればServerless PHPは作れます

今回はLaravel Vaporが担っている基本要素を自ら構築してみようと思います

本セッションを通してServerless Architectureの知見が広まる事を本セッションを目的とします

■聴講者ターゲット

  • Serverless に興味のあるLaraveler
  • Serverless に興味のあるPHPer
  • AWSに興味のある方

■お話する内容

  • Laravel Vaporの基本機能再現
     - Queues
     - Storage
     - Networks
     - Databases
     - Caches

■お話しない内容

  • Laravelerが唸るようなテクニック
     ※話者はCakePHPerです