タグ

2014年2月13日のブックマーク (5件)

  • Rails4と3で論理削除を行うためのGem Kakurenbo の紹介と今更論理削除Gemを実装した理由。 - 波打際のブログさん

    様々なわけがあってkakurenboは非推奨です。新規のプロジェクトではkakurenbo-putiの使用をおすすめします。 Kakurenboとは Rails4及びRails3で論理削除を行うためのGemです。paranoia及びacts_as_paranoidと互換性があるので、gemを置き換えるだけでそのまま動きます。(動かなかったらissue投げてくだしあ><) なんで今更論理削除のGemを実装したのか 今更開発しなくても論理削除のGemは山ほど出てきますが、なぜ開発しなくてはならなくなってしまったのか経緯に触れておきます。 acts_as_paranoid 論理削除の家と言ってもいいレベルの知名度です、だがしかしいつまで立ってもRails4に対応しない。 rails4_acts_as_paranoid 既存のバグほったらかしで使えない。(メモリ関連のバグがありSQLクエリが永遠

    Rails4と3で論理削除を行うためのGem Kakurenbo の紹介と今更論理削除Gemを実装した理由。 - 波打際のブログさん
  • 要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    友人から「しんぺいさん DI について書いてほしい」みたいな話をだいぶ前からされてたんだけど書く気力ずっとなかった。でも仕事の気分転換にちょっとずつ書いたやつがいい量まとまったので公開するです。たいしたことは書いてないっていうか知ってるひとにはあたりまえのことしか書いてない。サンプルコードはわたしの趣味Scala で書いてあるが、Java が読めればなんとなく読めると思います。 DI ってなに Dependency Injection、日語で言えば依存性の注入です。おしまい。 で記事を終えてもいいんだけど、そもそも依存性とはなんなのか、それを注入するとはどういうことなのか、なぜ DI が必要となるのかみたいな話をこれからします。 そもそも依存性ってなあに 例を出します。入力された文字列をもとにおみくじをひいて、その結果を twitter に投稿するプログラムにしましょう。 まずは普通

    要するに DI って何なのという話 - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
    takaesu
    takaesu 2014/02/13
    {modeling][DI][oop][オブジェクト指向]
  • Rails 3&4: Arel::Tableを使ってなるべく生のSQLを書かずに済ます方法|TechRacho by BPS株式会社

    Railsでプログラムを書いるとSQLを直接記述する機会が意外と多いので、 なるべくRubyらしく書く方法がないか調べてみました。 ORなどかなり基的な構文でもarel_tableを使う必要があるのですね。 というわけで、Arel::Table を使ってみました。 動作確認環境は以下の通りです。 ruby: 1.9.3-p392 Rails: 3.2.13 arel: 3.0.2 MySQL: 5.1.65 検索条件をORで繋げたい 基的な構文ですがSQLを直接記述する場合が多いのではないでしょうか? User.where("name = ? OR name = ?", "太郎", "花子").to_sql #=> "SELECT `users`.* FROM `users` WHERE (name = '太郎' OR name = '花子')" なるべくRubyで書こうとするとこうな

    Rails 3&4: Arel::Tableを使ってなるべく生のSQLを書かずに済ます方法|TechRacho by BPS株式会社
  • Arel scope の OR

    http://dodemoyoiblog.blogspot.jp/2012/09/scope.html 上の記事でも書いたが、Arel の scope は便利だ。これは何度言っても言い足りない。 細かいことは元記事を読んでもらうとして、 scope にビジネスロジック上の重要概念を表現しておいて、クエリでは scope の組み合わせを用いることで、複雑なクエリでも極めて簡潔に表現することができる。 scope にビジネスロジックの概念を表現させて組み合わせることによって得られるメリットは、(1)個々の概念に明確に名前が付けられるため開発者間でのコミュニケーションがスムーズになる。DDD のユニバーサルランゲージと役割が近い。(2)ビジネスロジックという比較的変化しにくくアプリ全体で利用されるものをパックしているので再利用性が高い。(3)クエリ側の修正も scope 単位での追加削除によって

  • Decorator/Presenter

    記念すべき「Rails Tips」第1回は、Decorator と Presenter について書きます。 Rails で Decorator/Presenter というと draper や active_decorator などの実績のある有名な gem パッケージが存在していて、それらを導入すれば話は簡単なのですが、稿ではあえて Rails 標準の機能を用いて Decorator/Presenter を実現する方法を説明します。「車輪の再発明!」と言わないでください。自分で作ってみることによって RubyRails の知識が深まり、様々な応用が利くようになります。実際のところ、そんなに複雑なものではありません。 Decorator とは 「Decorator」はソフトウェアデザインパターンの1つで、継承(inheritance)に代わるクラスの拡張手段です。 具体例で説明しまし