PHPerのみなさま、テストコード書いてますか
機能実装に比べて軽視されがちなテストコードですが、
記述することで様々なメリットが得られます。
今回はPHPUnitを利用してテストコードを書く方法について学ぶことで
テストコードにより得られるメリットや、そのはじめ方について入門します。
本セッションを通して、テストコードの第一歩を踏み出しましょう。
Laravel を使っている皆さん,Laravel の実装(Illuminate)は読んでいますか?
僕はいつも寝る前の読書の時間に Laravel のソースコードリーディングをしています(大嘘)
冗談はさておき,Laravel(に限らずライブラリやフレームワーク)の実装を読むことは,自分の成長にも繋がりますし,より Laravel を使いこなす上で非常に大切だと考えています.
本セッションでは,まだあまりフレームワークのコードを読んだことが無い方に向けて,Laravel の実装を読むメリットや読み方,読むべきタイミングなどを解説します!
自前で作る時に何かと考えることの多いエディタ部分をGitHub Issueに肩代わりしてもらって運用するブログをCakePHP4で実装しました。
追加したIssueを元に記事を生成してデプロイする仕組みをGitHub Actionsで作りつつそれを下支えするCakePHP4のブログアプリケーションの実装例を紹介します。 GitHub Actionsの成分がやや多めで、こんな感じのことが出来るんだというのがわかる内容です。
あらすじ
・ GitHub Issueでブログを書こう
・ アプリケーションの構成
・ GitHub Actionsについて
・ GitHub Actionsを使ってデプロイを自動化する
・ CakePHP4でIssueの情報を取得し静的HTML化する
・ 個人開発のモチベーション
みなさんはスクラムで開発されていますか?スクラムマスターを経験したことがありますか?
何となくスクラムマスターはエンジニアマネージャーやリーダー適性のある人だけがやるものだと思っていませんか?
確かに適性はあるかもしれませんが、スクラムマスターを経験することで、エンジニアとしてのパフォーマンスが上がるきっかけも手に入れられると自分は考えています。
スクラムマスター経験を通じて得られた学びが、現在エンジニアとしてどのように活かされているのか、ご紹介できればと思います。
▼エンジニアにも効くスクラムマスター経験の学び
・ユーザ価値をより意識する
・アンラーンの面白さ
・ファシリテーション能力
・チームの観察と声かけ
本トークを聞いて、迷っていたけどスクラムやってみようかな?スクラムマスターやってみようかなと思って貰える人が少しでも増えたら幸いです!
新機能のリリースはどのように行っていますか?
私が所属している会社ではFeatureToggleを利用した機能リリースを行っています。
FeatureToggleとは、新機能のコードを含んだままデプロイを行い、フラグ機能により新機能の有効化・無効化を制御する手法です。
FeatureToggleでリリースするメリットとデメリットについて、またどのように運用をしているのかを紹介できればと思います。
近年、PHPを用いた開発では、PsalmやPHPStanのような型情報を扱う静的解析ツールが取り入れられることが増えてきました。JetBrainsによる調査結果からも年々静的解析ツールの利用者が増えていると伺えます。
まさに世は大静的解析時代と言っても過言ではないでしょう。
またPHPそのものも、徐々に型に厳密な言語へと生れ変わりつつあります。
だがちょっと待って欲しい
そもそも動的型付け言語として誕生したPHPに専用のツールを使ってまで、わざわざ型を付けるのはどのようなメリットがあるのでしょうか?
本トークではPHPに型を付けるメリットについて、下記の観点を中心にあらためて考え直してみたいと思います。
RDBにおける候補キーとは一意にレコードを定めることができるカラムのことを指します。
これにnot null制約が課されることでよく知られている主キー(primary key)になります。
つまり候補キーは各テーブルで非常に重要なキーであり、更にこれは正規化するにあたって必要な要素になります。
そのため、候補キーを見つけることはテーブル設計において大事な役割を果たします。
実は任意のテーブルに対してその候補キーを見つけるためのアルゴリズムが存在し、1つ見つける場合は多項式オーダーの時間計算量で済むことが知られています。
そこで、本セッションではそのアルゴリズムについてできる限り詳しく紹介したいと思います。
開発がスケールしたり、開発年数が経過すると、様々な要因で開発生産性の低下が起こります。
そこで現場のエンジニアは改善をしたくなるかと思いますが、大抵の場合、ステークホルダーと工数確保の合意が必用になります。
その際にこのようなことを言われがちではないでしょうか?
パフォーマンスチューニングの世界には「推測するな計測せよ」という言葉がありますが、開発組織における生産性についても測定してモニタリングする必用があると思います。
以上を踏まえ、本セッションでは開発組織とステークホルダーの間の共通言語を獲得することを目標に以下の内容についてお話します。
Laravel Dacapoという自作のOSSライブラリの話をします。
https://github.com/ucan-lab/laravel-dacapo
・開発初期段階のマイグレーションについて
・マイグレーションで困っていること
・ダカーポを導入するメリット
・簡単な使い方やコマンドのご紹介
GraphQL初心者向けに下記のような話をします!
・GraphQLとは何か
・GraphQLのクエリ、ミューテーションの説明
・クエリの記述方法の説明
・Laravelでの導入方法
・実務で使ってみてどうだったか?
LaravelのEloquentモデルイベントって何?という人も多いかもしれません。私も知ったのは去年くらいで、それまでは知りませんでした。
このモデルイベントは、モデルでcreate、save、delete,、updateなどの操作をした際のイベントを指しています。そして、これらのイベントを実行する際、合わせてなんらかの処理を行わせたい場合に使用します。
例えば、モデルのデータを新規作成する際にはdateカラムに現在の日付を初期値として入れたい時などに使用します。
他にも実際にどのようなケースでモデルイベントを使用するケースがあるのか、モデルイベントの注意点などを話していきます。
symfony/pantherはブラウザテストやWebスクレイピングを行うためのライブラリです。
Symfonyに限らずあらゆるPHPプロジェクトに統合して利用することができます。
ところで、少し前にWordleというゲームが大流行しました。
WordleはWebベースのゲームなので、ヘッドレスブラウザを使えばプログラムで機械的に解くことが可能です。
というわけで、今回はsymfony/pantherを使ってWordleを解くプログラムを実際に作ってみます。
このトークでは、その実装内容の説明を通して、symfony/pantherの基本的な使い方をご紹介できればと思います。
API Platformは、Symfony + DoctrineをベースとするPHP製のオープンソースAPIフレームワークです。
Symfonyアプリケーションにアトリビュート(アノテーション)を1行追加するだけで一瞬でREST APIを生成できてしまう優れもので、Symfonyのエコシステムにおいてはすでに決定版と言える存在となっています。
このトークでは、実際に動作するデモをお見せしながら、API Platformの概要をご紹介できればと思います。
みなさんはカンファレンスで登壇したことがありますか?
カンファレンスで登壇をしているスピーカーは、様々な過程を経てみなさんの前でトークをしています。例えば採択前ならネタ決めやプロポーザル、採択後ならスライド作成・トーク練習などの準備・・・
このトークするまでの過程は、人によって違うところもあり暗黙知であることが多いように思えます。
そこで今回は、過去に私がPHP系カンファレンスにて登壇した内容を例にしつつ、自分がカンファレンスで登壇するまでに準備していることを話します。
まだ登壇したことがない方はもちろん、登壇したことがある人も良いところを取り入れられるきっかけになれば幸いです!
具体例を交えつつ、以下のことについて触れる予定です!
・プロポーザルを出す時にどんなことを考えているのか?
・トークするまでの準備はどういうことをしてるのか?