タグ

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

  • Yii2のPjaxとフラグメントキャッシュでページを爆速にする - Qiita

    Web サイトを作っていると、アクセスの大半を占める一覧表示ページなのに、そこが一番重い、というのはよくありますよね。ブログは個別の記事よりブックマークされているトップページが一番重い系のアレです。しかもページネーションとかカテゴリ別一覧とかもう... もし Yii2 を使っているなら、そんなページは Pjax とフラグメントキャッシュで爆速にしてやりましょう。 Yii 1.1 の CGridView/CListView はデフォルトで Ajax を使って DOM の内容を更新するウィジェットでした。ページングのとき余計なリロードがなくなって高速なのはいいのですが、初心者はその特殊な挙動に戸惑うこともありました。 Yii 2 の GridView/ListView のナビゲーションは通常のハイパーリンクを出力するようになりました。特別扱いのウィジェットではなく、普通のHTMLを出力するもの

    Yii2のPjaxとフラグメントキャッシュでページを爆速にする - Qiita
    kasumani
    kasumani 2014/12/26
    Yii2のPjaxとフラグメントキャッシュでページを爆速にする Web サイトを作っていると、アクセスの大半を占める一覧表示ページなのに、そこが一番重い、というのはよくありますよね。ブログは個別の記事よりブックマーク
  • Fakerで自動テスト用のダミーデータ作成を自動化する - Qiita

    データベースを含んだ自動テストは面倒ですね。なにが面倒って、テスト用のデータ、いわゆるフィクスチャを準備するのがもう。 Yii はデータベースの結果をモックする純粋なロジックテストではなく、ファンクショナルテストやデータベース込みのテストを指向しています。2.0 になって、BDDふうのテスティングフレームワーク Codeception のテストプロジェクトが一式ついてくるようになりました。BDD ふうにページをテストするにはホンモノが動くことが前提、つまりデータベースも当然要るわけです。 フィクスチャはすべて手書きしてもいいのですが、たとえば 21 件以上でページネーションすることを試そうと思ったら... というわけで Faker を活用しましょう。 Yii のプロジェクトテンプレートの tests フォルダ以下には、テスト環境専用の codeception\bin\yii コマンドが置い

    Fakerで自動テスト用のダミーデータ作成を自動化する - Qiita
    kasumani
    kasumani 2014/12/24
    Fakerで自動テスト用のダミーデータ作成を自動化する データベースを含んだ自動テストは面倒ですね。なにが面倒って、テスト用のデータ、いわゆるフィクスチャを準備するのがもう。 Tags: feedly, ifttt, recently read, saved for late
  • Yii2でわかるユニットテストはログ出力を切ったほうがいい理由 - Qiita

    タイトルのまんまですが、Yii2 にかぎらず、自動テストを一括実行したさい大量にアプリケーションログが出るのは無駄だしいろいろヤバいので、ログを出力しないようにしましょう、という話です。 ログを出力するべきとき Yii2 だとデバッガで見るとわかりますが、高度な Web アプリケーションフレームワークは、ひとつのリクエストが非常に多くのログを出力します。多くは単なるトレースログですが、きちんと完成している場合でも、警告やエラーは含まれます。 というのも、通常のナビゲーションでは起こらないような不正アクセスが起きた場合や、UIで想定していないようなクエリパラメータの間違いがあった場合は、それらをログに残すべきでだからです。 たとえば、ユーザーのログイン失敗が連続して起こっているとき、それは以下のようなコードでログを出力して検知できます。 class LoginForm extends Mod

    Yii2でわかるユニットテストはログ出力を切ったほうがいい理由 - Qiita
    kasumani
    kasumani 2014/12/21
    Yii2でわかるユニットテストはログ出力を切ったほうがいい理由 タイトルのまんまですが、Yii2 にかぎらず、自動テストを一括実行したさい大量にアプリケーションログが出るのは無駄だしいろいろヤバいので、ログを出力
  • Yii2 でわかるインターネットアプリケーションの日時ベストプラクティス - Qiita

    海の向こうのサーバーで日時の扱いをどうするのかは、いつも悩ましいところです。自分なりの答えを先に言うと、論理値以外のリアルな日時は UTC ベースの Unix タイムスタンプで正規化して扱い、画面表示するまでに別の形式に変換するのは禁止です。 以上。 というのは乱暴なので、Yii2 で日時がどう扱われるかを見ながら、その根拠を考えてみたいと思います。 Yii2 における日時 Yii2 のアプリケーションテンプレートでは、タイムスタンプの日時をデータベースに保存するさい、整数型で Unix タイムスタンプの整数値を保存するようになっています。 [ // ... 'created_at' => Schema::TYPE_INTEGER . ' NOT NULL', 'updated_at' => Schema::TYPE_INTEGER . ' NOT NULL', ] これはなぜでしょう?

    Yii2 でわかるインターネットアプリケーションの日時ベストプラクティス - Qiita
    kasumani
    kasumani 2014/12/17
    Yii2 でわかるインターネットアプリケーションの日時ベストプラクティス 海の向こうのサーバーで日時の扱いをどうするのかは、いつも悩ましいところです。自分なりの答えを先に言うと、論理値以外のリアルな日時は UTC
  • ActiveRecordのJOINにテーブルエイリアスを使う - Qiita

    Yii2アドベントカレンダー6日目の記事です。今日から4連発の予定なのにいきなり飛ばします。どうなるかな。 この記事は、とにかく主テーブルのエイリアス指定は ->from(['alias' => 'table_name']) だというのを憶えれば80%言いたいことは伝わっています。と前置きをしておいて、と。 単一テーブルの場合 Yii2 の目玉はなんといってもデータベースの操作が洗練されたことでしょう。たとえば、SourceCode クラスで表される「ソースコード」テーブルのすべてを順に得たい場合はこうで、作られる SQL はこうです。 (以降も、PHP のコードに続けて SQL を書くというパターンで書きます) Yii1 と違い、2 では暗黙のテーブルエイリアスが付かない、素朴なクエリを出力するようになりました。エイリアスがどうしても必要になる問題が起こる率は、そうでない率と比べてかなり

    ActiveRecordのJOINにテーブルエイリアスを使う - Qiita
    kasumani
    kasumani 2014/12/06
    ActiveRecordのJOINにテーブルエイリアスを使う Yii2アドベントカレンダー6日目の記事です。今日から4連発の予定なのにいきなり飛ばします。どうなるかな。 Tags: feedly, ifttt, recently read, saved for later from Pocket December 06, 2014 at 06:27PM
  • Node.jsの人はちゃんとsleepしてください - Qiita

    binding = { sleep: function(s) { var e = new Date().getTime() + (s * 1000); while (new Date().getTime() <= e) { /* do nothing, but burn a lot of CPU while doing so */ /* jshint noempty: false */ } }, だめですね。これCPU使いまくり。 まあ、CPUがいくら発熱してもいいよって思っても、制御が別のタスクに行かないのはアウトです。たとえばこれがサーバのリクエストハンドラに使われてたら、みんな一定秒数遅れてページ表示される、んじゃなくて、 サーバーが一定秒数止まる ことになる。つまり、そのリクエストに3人来たら、3人目は1人目の3倍待たないといけない。 もしコールバック連鎖を使ってるバックグラウンド

    Node.jsの人はちゃんとsleepしてください - Qiita
    kasumani
    kasumani 2014/05/28
    Node.jsの人はちゃんとsleepしてください Node.jsでがんばりすぎると別のプロセスに迷惑だから長いことかかる処理は sleep() みたいなのを挟みながらやりたいなー。 Tags: ifttt, kasumaniのストックした投稿 - qiita from Pocket May 28, 2014 at
  • 1