PHPerが日々奮闘するソフトウェア開発の現場では、ユニットテストを書くことは推奨され普及してきました。
一方、E2Eといった高レベルのテストになると整備したいという気持ちはありつつ、初期構築コスト自体の高さや、構築したもののテスト維持に失敗する話をよく聞きます。
その要因の一つとして、本トークではテスト環境とテストデータに着目します。
テスト環境とテストデータの扱いは、既存システム都合との折衷案を取る必要があったりする理想と現実の間での戦いになる事が多いでしょう。
現場での戦いの武器となるような事例とそれぞれの実践手段のメリット・デメリットをまとめてお伝えします。
論点1. テスト環境を専用に作るか、既存のものを利用するか
論点2. E2Eでは利用不可な外部サービスがあるケース
論点3. テストデータを作る3つのバリエーションとそのメリット・デメリット
私は元 Haskeller です。関数型言語出身です。
今から8年ほど前、私が PHP を書き始めたときの印象は「型の表現力が乏しい」というものでした。時は流れ PHP7 そして PHP8 にかけて、PHP は以前からは想像もできないほど豊かな型の表現力を獲得しました。
一方で PHPStan で実装済みのジェネリクスが PHP コアには未実装だったりと、PHP の型表現はまだまだ伸びしろ十分です。
PHP8 や PHPStan で型表現はどこまでカチカチになれるのか、翻って、PHP らしい型付けってどのようなものだろうかと思いを馳せてみます。
プログラミングを始めた人が必ず一度は作る物といえば、そう、「独自のプログラミング言語」ですよね?
独自プログラミング言語を実装する最初の一歩は、ソースコードを構文解析して抽象構文木(AST)を得るところから始まります。今回はこの構文解析に着目して、PHP でパーサ(構文解析器)を書いてみました。
文字列処理と聞くとすぐに正規表現を書きたくなる方も多いと思いますが。正規表現とは一味違ったパーサの世界もちょっと覗いてみませんか?