【パーフェクトRails】バリデーションをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて 「バリデーションをクラスに分離する」について、知らないことがいくつかあったのでまとめます。 パーフェクト Ruby on Rails作者: すがわらまさ…

【パーフェクトRails】コールバックをクラスに分離する

目的 パーフェクトRuby on Railsの9章の9−2「複雑なバリデーションとコールバックを整理する」を読んでいて コールバックをクラスに分離する場面ややり方がよくわからなかったのでまとめる。 パーフェクト Ruby on Rails作者: すがわらまさのり,前島真一,…

【Ruby】【キャッシュ】dalli(memcachedのクライアントgem)を使ってみました

目的 memcachedとrubyのmemcachedクライアントであるgemのdalliを使ってみたのでまとめ memcached.org github.com 少し前に、キャッシュについていろいろやらないといけない機会があったのですが キャッシュを実現するミドルウェアを触ったことがなかったた…

【DB設計】T字型ER入門

目的 T字型ER手法を勉強することになったので、概略とまとめ データベース設計論 T字形ER―関係モデルとオジブェクト指向の統合をめざして作者: 佐藤正美出版社/メーカー: ソフトリサーチセンター発売日: 2005/09メディア: 単行本購入: 3人 クリック: 42回こ…

なぜ実践DDDが理解できないのか

目的 実践ドメイン駆動設計を読んでいたが、思うように理解が進まないので、なんでなのかを分析する。 実践ドメイン駆動設計作者: ヴァーン・ヴァーノン出版社/メーカー: 翔泳社発売日: 2015/03/19メディア: Kindle版この商品を含むブログ (2件) を見る 最近…

【DB設計】「楽々erdレッスン」のまとめ

目的 「楽々ERDレッスン」を読んだので、そのまとめ 楽々ERDレッスン (CodeZine BOOKS)作者: (株)スターロジック羽生章洋出版社/メーカー: 翔泳社発売日: 2006/04/18メディア: 単行本(ソフトカバー)購入: 72人 クリック: 940回この商品を含むブログ (120件…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、後半)

目的 soft skilsに載っている独学の方法をまとめる。(後半) 前回の記事は以下 waterlow2013.hatenablog.com soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者…

【読書ノート】SOFT SKILLS ソフトウェア開発者の人生マニュアル(学び方を学ぼう、前半)

目的 soft skilsに載っている独学の方法をまとめる。(前半) soft skilsという本がちょっと前に話題になっていたのですが、その中に「学び方を学ぼう」という章があります。 SOFT SKILLS ソフトウェア開発者の人生マニュアル作者: ジョン・ソンメズ出版社/…

【備忘録】Atomの今後使っていきたいキーバインディング

目的 勉強の復習と自分用チートシート目的。 最近Atom実践入門という本を読んで、まだまだAtomには知らない機能がたくさんあることを改めて感じました。 Atom実践入門──進化し続けるハッカブルなエディタ (WEB+DB PRESS plus)作者: 大竹智也出版社/メーカー:…

【Rails】DatabaseCleaner導入でテストが遅くなった話

現在仕事のrailsプロジェクトで、feature specの導入のところでdatabase_cleanerの設定でいろいろ時間を費やしたため、時間を費やした箇所についてまとめておこうと思います。 その時のRailsバージョン/Rubyバージョン:3.2.11/1.9.3。古い! DatabaseCleane…

【Ruby】配列の&と|の機能について

特殊なルールで配列を並び直す。たとえば ['いち', 'に', '', 'よん', 'なな', 'ご'] から ['に', 'よん','いち', 'ご', 'なな'] を作りたい(奇数が優先、2で割る等の数値演算はできない)ときはどうするか。 ①まず以下のようにやることを思いついた。 ['い…

【ActiveRecord】exists?の引数にwhereクエリの内容を書いてみたらうまくいかない。

Person.exists?(1) # => true # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 1 LIMIT 1 Person.exists?('id = 1') #=> false # SELECT 1 AS one FROM `job_offers` WHERE `job_offers`.`id` = 0 LIMIT 1 なぜか? exists?にArrayもしくはH…

railsエンジニアの勉強法(読む本とか)まとめ

初心者レベルを脱却するための記事とか読む本とか、いろいろと溜まってきたのでまとめておこうと思います。 勉強するのは常に一人なので、歩みは非常に鈍いのですが…Rails で "とりあえず動くコード" を書けるようになった人が次に遭遇する問題とそれを解決…

【ruby】モジュールをextendした時の動き

タイトルそのまんまです。 疑問だったのでいろいろ調べてみたのですが、メタプログラミングRubyの特異クラスのところを読んでいたらわかりました。 オブジェクトからモジュールをextendすると、そのメソッドはオブジェクトのクラスではなく特異クラスに入る…

【Google Analytics】簡単!メルマガの開封数を取得する方法

お仕事で使ったTipsです。 メールマガジン(以下メルマガ)がどのくらいの人に開封されているかを探る方法のメモです。 ※以下の方法はHTMLメールの開封数しか取れません。簡単に言うとimgタグを使ってサーバにリクエストを送るものです。 前提として日本語の…

【ruby】【備忘録】ユーザをいくつかのグループに分ける・カウントする

備忘録 記事のタイトルと冒頭文のテストをする。 そのために、オブジェクト(ユーザ)を4つのグループに分けたい。 分け方に対する議論は一旦置いておいて、ひとまずidで順番にグループ分けをしてみる。 User = Struct.new(:id, :email, :test_pattern) user…

【ruby】破壊的操作がなければdupは使って良さそう

最近rubyでdupというメソッドを使いました。dupと言うのはオブジェクトの”コピー”を作るのですが、一般的には以下の様な懸念点が有ります。 Marshalで配列やハッシュをディープコピーする 簡単に言うと a = ["foo", "bar", "baz"] b = a.dup a[0].upcase! p …

たのしいRubyもらった

今日から頑張ります!!!!!

Effective Rubyを読んで気になったこと(reduce・each_with_object・inject)

途中までですが、Effective Rubyを読んでみました。Effective Ruby作者: Peter J. Jones,arton,長尾高弘出版社/メーカー: 翔泳社発売日: 2015/01/09メディア: 大型本この商品を含むブログ (8件) を見る「項目19 reduceを使ってコレクションを畳み込む方法を…

【番外編】ニッポンのジレンマ

技術関係なしです。ニッポンのジレンマという番組のスペシャルが年始1/1にやっていたので見ました。 どんな番組かというと、1970年生まれ以降の人が集まってあるテーマに沿って議論するというもの。真剣10代しゃべり場(死語?)のターゲット変えた版のよう…

Railsのソースレビューで印象に残ったこと

・ link_to、image_tagを使おう。 erbやhamlでは(slimも?)link_toを使わずとも以下のようにコードを埋め込めます。 <a href="<%= url>">"><%= text %></a> %a{ href: url}= text しかしながらモデルのインスタンスを渡すだけでパスを作ってくれたり、config/routesのasの指定を取…

私のよちよち.rb活用法

この記事はよちよち.rb Advent Calendar 2014 - Adventar11日目の記事です。 10日目はbonbon_0605さんによるSeleniumで明示的に要素検索の待ち時間を設定するでした。 Seleniumに対しては前々から使ってみたい気持ちと、怠け癖が均衡していたのですが、bonbo…

【Ruby】【RSpec】The RSpec BookをRspec3系とTurnipで読み替え

yosemiteにアップグレードしたせいなのかわかりませんが、Ruby1.9.2以前のRubyがインストールできなくなってしまいました。RSpec Bookは1.9.2か1.8.7ベースで書かれているのですが、Rubyは2.1.3、RSpecは3.1.7、またCucumberではなくTurnipを用いてこの本を…

【CoffeeScript】書き方いろいろメモ

最近はRubyよりもCoffeeScript使う時間のほうが長いwaterlowです。 触りつついろんなソースを読みつつしてるうちに書き方がなんとなくわかってきたので書き留めておきます。 極力かっこは省略したい! 理由:インデントで文が解析されるのをフル活用したい。…

【haml】【sublime】【はまってる】build systemをautomaticにするとビルドされない

sublime textでhamlの勉強をしようと思った矢先にはまりました。 下記の記事を参考にsublimeで保存時に自動的にhtmlに変換してくれるような環境を作ろうとしてました。 Hamlで開発効率アップ|Sublime text 2でビルドしてみました。 | Developers.IO Haml …

【haml】【Ruby】ちょっとした処理をrubyで書く

htmlからhamlを作ってくれる便利なサイト HTML2Haml | Convert HTML Snippets to Haml htmlでデザインが上がっているときはこれでhamlを作って、あとrailsなのでaタグやinputタグをlink_toやform_forなどに書き換えているわけですが、いくつか難点が。1.→%…

【JS】【Coffee】CoffeeScriptはじめました

最近RubyよりJavaScriptのほうがなんかいいです。 viewをしっかり作るなら避けては通れないJSの話です。 そして最近は書くのはCoffeeScriptのみとなってしまいました…。自分で書けるように少しづつ勉強してきます。環境は以下のどちらかを使う。http://coffe…

【偉大なプログラマに学ぶ】アジャイルソフトウェア開発宣言の17人(2)

アジャイルソフトウェア開発宣言 プロセスやツールよりも個人と対話を 包括的なドキュメントよりも動くソフトウェアを 契約交渉よりも顧客との協調を 計画に従うことよりも変化への対応を 間が開いてしまいましたが第二弾です!! 最近新しいコミュニティに…

【Rails】modelでroutes.rbが作ったpathを使うとき

先週から詰まっていた所がやっと解決した。 Railsのmodel内のクラスからuser_うんたら_かんたら_pathを一生懸命呼ぼうとしてた。 でも未定義と言われる…。 でもあてはただのstringだしどうしたもんかと…。正解としては、まずmodelからは基本は上のようなpath…

【Rails】なんたらかんたら_pathって実際はなにしてるんだっけ?的な話

RubyとRailsの環境 $ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] $rails -v Rails 4.1.5ここで土台作りする。 $rails new study_path $cd study_path $rails g scaffold book isbn:string title:string price:integer publish:s…