タグ

ブックマーク / blog.shin1x1.com (8)

  • WebAPI の自動テスト戦略 - Shin x Blog

    テストコードを実装する際に単体テストで書くか、統合テストで書くか迷う場面はないでしょうか。エントリでは、私なりのテスト戦略についての考えをまとめました。 概要 対象アプリケーション エントリにおける単体テストと統合テスト 単体テスト(ユニットテスト) 統合テスト(結合テスト、API テスト、フィーチャテスト) 単体テストと統合テストの特徴 テスト方針 テスト戦略 単体テストのみ 統合テストのみ 単体テストと統合テストを組み合わせる コンポーネント別のテストガイドライン 統合テストによるテスト テストピラミッドとテストダイヤモンド 統合テストの懸念 統合テストが無い 共有データセットが辛い 実行時間が遅くなりそう まとめ 参照 概要 単体テストと統合テストの特徴 テスト戦略 統合テストの懸念への対応 NotebookLM による音声概要を作成しました。よくまとまっているのでこちらもどうぞ

    WebAPI の自動テスト戦略 - Shin x Blog
    auient
    auient 2025/05/08
    基本は統合テストで、バリデーションとモデルは単体でやるといいよという指針は参考になる
  • 「php-fpm がリクエスト処理する仕組みを追う」を PHPerKaigi 2025 で発表しました - Shin x Blog

    2025/03/21-23 に中野セントラルパークカンファレンスで開催された PHPerKaigi 2025 にて、「php-fpm がリクエスト処理する仕組みを追う」を発表してきました。 発表資料 AI ツールの活用 事前確認 登壇サポート さいごに 発表資料 php-fpm が FastCGI リクエストを処理する仕組みを gdb によるステップ実行デモを中心にお話ししました。 gdb を使ったデモは概ね好評だったようで、仕組みを知ることの楽しさが共有できて嬉しかったです。技術の楽しさを共有できるのはこうしたイベントの良さの一つですね。構想段階ではデモは一部のみにして、スライドによる解説をメインにしようと思っていたのですが、紆余曲折を経てデモをメインにすることにしました。デモは見る側としても面白いですし、やっていても楽しいです。その場の状況に応じて臨機応変に対応しやすいのも良いですね。

    「php-fpm がリクエスト処理する仕組みを追う」を PHPerKaigi 2025 で発表しました - Shin x Blog
    auient
    auient 2025/04/15
  • PHP アプリケーションのトレース計装ではじめる OpenTelemetry 入門 - Shin x Blog

    OpenTelemetry を利用して PHP アプリケーションのテレメトリデータを計装する方法をまとめました。 エントリのコードは下記で公開しています。 github.com OpenTelemetry とは 用語 PHP アプリケーションのマニュアル計装(手動計装) 構成 OTel Collector Jaeger 動作環境 必要なパッケージ PHP コード 設定 実行 PHP アプリケーションのゼロコード計装(自動計装) 必要な拡張とパッケージ 設定 PHP コード 実行 さいごに 参照 OpenTelemetry とは opentelemetry.io OpenTelemetry は、サービスやアプリケーションのテレメトリーデータ(トレース、メトリクス、ログなど)を計装、生成、収集、送信するためのオブザーバビリティフレームワークです。ベンダーニュートラルな OSS であり、CNC

    PHP アプリケーションのトレース計装ではじめる OpenTelemetry 入門 - Shin x Blog
  • OPcache オペコードキャッシュの仕組み - Shin x Blog

    エントリでは、PHP の内部実装(php-src)から OPcache のオペコードキャッシュの仕組みを見ていきます。 OPcache にはいくつかの機能がありますが、ここでは共有メモリへのオペコードキャッシュと preload が対象です。ファイルベースのキャッシュと JIT については触れません。 サマリ オペコードキャッシュ preload オペコードキャッシュと preload の比較 オペコードキャッシュ キャッシュデータレイアウト グローバル変数、マクロ キャッシュデータ構造体 オペコードキャッシュ: ZCSG(hash) キャッシュエントリ: zend_accel_hash_entry キャッシュデータ初期化 OPcache 処理の有効化 PHP ファイルコンパイル処理でのキャッシュ制御 persistent_compile_file() の主な処理 zend_accel_

    OPcache オペコードキャッシュの仕組み - Shin x Blog
  • 「ドメインをモデリングして PHP コードに落とし込む」を発表しました / PHP カンファレンス 2021 - Shin x Blog

    2021/10/02, 03 にオンラインで開催された PHP カンファレンス 2021 にて「ドメインをモデリングして PHP コードに落とし込む」を発表しました。 発表資料 Sample code: https://github.com/shin1x1/domain-modeling-with-php Togetter: https://togetter.com/li/1783062 joind.in: https://joind.in/talk/650b0 ドメインモデルという共通概念をモデリングし、それをコードに反映するという内容です。 去年は事前に録画して自分で再生した のですが、今年はライブでやりました。やっぱりライブは良いですね。話し出しはモニタに向かって話す違和感がありましたけど、途中から調子が掴めてきました。 Discord をチラ見していたのですが、リアルタイムでどんど

    「ドメインをモデリングして PHP コードに落とし込む」を発表しました / PHP カンファレンス 2021 - Shin x Blog
  • 独立したコアレイヤパターン - Shin x Blog

    モチベーション 全体 サンプルアプリケーション コアレイヤ サービスレイヤ 口座間送金ユースケース 処理の流れ コアレイヤ サービスレイヤ コアレイヤ対象範囲 DDD スタイル 手続き型スタイル 実装アイデア レイヤでパッケージを分ける コアレイヤの範囲 ポートの種類 DDD スタイルへの一歩目 さいごに 参考 独立したコアレイヤは、アプリケーション実装パターンである。以下のような特徴を持つ。 アプリケーションを、何を実現するのか(What)と、どのように実現するのか(How)に分ける。 What は、コアレイヤに実装する。ユースケースやドメインロジックを実装する。フレームワークやライブラリには依存しない。UI やデータベースからは独立している。 How は、サービスレイヤ(仮)に実装する。フレームワークやライブラリを活用して、ユースケースが要求する技術詳細を実装する。 コアレイヤが必要な

    独立したコアレイヤパターン - Shin x Blog
    auient
    auient 2019/07/05
    コマンドとクエリのinterfaceを分けて、同じクラスで両方を実装する
  • PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog

    PhpStorm から Docker for MacDocker コンテナ内で PhpUnit のテスト実行や Remote Debug を行うための設定です。 下記バージョンにて構築を行いました。 PhpStorm 2017.2.4 Docker for Mac 17.09.0-ce-mac35 PHP 7.1( php:7.1-apache ベース ) Xdebug 2.5 サンプルプロジェクトの取得 サンプルプロジェクトを用意したので、このプロジェクトをベースに設定を行います。このプロジェクトには、初期状態の Laravel アプリケーション(5.5)が含まれています。 github.com git で clone して、make を実行すると composer install と docker-compose up が実行されます。ブラウザで、 http://localhos

    PhpStorm + Docker for Mac(docker-compose)での PHPUnit と Remote Debug の設定 - Shin x Blog
  • 「PHPの現場」という Podcast をはじめます - Shin x Blog

    学生の頃からラジオを聞いて育ってきたので、技術系のPodcastが好きで色々と聞いています。 日語で PHP 界隈の話題について話すPodcastが無かったので、はじめてみることにしました。 「PHPの現場」というPodcastです。 PHP がメイントピックにはなりますが、PHP の開発現場で出てきそうな話題なら、それ以外の技術や話題についても扱っていくつもりです。 私がお話したいゲストの方をむかえて対談(雑談)形式でざっくばらんに話していきたいので、色々な方にお声がけしていこうと思います。その際は、よろしくお願いしますm(_ _)m Podcast配信環境 Podcastを配信する上で、どうしようかと迷ったのは配信環境です。 SoundCloud などのサービスを利用することも考えたのですが、どうせなら作ってしまおうと思い、自作しました。(実は、過去にPodcastの配信を行ったこと

    「PHPの現場」という Podcast をはじめます - Shin x Blog
    auient
    auient 2017/03/02
    id:kijtra 一旦再生して、再生位置を先頭まで戻したら始まりました(iPadで) ご参考まで
  • 1