タグ

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

  • 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
    astk_f
    astk_f 2017/05/22
  • アプリケーションから例外を投げる派、投げない派 - Shin x Blog

    例外をどのような状況に投げるかもしくは投げないか、というのはわりと意見が分かれるところです。もちろん、プログラミング言語によっても異なりますが、同じプログラミング言語ユーザ同士でも様々です。 基の考え方 ベースとしては、Effective Java の項目 39 にある下記の方針が参考になります。 例外的な状況の時にのみ例外を使う。 Effective Java 禅問答のような定義ですが、これには異論は無いでしょう。例外を正常フローで利用したり、制御構造に用いるべきではありません。 人によって異なるのは「例外的な状況」の解釈です。 例外的な状況 この「例外的な状況」の解釈は人によって異なるようで、これまでも議論になっていました。これまで聞いた解釈を乱暴に分けると以下の 2 パターンに分かれます。 1. アプリケーションから独自の例外を投げる派 ランタイムやミドルウェア連携などプラットフォ

    アプリケーションから例外を投げる派、投げない派 - 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
  • 「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog

    2016/11/03 に開催された PHP カンファレンス 2016 にて、「正規表現再入門」を発表してきました。 資料 speakerdeck.com togetter.com 内容は、正規表現のマッチングの動き、量指定子のマッチングパターン、バックトラックやパフォーマンスへの影響についてです。 下記のエントリを下地にして、マッチングの動きを分かりやすく伝えることを意識してお話しました。 blog.shin1x1.com 参加された方からは、「分かりやすかった」といった好意的なフィードバックを頂けたので、発表して良かったです。 これから正規表現を学ぶにしても、マッチングがどのように行われるかをざっくりと知っておけば、正規表現を書く際にも動きが想像できるので、この発表がお役に立てると嬉しいです。 偶然、同じ時間帯に発表があった徳丸さんのセッションでも正規表現に触れられていたようで、Twit

    「正規表現再入門」を PHP カンファレンス 2016 で発表してきました - Shin x Blog
  • パフォーマンスを意識して正規表現を書く - Shin x Blog

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

    パフォーマンスを意識して正規表現を書く - Shin x Blog
  • Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog

    Vagrant 1.8 で、ansible_local という新しいプロビジョナが追加されました。 これは、Ansible をゲスト(VM)側にインストールして、ローカルコネクションで VM 内で実行するものです。これは、まさに待ち望んでいた機能ので紹介します。 Vagrant + Ansible で気を付けること 以前から、Vagrant + Ansible の組み合わせでローカルの開発環境を作るなら、ホスト側に Ansible を入れるのではなく、ゲスト(VM)側に Ansible を入れる方が良いと考えていました。勉強会などでも良く話していたのでお聞きになった方もいるかと思います :) ホスト側に Ansible を入れない理由は、3 つあります。 まず、ホストに Ansible をインストールする手間が増える点です。Vagrant と Virtualbox のインストール(あとコー

    Vagrant + Ansible で開発環境を作るなら ansible_local プロビジョナがいい! - Shin x Blog
  • 1