PHPカンファレンス 2023 沖縄 で実演したライブコーディングのためのリポジトリです。
トーク概要:【ライブコーディング】素朴で考慮漏れのある PHP コードをテストコードとともに補強していく by おかしょい/岡田正平 | プロポーザル | PHPカンファレンス沖縄2023 - fortee.jp
初期状態(ロジック未実装)を main ブランチ、ライブコーディング後の最終的な状態を reference ブランチとしてアクセスできる状態にしてあります。
また、reference ブランチのコミットログには、ライブコーディングの過程で行った変更を step-by-step で残しているので、そちらも参考にしてください。
ソフトウェアテストの領域でよく題材として挙げられる「Myers の三角形問題」と呼ばれる問題を扱います。 Myers の三角形問題とは以下の要件に対するテストケースを作成する、というものです。
このプログラムは入力ダイアログから3つの整数を読む。 この3つの値は、それぞれ三角形の3辺の長さをあらわすものとする。 プログラムは、三角形が不等辺三角形、二等辺三角形、正三角形のうちどれであるかを示すメッセージを表示する。
参考ページ:マイヤーズの三角形問題
直接 PHP 実行する方法と、Docker(Docker Compose)を使う方法の 2 つを提供しています。
動作確認済み環境
- PHP 8.2.8
- Composer 2.5.8
このリポジトリを clone したのち、以下のコマンドを実行してください。
composer install
リポジトリルートで以下のコマンドを実行してください(ポート番号は任意)。
php -S localhost:<ポート番号> -t public public/index.php
その後 Web ブラウザで http://localhost:<ポート番号> にアクセスしてください。
リポジトリルートで
./vendor/bin/phpunit
または
composer test
を実行してください。
動作確認済み環境
- Docker 24.0.2
- Docker Compose 2.19.1
このリポジトリを clone したのち、以下のコマンドを実行してください。
docker compose run --rm php composer install
また、ホストマシン上で listen するポート番号を変更したい場合は .env
ファイルの HTTP_PORT
を変更してください。
リポジトリルートで以下のコマンドを実行してください。
docker compose up
その後 Web ブラウザで http://localhost:<ポート番号> にアクセスしてください。
リポジトリルートで
docker compose run --rm php ./vendor/bin/phpunit
または
docker compose run --rm php composer test
を実行してください。