タグ

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

  • 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
  • 「独立したコアレイヤパターンの適用 - fortee 編 -」を発表しました - Shin x Blog

    2019/11/30 に東京で行われた 大改修!PHPレガシーコードビフォーアフター にて、「独立したコアレイヤパターンの適用 - fortee 編 -」を発表してきました。 発表資料 サンプルコード: https://github.com/shin1x1/independent-core-layer-pattern-fortee-demo Togetter: https://togetter.com/li/1438084 オーガナイザの @tomzoh さんが開発、運用されている fortee.jp というカンファレンス運用サービスのソースコードに独立したコアレイヤパターンを適用するという内容です。 最初にコアレイヤパターンについて解説をした後、ライブコーディングで実際のコードに対してパターンを適用するデモを行いました。 100 人でやるモブプロ コードの解説をしながら、ライブコーディン

    「独立したコアレイヤパターンの適用 - fortee 編 -」を発表しました - Shin x Blog
  • Laravel におけるリポジトリ実装のポイント - Shin x Blog

    Laravel を使った開発でも、ドメインロジックと RDBMS などの永続化層へのアクセスを分離するためにリポジトリパターンを採用するケースが増えてきました。 ただ、Laravel には Eloquent という Active Record タイプの ORM があるので、これとリポジトリをどのように組み合わせるかで悩んでいる人が多いようで、これまで開発現場や勉強会などで質問を受けることがありました。 エントリでは、リポジトリを実装してきた経験を元に、私が考える実装のポイントをご紹介します。 1. ドメインデータの入出力にリポジトリパターンを使う 2. メソッドの型宣言にドメインデータを指定する 3. 機械的に CRUD メソッドを実装しない 4. Eloquent を利用したリポジトリクラスの実装 5. 複数テーブルを扱うリポジトリ 6. Paginator との連携 さいごに 1.

    Laravel におけるリポジトリ実装のポイント - Shin x Blog
  • 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 アプリケーション」を発表しました / PHP カンファレンス 2017 - Shin x Blog

    PHP カンファレンス 2017 にて「型を意識した PHP アプリケーション」を発表してきました。 発表 github.com 型宣言が付いていないコードに、スカラー型の型宣言、ドメインに特化した型の型宣言と型(クラス)の実装を行うライブコーディングをメインにしました。 ライブコーディングの部分は動画を見た方が分かりやすいです。下記の 13:00 頃からコーディングがはじめるので、こちらも合わせてどうぞ。 きっちりまとめられた資料をベースに発表するのも良いのですが、実際にコードを書いていくのを見た方がイメージも伝わりやすいですし、私自身も人がコードを書く様を見るのが好きなので、この構成にしました。 また、質疑応答の時間を長めに取りたかったので、編は少し短めにして時間が余るように調整しました。当初の内容からどんどん引き算していって、内容をシンプルにしたので、結果的には進めやすかったですし

    「型を意識した PHP アプリケーション」を発表しました / PHP カンファレンス 2017 - Shin x Blog
  • PHP カンファレンス関西 2017 にて基調講演をしました - Shin x Blog

    PHP カンファレンス関西 2017 の基調講演にてお話してきました。 発表資料 今回は、開発現場から見た PHP の特徴をあらためて見直すということで、私が日頃感じている特徴をお話しました。最後には現場で奮闘している PHP エンジニアへのメッセージを入れました。 朝一番のセッションにも関わらず、立ち見が出るほど多くの方に参加頂き、嬉しい限りでした。参加頂いたみなさん、ありがとうございました。 資料だけでは伝わらない部分もありますが、資料を上げておきます。 終わり際にある「繋ぐ言語」というのは、2014 年基調講演された郡山さんの「全てを結ぶ力」へのオマージュだったりします。発表後に会場でご人に伝えるとがっちり握手して頂けました :) 基調講演 これまで、招待講演も基調講演を招く側も経験していたのですが、基調講演で話すというのは初めての経験でした。 はじめは、いつもの発表のノリで軽く受

    PHP カンファレンス関西 2017 にて基調講演をしました - Shin x Blog
  • DI(Dependency Injection)に関するメモ - Shin x Blog

    PHPの現場 にて、DI 談義を行うので、頭を整理しておくためのメモです。 DI についてきちんと知りたいのであれば、参照に挙げたリンク先に有用な記事があるので、そちらを参考にして下さい。 PHP を念頭に置いてますが、Java など他言語でも大枠は同じだと思います。この内容は、いずれ整理するかもしれませんし、そのままかもしれません。 DI という言葉 「DI」が差す意味合いが、依存オブジェクトの注入だけなのか、DI コンテナによる注入を含んでいるのか、DIP まで意識しているのかが、人やコンテキストによって違っていそうで、そこを揃えてから議論しないと。— Masashi Shinbara (@shin1x1) May 19, 2017 DI について話す時に、何を差すのかが異なると話が噛み合わない。そこで、それぞれに名前を付ける。 DI パターン = 依存オブジェクトを注入することを差す

    DI(Dependency Injection)に関するメモ - Shin x Blog
  • WordPress Way を知る本 「エンジニアのための WordPress 開発入門」 - Shin x Blog

    著者の杉田さんに献して頂いたので拝読しました。 PHP エンジニアのための WordPress タイトルにあるとおり、普段フレームワークなどを使って Web システムを開発している PHP エンジニアのための WordPress です。 ユーザとして WordPress を利用するのではなく、PHP エンジニアとしてどのように扱うのか、どのように付き合うのか視点で書かれているので、興味深く読むことができました。 序盤で、おおっと思ったのが、第 2 章です。WordPress のインストールにの次に紹介されているのが、いきなり、WP_DEBUG をはじめとしたデバッグモードに関する定数、Debug Bar プラグイン、コマンドラインツールの WP-CLI、そして開発用仮想環境を構築する VCCW という流れになっています。 PHP エンジニアが、WordPress を触るための環境構

    WordPress Way を知る本 「エンジニアのための WordPress 開発入門」 - 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
  • 「DDD パターンを活用した Laravel アプリケーション開発」を Laravel Osaka 2016 で発表しました。 - Shin x Blog

    2016/10/19 に大阪で開催された Laravel Osaka 2016 にて、「DDD パターンを活用した Laravel アプリケーション開発」を発表しました。 会場の MOTEX さん。巨大スクリーンが 2 面あり、話しやすい環境でした。 発表資料 Laravel の具体的なテクニックに比べると抽象的な内容なので、どれだけ伝えられるか思案したのですが、聞いて頂いた方からのフィードバックや参加者アンケートでも概ね良い評価を頂けたので安心しました。 ValueObject については、さらに掘り下げて話せるテーマなので、これ単体でもまた話してみたいです。 Value Object は基ですね | DDDパターンを活用した Laravelアプリケーション開発/ddd-with-laravel https://t.co/ZzRTnt0tY6— 増田 亨. (@masuda220) O

    「DDD パターンを活用した Laravel アプリケーション開発」を Laravel Osaka 2016 で発表しました。 - Shin x Blog
  • パフォーマンスを意識して正規表現を書く - Shin x Blog

    正規表現を書く際、どのようなパターンにマッチさせるか、どこをキャプチャするかという視点で記述することはあっても、パフォーマンスを考えて記述するというのはある程度知っている人でなければ忘れがちな視点です。 このエントリでは、バックトラックをメインに正規表現がパフォーマンスに及ぼす挙動について見ていきます。 対象の正規表現エンジン ここでは、従来型 NFA を対象としています。具体的には、PHP の preg_ 関数で利用している PCRE や mb_ereg 関数が利用している鬼車です。PerlRubyPythonJava、.NET でも従来型 NFA を採用しているので、似た挙動となるでしょう。 「従来型 NFA」や「バックトラック」などの用語については、「詳説 正規表現 第3版」のものを用いています。 バックトラックによるマッチ探査 正規表現エンジンでは、指定された文字列が、パ

    パフォーマンスを意識して正規表現を書く - Shin x Blog
  • 2015年の技術本執筆環境 - Shin x Blog

    2015年は「Laravelエンジニア養成読」「Laravelリファレンス」、そしてまだ未発表ですが、もう一冊の技術の執筆に参加しました。 時代によって技術の執筆環境も変化してきています。今年、技術の執筆に利用したツール、サービスを紹介します。 過去の技術執筆環境は、以下のエントリにあります。 いまどきの技術執筆環境 – 「CakePHP2実践入門」 このエントリは、Laravelリファレンス Advent Calendar 2015 の21日目です。 ツール、サービス 執筆に利用したツール、サービスは以下です。下記では、今年導入したツールについて書いてみます。 執筆: Vim + PhpStorm / Marked 2 原稿管理: GitHub(private repository) 連絡: GitHub Issue / ChatWork CI: レビューファイル自動生成 校

    2015年の技術本執筆環境 - Shin x Blog
  • OSX の開発環境を Ansible で自動構築する(El Capitan / Yosemite) - Shin x Blog

    13inch MacBook Pro を購入したので、開発環境の構築を行いました。 以前は、brew bundleで自動構築していたのですが、今回は Ansible を使って構築を行いました。このエントリは、Ansible Advent Calendar 2015 の 9 日目です。 今回の構築にあたっては下記のエントリを参考にしました。ありがたや。 HomebrewとAnsibleでMacの開発環境構築を自動化する | mawatari.jp Mac の開発環境構築を自動化する (2015 年初旬編) - t-wadaのブログ Xcode / Homebrew のインストール Xcode と Homebrew をインストールします。 $ sudo xcodebuild -license $ ruby -e "$(curl -fsSL https://raw.githubuserconte

    OSX の開発環境を Ansible で自動構築する(El Capitan / Yosemite) - Shin x Blog
  • 1