タグ

ブックマーク / qiita.com/tanakahisateru (4)

  • マンガでわかるお邪魔妖怪アンチパターン - Qiita

    http://wiki.c2.com/?PolterGeists プログラムの文脈とは何の関係もないように見える、神出鬼没なオブジェクトが現れるパターンです。原文ではポルターガイストと言われています。 妖怪やポルターガイストは普通の人の目には見えないけれど、あるとき突然現れて、勝手に家具を動かすなどの悪さをしますね。プログラムコードの妖怪が厄介なのは、消してしまうと結果が変わることがある点です。 こういったオブジェクトはたいてい、プログラムのフローとは異なる空間 (グローバル変数や static フィールド、長寿命なコンテキストなど) での副作用を利用した制御をしています。この副作用に、いつも通るからと、当初意図されたもの以外の振る舞いが追加されている場合もあり、誰もその作用を把握できていない謎の処理になっていることもよくあります。 そうしたお祓いしにくい妖怪が最初から住み着かないように、

    マンガでわかるお邪魔妖怪アンチパターン - Qiita
  • WebStormで手軽にJSON/BSONの型ヒント - Qiita

    WebStorm(IntelliJ)のJavaScript静的解析はすごく便利ですね。サポートしているライブラリ/フレームワーク以外にも、TSDでTypeScriptのインターフェースを取り込めたり、自分で書いたコードを読んで推測してくれたり。自分のコードに JSdoc があるとそれがより高精度に。 ...でも、それだけではどうしても型ヒントが付かないオブジェクトがあります。外から来たJSONメッセージだったり、MongoDBから読み込んだBSONだったり。存在すると信用していいプロパティなのに、どこにも実装がないがために、ドットでアクセスしたら Unresolved Variable が出ることがあります。 このとき使えるのが JSDoc3 の @typedef です。 JSONが間違いなくこういう形をしていたとして、

    WebStormで手軽にJSON/BSONの型ヒント - Qiita
  • PhpStormのInspection警告を制御する - Qiita

    PhpStormのInspectionは、型がなかったりスクリプトだったりするPHPなのに、いろいろ厳しくバグの可能性を見てくれてありがたいのですが、ちょっと変わったトリックを使うとすぐに警告まみれになってしまいます。一気にチェックしたとき、いちいち警告の中を見て「これは大丈夫なコードだったはず」と除外してレポートを読むのが面倒です。 たとえば、クラスローダやビューなどで、include/require のパスに変数を使うなどすると、Inspection で Unresolved include が出てしまいます。これは include するファイルがないかもしれないという警告です。平易なPHPスクリプトを書いているときはありがたいのですが、フレームワークレベルの開発では邪魔になります。チェックしないようオフにしてしまうのはもったいないので、特定の箇所でだけ警告が出ないようにしたいです。

    PhpStormのInspection警告を制御する - Qiita
    iww
    iww 2015/08/10
    noinspection. 一時的に警告を出さないっこする
  • PhpStormでPHPクラスの完全修飾名を書く - Qiita

    最近のPHPでは、深い名前空間に入ったクラスの完全修飾名を 文字列として 指定する必要があることが多々あります。 return [ 'container' => [ 'module1' => [ 'class' => '\hoge\fuga\some\ModuleOne' ], 'module2' => [ 'class' => '\hoge\fuga\another\ModuleTwo' ], // ... more ] ] PHP5.5 以上なら Module::class でもいいし、Yii2 のコンポーネントなら Module::className() として、あとは PhpStorm の自動インポートで use を補ってもらうという手もあります。 use hoge\fuga\some\ModuleOne; use hoge\fuga\another\ModuleTwo; retu

    PhpStormでPHPクラスの完全修飾名を書く - Qiita
  • 1