採択
レギュラートーク 30分

テスト環境のインフラ・運用コストを下げたい話〜全部入りEC2を超えていけ

n_1215 中榮健二

皆さんはテスト環境をどのように用意していますか?
理想を言えば本番環境と同一の構成を用意してしまうのが安心です。
しかし、マネージドサービス多用の構成のインフラコストが馬鹿にならず、全部入りVMを使う構成に落ち着くことはありませんか?

実際、弊社にも全てを詰め込んだEC2一台で運用されるテスト環境が存在しており、
インフラコストの代わりに運用コストが高くなっているなと感じています。

本トークでは、コンテナやDBなどのマネージドサービスを使って運用コストを下げつつもインフラコストにも配慮した構成を模索します。
テスト環境だけでなく、小規模サービスや個人開発のインフラ構築の参考にもなれば幸いです。

● お話ししたいこと

  • AWS、GCP、PaaS
  • RDB料金節約
  • コンテナ

● お話ししないこと

  • FaaS
  • RDBを諦める
  • 共用レンタルサーバ
3
レギュラートーク 10分

PHPUnitを用いたテストコード入門

seike460 清家史郎

PHPerのみなさま、テストコード書いてますか

機能実装に比べて軽視されがちなテストコードですが、
記述することで様々なメリットが得られます。

今回はPHPUnitを利用してテストコードを書く方法について学ぶことで
テストコードにより得られるメリットや、そのはじめ方について入門します。

本セッションを通して、テストコードの第一歩を踏み出しましょう。

  • 想定聴講者
    • テストコードを普段欠かない方
    • PHPUnitの利用方法を見直したい方
1
採択
レギュラートーク 30分

HTTPリクエストの行方 - Laravelがレスポンスを返すまで -

seike460 清家史郎

Webアプリケーションはどうして動くのでしょうか

ブラウザ等のクライアントから送信されたHTTPリクエストを契機に、
Webアプリケーションでは様々なレイヤーでの情報処理が行われます

今回はその情報処理の流れをLaravelを例に追うことで、
Webサーバー、Laravelアプリケーション、データーベースと
レイヤー毎で行われている処理と、そのレイヤー毎のつなぎ込み部分に迫ります。

HTTPヘッダーを含むHTTPリクエストの流れを追って、真にWebアプリケーションがどうして動くのかを知り、
必要な処理をどこに組み込むことが効果的なのかを知る一助になれば幸いです。

  • 想定する聴講者
    • HTTPリクエストからレスポンスまでの流れをよく知らない方
    • HTTPヘッダーについて知りたい方
    • ウェブアプリケーションにおけるレイヤー毎の役割を整理したい方
1
レギュラートーク 30分

Amazon CloudWatchで行うコストを意識したWebアプリケーション監視

seike460 清家史郎

Webアプリケーションを運用する上で、監視の仕組みは欠かせません。

SREの文脈で特に重要性が高まるアプリケーション監視ですが、世の中には様々な監視サービスが存在します。
今回は特にAmazon CloudWatchをコアに据え、どの様にWebアプリケーションを監視する事が出来るのかを考察します。

AWS以外のオンプレミスも対象とした、提供するアプリケーションに対して
コストメリットも含めた監視サービスについてお話します。

  • 想定する聴講者
    • 普段AWSを利用していない方
    • Webアプリケーションの監視を始めたい方
    • 監視を行う上でのメリットを学びたい方
3
レギュラートーク 30分

AWS Amplifyでフルサーバーレスな開発を始めよう

seike460 清家史郎

フルサーバーレスな構成を取る場合、様々なクラウドサービスの知識に加え
実践的な利用方法が求められます

またAWS上でフルサーバーレスなアプリケーションを作成しようとしても、
AWS LambdaのネイティブランタイムにPHPはありません

フルサーバーレスの恩恵を受けたいが、その第一歩が難しい
その悩みをAWS Amplifyは解消してくれます

普段はPHPで実装するバックエンドをAWS Amplifyに任せることで、
React + GraphQLで作成するログイン付きのサンプルWebアプリケーションを作成する流れについてご説明します

具体的な手法をなぞることでフルサーバーレスなアプリケーションを作成手法を学びましょう

  • 想定する聴講者
    • フルサーバーレスアプリケーションに興味がある方
    • 具体的なフルサーバーレスアプリケーション開発の始め方を知りたい方
3
採択
レギュラートーク 10分

僕が Illuminate を読む理由

fuwasegu ふわせぐ

Laravel を使っている皆さん,Laravel の実装(Illuminate)は読んでいますか?
僕はいつも寝る前の読書の時間に Laravel のソースコードリーディングをしています(大嘘)
冗談はさておき,Laravel(に限らずライブラリやフレームワーク)の実装を読むことは,自分の成長にも繋がりますし,より Laravel を使いこなす上で非常に大切だと考えています.
本セッションでは,まだあまりフレームワークのコードを読んだことが無い方に向けて,Laravel の実装を読むメリットや読み方,読むべきタイミングなどを解説します!

3
採択
レギュラートーク 10分

GitHub Issueで書くブログをCakePHP4で実装する

eccyun 田島 僚

自前で作る時に何かと考えることの多いエディタ部分をGitHub Issueに肩代わりしてもらって運用するブログをCakePHP4で実装しました。
追加したIssueを元に記事を生成してデプロイする仕組みをGitHub Actionsで作りつつそれを下支えするCakePHP4のブログアプリケーションの実装例を紹介します。 GitHub Actionsの成分がやや多めで、こんな感じのことが出来るんだというのがわかる内容です。

あらすじ

・ GitHub Issueでブログを書こう
・ アプリケーションの構成
・ GitHub Actionsについて
・ GitHub Actionsを使ってデプロイを自動化する
・ CakePHP4でIssueの情報を取得し静的HTML化する
・ 個人開発のモチベーション

2
採択
レギュラートーク 10分

スクラムマスターを経験して得られた学びとエンジニアとしての成長

AkitoTsukahara AkitoTsukahara

みなさんはスクラムで開発されていますか?スクラムマスターを経験したことがありますか?
何となくスクラムマスターはエンジニアマネージャーやリーダー適性のある人だけがやるものだと思っていませんか?
確かに適性はあるかもしれませんが、スクラムマスターを経験することで、エンジニアとしてのパフォーマンスが上がるきっかけも手に入れられると自分は考えています。

スクラムマスター経験を通じて得られた学びが、現在エンジニアとしてどのように活かされているのか、ご紹介できればと思います。

▼エンジニアにも効くスクラムマスター経験の学び
・ユーザ価値をより意識する
・アンラーンの面白さ
・ファシリテーション能力
・チームの観察と声かけ

本トークを聞いて、迷っていたけどスクラムやってみようかな?スクラムマスターやってみようかなと思って貰える人が少しでも増えたら幸いです!

採択
レギュラートーク 10分

FeatureToggle戦略と運用方法

kubotak_public KenjiroKubota

新機能のリリースはどのように行っていますか?
私が所属している会社ではFeatureToggleを利用した機能リリースを行っています。
FeatureToggleとは、新機能のコードを含んだままデプロイを行い、フラグ機能により新機能の有効化・無効化を制御する手法です。
FeatureToggleでリリースするメリットとデメリットについて、またどのように運用をしているのかを紹介できればと思います。

4
採択
レギュラートーク 10分

今あらためて考える ~ PHPに型定義をする理由 ~

isanasan_ いさな

近年、PHPを用いた開発では、PsalmやPHPStanのような型情報を扱う静的解析ツールが取り入れられることが増えてきました。JetBrainsによる調査結果からも年々静的解析ツールの利用者が増えていると伺えます。
まさに世は大静的解析時代と言っても過言ではないでしょう。
またPHPそのものも、徐々に型に厳密な言語へと生れ変わりつつあります。

だがちょっと待って欲しい

そもそも動的型付け言語として誕生したPHPに専用のツールを使ってまで、わざわざ型を付けるのはどのようなメリットがあるのでしょうか?

本トークではPHPに型を付けるメリットについて、下記の観点を中心にあらためて考え直してみたいと思います。

  • コーディングの生産性
  • フィードバックサイクル
  • コードのメンテナンス性
採択
レギュラートーク 30分

30分で理解するEloquentの巨大な全貌

hayashi_msyk HAYASHI Masayuki

LaravelのORMであるEloquentは、Laravelの多彩な機能の中でも特に重要なものです。
しかし多機能で、とても大きなモジュールです。みなさんは十分に理解して使えているでしょうか?
関連するクラス・トレイトが主要なものだけでも10以上、Eloquent\Modelを継承したオブジェクトから使用できるpublicメソッドは、少なく見積もっても300以上と、巨大で複雑です。

素直にコードを読んで理解しようとすると、何日かかるかわかりません。
しかし大きくて複雑な問題も、小さく分割して、抽象化することで対処できます。

このセッションでは、Eloquentを使用してきた経験、公式ドキュメントの記述、実際にコードがどう分割されているか、どのようなタイプのメソッドがあるのかなどのあらゆる視点を駆使して、巨大なEloquentの全貌を解き明かしていきます。

1
採択
レギュラートーク 10分

RDBにおける候補キーを求めるためのアルゴリズム

amamanamam くぼ

RDBにおける候補キーとは一意にレコードを定めることができるカラムのことを指します。
これにnot null制約が課されることでよく知られている主キー(primary key)になります。

つまり候補キーは各テーブルで非常に重要なキーであり、更にこれは正規化するにあたって必要な要素になります。
そのため、候補キーを見つけることはテーブル設計において大事な役割を果たします。

実は任意のテーブルに対してその候補キーを見つけるためのアルゴリズムが存在し、1つ見つける場合は多項式オーダーの時間計算量で済むことが知られています。
そこで、本セッションではそのアルゴリズムについてできる限り詳しく紹介したいと思います。

3
レギュラートーク 30分

正規化理論ことはじめ -数学的背景から理解する正規化の初手-

amamanamam くぼ

現在、正規化という手法はDB設計においてよく知られている手法となっています。

しかし、現場では以下のようなテーブルを見かけることは珍しくありません。
・1 つのカラムに複数の値が入ったテーブル
・カラム数が多いまたは、1 つの情報変更で更新処理が多く必要なテーブル
・JOINすると期待通りの結果が得られないテーブル

これらは低次の正規化により一定解決できます。もちろん闇雲に分割すればいい訳ではなく、
正規化の概念を正しく理解した上で分割を行う必要があります。

そこで本セッションでは、リレーショナルデータモデルが集合論に立脚していることから、数学的背景に着目して第1〜第2正規化について紹介します。
具体的には、RDBの用語(候補キー・関数従属性・情報無損失分解・正規形)を適宜厳密に解説しつつ
実際の正規化の例を通して、PHPer が向かうべきテーブル分割の手法を持ち帰っていただきます。

3
採択
レギュラートーク 30分

CakePHP2、4混在環境のPHP8.1バージョンアップ

yakitori009 金澤裕毅

CakePHP2とCakePHP4が混在する環境でPHP7.3→8.1にバージョンアップを行いました。
このトークでは、この環境におけるバージョンアップのアプローチと、バージョンアップの際に発生した問題点、
そして、それをどのように解決したかを話します。

主なトピック

・サーバー構成とサービス分割について
・CakePHPバージョンと、それに対応するPHPバージョン
・バージョンアップの前準備
 ・サーバーのコンテナ化、Immutable化
 ・リリースフローの変更
・M1 Mac等のArm環境でも動作する開発環境について
・PHP8.1バージョンアップ時に生じた問題と解決方法
・PHP8.1に対応していないCakePHP2に対するアプローチ

5
採択
LT 5分

Laravelで二要素認証をサクッと実装してみた

sawadangox sawada

昨今多くのサービスで導入されている二要素認証、みなさんのサービスには導入済みですか?

Google Authenticator(Google認証システム)が一番有名ですが、実はアレ、結構簡単に導入できちゃうんです。

今回は5分間で、LaravelのAPI型アプリケーションに二要素認証を気軽にサクッとシンプルに導入するための手順をご紹介します。

1
レギュラートーク 10分

開発組織の生産性を可視化する ~ State of DevOpsとfour keysとは ~

isanasan_ いさな

想定課題

開発がスケールしたり、開発年数が経過すると、様々な要因で開発生産性の低下が起こります。
そこで現場のエンジニアは改善をしたくなるかと思いますが、大抵の場合、ステークホルダーと工数確保の合意が必用になります。
その際にこのようなことを言われがちではないでしょうか?

  • 今動いているものを直す必用ある?
  • 効果測定どうやんの?
  • 費用対効果はどれくらい?

パフォーマンスチューニングの世界には「推測するな計測せよ」という言葉がありますが、開発組織における生産性についても測定してモニタリングする必用があると思います。

本セッションの目標

以上を踏まえ、本セッションでは開発組織とステークホルダーの間の共通言語を獲得することを目標に以下の内容についてお話します。

  • State of DevOpsとは
  • Four Keysとは
  • 27のケイパビリティとは
8
採択
LT 5分

開発体験を爆上げするLaravel Dacapoマイグレーションサポートツールのススメ

ucan_lab ゆうきゃん

Laravel Dacapoという自作のOSSライブラリの話をします。
https://github.com/ucan-lab/laravel-dacapo

・開発初期段階のマイグレーションについて
・マイグレーションで困っていること
・ダカーポを導入するメリット
・簡単な使い方やコマンドのご紹介

レギュラートーク 10分

開発体験を爆上げするLaravel Dacapoマイグレーションサポートツールのススメ

ucan_lab ゆうきゃん

Laravel Dacapoという自作のOSSライブラリの話をします。
https://github.com/ucan-lab/laravel-dacapo

・開発初期段階のマイグレーションについて
・マイグレーションで困っていること
・ダカーポを導入するメリット
・簡単な使い方やコマンドのご紹介

1
レギュラートーク 10分

LaravelでGraphQLを使ってみた

kanbo0605 カンボ@沖縄

GraphQL初心者向けに下記のような話をします!

・GraphQLとは何か
・GraphQLのクエリ、ミューテーションの説明
・クエリの記述方法の説明
・Laravelでの導入方法
・実務で使ってみてどうだったか?

1
採択
レギュラートーク 30分

実践!ユニットテスト入門

Panda_Program プログラミングをするパンダ

テスト書いてますか?
テストを書く理由と実際のテストコードを紹介する実践編に分け、TDD を3年間実践してきた経験に基づいてお話しします。

テストを書いたことのない方が、テストを書いてみたいと思ってもらえることを目指します。
サンプルコードは PHP + PHPUnit ですが、他言語でも通用する考え方を紹介します。

■ 概要
・なぜテストコードを書くのか
・レガシーコードとは、テストのないコード
・テストはコストが安いフィードバックループである

■ 実践編
・テストケースは日本語で書こう
・いろんな assertion を知ろう
・arrange / act / assertion のテストコード実装パターン
・set up / tear down を使って前処理/後処理をする
・dataProvider でテストをまとめる(ただし早すぎる抽象化に気をつけよう)

10