タグ

kakuhen1rfeverheitenのブックマーク (1,181)

  • [2013年版] JQuery.Deferredでwait風メソッド - Qiita

    javascriptで実行待ちの場合、setTimeout使えばいいんですがいちいちコールバック関数として引き渡してやる必要があるのでたとえば2秒待った後に1秒待つ、といったように実装する際、コールバックがネストし、見ていてやるせないコードになります。 (そんな設計するのがそもそも悪いってのもあるかもしれませんが) 例えばこんな感じ。 setTimeout(function(){ // 2000ms 待った後に実行されるコールバック setTimeout(function(){ // 1000ms 待った後に実行されるコールバック // その何秒後かにまた実行するコードを書くとさらにネストが下がっていく... },1000); },2000); ネストが2個とかそこらならまだ許容範囲かもしれませんが、 どうせならJQuery.Deferredを使ってネストをあまり下げないように書いてしまい

    [2013年版] JQuery.Deferredでwait風メソッド - Qiita
  • トリガーの開発方法&デバッグ方法 - Qiita

    MySQLのトリガー便利です。PHPでトランザクションを張って同期…というのもありだけど、データベースのレイヤで関係が担保されているのは開発者にとっても安心です。 しかし、トリガーの開発方法についての情報は少ない感じがあります。手探りで自己流なところがあると思いますが、トリガーの開発方法を整理できるくらいに自分の中でルーティンが決まってきたので記事としてまとめておきます。 掲示板のデータベースを例に作ってみよう お題がないと説明しにくいので、掲示板アプリを例に話を進めます。YY-BBSのような単純な掲示板を思い浮かべてください。 2つのテーブルを用意します。 スレッドテーブル 投稿テーブル もう少しテーブルの関係がイメージしやすいようにもうちょい妄想しちゃいます。 スレッドテーブルと投稿テーブルは一対多の関係にあります。一つのスレッドに複数の投稿が記録できる仕様です。掲示板にはスレッド一覧

    トリガーの開発方法&デバッグ方法 - Qiita
    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2013/12/18
    ストアドプロシージャー trigger stored procedure
  • はてなブログ | 無料ブログを作成しよう

    超絶品!死ぬまでに一度はべてほしい煮込み10選 ああ。いかにもインターネット!みたいなタイトルをつけてしまった。 「超絶品!死ぬまでに一度はべてほしい煮込み10選」て。読んでほしすぎて大仰な形容詞をつけて数字を入れて読み手の注意を引くタイトル、もうネット記事まるだしである。 でも、わかってほしい。…

    はてなブログ | 無料ブログを作成しよう
  • Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)

    この記事はRuby on Rails Advent Calendar 2013の6日目の記事です。 前日は @tkawa さんの「Favoriteの設計実装はパターンとして使える」でした。 Railsで適切に責務を分割するということ RailsはいわゆるMVCと呼ばれるアーキテクチャパターンにのっとったフレームワークであり、プロジェクトを作成するとデフォルトでmodels/、views/、controllers/などのディレクトリが作成されます。 基的にロジックを記述する場所はモデルであり、ビューには表示処理だけを、コントローラにはアプリケーション上必要な手続きだけを記述するべきであると一般的には言われています。*1 ただ、それを忠実に実践していった結果、モデルが肥大化しメンテナンシビリティやテスタビリティが低下するという問題も多く指摘されています。 これについては4日目に @joker

    Railsでサービスとフォームを導入してみる話 - assertInstanceOf('Engineer', $a_suenami)
  • Ruby block/proc/lambdaの使いどころ - Qiita

    (2015/10/13追記) 今なら、他言語には無名関数やcallback関数というものがありますねとか、イベント駆動の世界を覗いてから戻ってくるとより腑に落ちるかもしれませんとか、もう少し全体観の中で説明する気がしますが、当時は記事の様な理解が役に立ったことは事実なので、引き続き公開を続けます。 (2013/11/29追記) block_given? について Twitter上で「Kernel.#block_given?についての解説があってもよさそう」と 指摘を頂きましたので、文下部に追記しました。 概要 Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる4 Railsを触る際知っていると便利なRubyの基礎 [ブロックとかシンボルとか] http://qiita.com/kidachi_/items/46a6e49b6306655ccd64 の続き。

    Ruby block/proc/lambdaの使いどころ - Qiita
    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2013/11/28
    block proc & アンパサンド
  • 肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)

    更新情報: 2013/11/19: 初版公開 2021/01/08: 訳文見直し、追記 こんにちは、hachi8833です。今回は、自分が知りたかった、Active Recordモデルのリファクタリングに関する記事を翻訳いたしました。1年前の記事なのでRails 3が前提ですが、Rails 4以降でも基的には変わらないと思います。リンクは可能なものについては日語のものに置き換えています。 なお、ここでご紹介したオブジェクトは、app以下にそれぞれ以下のようにフォルダを追加してそこに配置します。 注記: 以下は使われそうなフォルダを列挙しただけであり、実際にはこの一部しか使いません。 Value Object Service Object Form Object Query Object View Object Policy Object Decorator ⚓ 肥大化したActive

    肥大化したActiveRecordモデルをリファクタリングする7つの方法(翻訳)
    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2013/11/21
    リファクタリング
  • Web アプリの MVC 設計まとめ - もやし日記

    MVC 設計について考えていたときに、ちょうどその辺りの話をされている方々が居たので、今の考えをまとめてみました。 目次 前提 肥大化するコントローラを避ける ビジネスロジックをどこに書けば良いのか コントローラとモデルの間にもう一つの層があるとうまくいく? まとめ 前提対象は Web アプリケーションで、画面数(ビューの数)は数個〜100個程度の規模です。WordPressTwitter、37signals のサービスのようなものを作ろうとするとき、どういう MVC 設計をしていくかについて考えます。巨大なシステム、金融系システム、基幹系システムなどを作る場合とは異なる考え方もあると思います(そもそも MVC を使わない、など)。 肥大化するコントローラを避ける例えば、八百屋さんで「60円で仕入れたリンゴ1つを100円で売った」こと(Sales Transaction)を記録する場合を

  • えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ

    Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある RailsのえせMVC疑惑で盛り上がってますね。Railsが「えせMVCフレームワーク」ではないのは、みんな知っていると思うので、記事、コメントをみて勘違いしている人が多そうな部分に一言書いておきます。 まず、おかしいのはsatoshiさんのこの意見。 PhotoShareは主にRailsで作られているので、ModelはActiveRecordが担当しているわけだが、Modelのレイヤーが非常に薄いために(O/Rマッピングをしているだけ)、データベースの整合性の責任がController側にある。そのため、ちょっとした機能変更のたびにAPIレベルでのテストを大量に走らせなければならないし、それでもどうしてもミスが生じてし

    えせMVCについてそろそろ一言言っておくか - ひがやすを技術ブログ
  • JavaScript イディオム集

    JavaScriptでは、初見の人にはさっぱりわからないけれども、ある程度慣れた人は当たり前に使うイディオムが結構たくさんあります。知ってしまえば何てことはないので、私の知っている限りのイディオムとその意味を解説します。 (7/3追記: twitter等で教えていただいた内容を追加しました) +v (数値化) var v = "123"; console.log(+v + 100) // 223 console.log(v + 100) // 123100 vを数値化する方法では最もメジャーです。parseFloat(v) に比べて高速なのに加えて、parseFloatとは細かい挙動が異なります(例えば空文字列の場合、parseFloatならば NaN になりますが、 +v の場合はゼロになります)。必ず数値になることが保証されており、文字列などで数値化出来ない場合はNaNが返ります。 v

    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2013/10/25
    イディオム
  • CentOS6.4にサードパーティレポジトリを追加して、PHP5.4とかいれてた - otukutunの日記

    CentOS6.4にPHP5.4.17をいれました。これはMac上のVMwareで動いています。ちなみに64bitです。 CentOS6のyumのデフォルトのレポジトリを使って入れると、PHPが5.3.3が入ります。これはすこし古いので、せめて5.4系をいれることにしました。あと、tmuxなどはデフォルトのレポジトリではないので、サードパーティレポジトリを追加しないといれられません。(ソースコンパイルするなら、別ですが) ということで、サードパーティレポジトリを追加すると入れられるものもあるので、入れてみました。今回は、具体的には以下の様なことをやりました。 やったこと サードパーティ製のyumのレポジトリを追加し、設定 既存のPHPの情報を確認して、削除 新しいPHPをいれる 1.サードパーティ製のyumのレポジトリを追加し、設定 yumのサードパーティのレポジトリもいろいろあるようです

    CentOS6.4にサードパーティレポジトリを追加して、PHP5.4とかいれてた - otukutunの日記
  • 時刻合わせ - チーム等価

    $ /etc/rc.d/init.d/ntpd stop $ chkconfig ntpd off crontab -e */10 * * * * ntpdate ntp.nict.jp && /usr/sbin/hwclock --systohc > /dev/null

    時刻合わせ - チーム等価
  • Railsライブラリ紹介: N+1問題を検出する「bullet」 | TECHSCORE BLOG | TECHSCORE BLOG

    こんにちは、鈴木です。 Rails の便利なライブラリをシリーズでご紹介してみたいと思います。 今回は「N+1 問題」を検出してくれるライブラリ、bullet です。 bullet (http://github.com/flyerhzm/bullet) N+1 問題 N+1 問題とは、OR マッパーを使用しているときに発生しがちな問題です。 何かの一覧画面を作成しているときに、 一覧に表示するデータを取得するために SELECT を 1 回実行(N レコード返される) 各データの関連データを取得するために SELECT を N 回実行 データベースアクセス(SELECT)が合計 N+1 回も実行される(JOIN して 1 回の SQL で取得した方が効率的) というものです。 具体的なコードで考えてみましょう。 例として店舗の一覧画面を作成しているとします。 関係するモデルは以下の通りです

  • eky.hk

    This domain may be for sale!

  • yoshikawa_t

    html5 jquery mobile chrome jquery chrome apps devtools mobile chrome developer tools javascript techfeed performance beginner css3 typescript angular ionic cordova loopback node.js html email curation chrome devtools mobile app lovefield service worker offline web apps indexeddb development device api chrome web store chrome apps for mobile packaged apps tokushima chorme packaged apps browser begi

    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2012/12/25
    debug デバッグ チューニング
  • Detecting support for a given JavaScript event?

    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2012/12/17
    イベント サポート
  • Rails でマイグレーションが失敗する恐怖から解放される感動的なすごい方法 - こせきの技術日記

    開発中に rake db:migrate がエラーで中断しても、元に戻す方法がわからない。スキーマを書き換える SQL なんて覚えてない。失敗したのにスキーマのバージョンだけ上がったりする。 こういった問題を解決する、感動的なすごい方法があるのでは、と思って調べてたんだけど、見つけられなかった。 バックアップしてテスト環境で実行するのがよさそうです。普通です。 以下手順。環境は Rails 3 + MySQLmysqldump を使って development DB を test にコピーする。バックアップ用の DB も作ってコピー。 $ mysqldump -u root myapp_development | mysql -u root myapp_test $ mysqldump -u root myapp_development | mysql -u root myapp_ba

    Rails でマイグレーションが失敗する恐怖から解放される感動的なすごい方法 - こせきの技術日記
    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2012/11/27
    migration migrate
  • 第一回 プログラマ向けデザイン勉強会 #design4p で「ズルいデザインテクニック」発表させていただきました。 - 納豆には卵を入れる派です。

    どうも。 書くのが遅くなりすぎてもう半月ほども前のことになってすごく今更感があるのですが、書いておくべきことを書きそびれると、その後出てくる他の書きたい小ネタがどんどん書けなくなっていってドンづまるパターンになるので、やはり書いておきますね。。 先日、第一回 プログラマ向けデザイン勉強会というイベントで下記のスライド発表させていただきました。 少ない手間と知識でそれなりに見せる、ズルいデザインテクニック// Speaker Deck 反響の大きさに驚き!ありがとうございました。 実はあんまり発表自体は、盛り上がったという手応えがあまりなくて、一方で他の2人の発表が素晴らしすぎて、割としょんぼりしながら帰ってきたんですが、スライドをアップロードしたらあれよあれよという間に2000ブクマ超え…驚きました。読んで下さった皆様、ありがとうございました。何が原因だったのか考えてみたのですが、デザイン

    第一回 プログラマ向けデザイン勉強会 #design4p で「ズルいデザインテクニック」発表させていただきました。 - 納豆には卵を入れる派です。
  • PHP例外RuntimeException、LogicExceptionの使い分け : ソースコードと翻訳が大好き

    PHPには次の2種類の例外系が存在しますね。RuntimeExceptionLogicExceptionこれはどのように使い分けるべきなのかについて PHPのドキュメント(http://www.php.net/manual/)をベースに調べてみたので共有します。 まずは結論! RuntimeException系 : 運用で通常発生しうる例外。 発生してもバグとは限らない。通常の例外。 例) throw new RangeException("規定範囲外の値が入力されました");LogicException系 : バグ検出のために仕込む例外。 来、実運用時には発生しない。発生したらバグ。 例) throw new LogicException("引数で数値以外を渡さないでください!!"); java にも同名の例外がありますが、java の使い分け方とは全く異なるので java 使いには要

    PHP例外RuntimeException、LogicExceptionの使い分け : ソースコードと翻訳が大好き
  • javascriptにおけるスコープとクロージャについて - 今日もスミマセン。

    クロージャとかスコープの理解が自分の中であいまいなので整理しておく。 スコープについて javascriptにおけるスコープはfunction単位 ブロックレベルのスコープは無い 変数はそれが作成されたスコープのプロパティ webブラウザ内で実行される場合、グローバルスコープはwindowオブジェクト。なので、グローバル変数は実はwindowオブジェクトのプロパティになっている。 var hoge = 'hage'; // hoge == window.hoge functionスコープにおいて var 無しで 変数に代入を行った場合は、グローバルなスコープにプロパティが追加される。(webブラウザで実行されている状況ではwindowオブジェクトのプロパティになる) function test() { hoge = 'hage'; } // hoge == window.hoge クロージ

    javascriptにおけるスコープとクロージャについて - 今日もスミマセン。
  • iPhone/Android/PC 対応。jQuery で書くタッチイベント

    こんにちは!プロダクト企画担当の林です。 今回は、前回予告していた通り、タッチイベントについて書かせていただきます。 他所でもタッチイベントについて取り扱っていますが、当記事でのポイントは、 jQuery を使っている。(jQuery Mobile は不要です) iOS / Android で動作確認済み。 タッチできない PC の場合、マウスで動く。 この3点です。 こちらを実際に動作するコードにて解説します。 動作確認環境 タッチ環境 → iPhone / iPad / Android マウス環境 → Sleipnir / IE / Firefox / Google Chrome / Safari / Opera タッチイベントについて タッチイベントとは、スマートフォンなどで画面を直接指でタッチしたときに発生するイベントのことです。 イベントの種類 touchstart : タッチし

    iPhone/Android/PC 対応。jQuery で書くタッチイベント
    kakuhen1rfeverheiten
    kakuhen1rfeverheiten 2012/11/06
    touch スマート スマホ