メタプログラミングRubyを読んでいます。完全自分用のメモ記事です。 第2章で特に参考になった部分を中心に書いています。
メタプログラミングRubyを読んでいます。完全自分用のメモ記事です。 第2章で特に参考になった部分を中心に書いています。
よくRailsプロジェクトを作るので、Railsプロジェクトを作った後に最初にやっておきたい設定をまとめました。 主に、開発を効率化させるためにやることをまとめてますので、ざざっと眺めて取り入れそうな知識があったら開発効率を上げれるかもしれません。 また、nanapiさんの次の記事もとても参考になります。Rails Templateでプロジェクト作成を楽にしよう 動作確認 mac os X 10 rails 4.2.0 目次 1. Railsプロジェクトの作成 2. Gitにプロジェクトを登録 3. 開発を効率化させるGemをがっつり導入 3.1. gemのインストール 3.2. jquery-turbolinksの設定 3.3. 開発を効率化する関連gemの設定 3.4. 保守性を上げる 3.5. 表示整形関連(ログなど見やすくなる) 3.6. テスト関連 4. 言語設定 5. タイムゾ
RubyのProcの説明は巷に溢れているから今更感があるけどここ数回Procを使ったネタを書いていたらProcがかわいくなっちゃってもっとみんなにもProcのこと知ってもらいたいという欲求が生まれてきたからProcについての基本的なことを僕なりのやり方でここに書くよ。長いよ。 Rubyの関数(メソッド) Rubyにおいて関数(メソッド)はファーストクラス(オブジェクト)ではありません。つまり文字列や数字や配列などの他のオブジェクトとは異なって、Rubyではそれを直接変数に代入したり、他の関数に渡したりすることはできません。 def square(n) n * n end sq = square # squareメソッドを変数sqに代入してみる # ~> -:1:in `square': wrong number of arguments (0 for 1) (ArgumentError)
rubocop のしつけ方 TL;DR rubocop --auto-gen-config して Offense count の多い順に毎日数個ずつ設定を確認したら 僕の使っている .rubocop.yml ができました これが onkcop か…(ゴクリ / “僕の使っている .rubocop.yml” https://t.co/KVryle9SJq — そのっつ (SEO Naotoshi) (@sonots) October 26, 2015 rubocop とは コーディング規約に準拠しているかをチェックする gem です。 https://github.com/bbatsov/rubocop こんなコードに対してかけると def badName if something test end end 以下のような警告をしてくれます。 Offenses: test.rb:1:5: C:
タイトルは釣りです。Ruby に盲目的に惚れている迂生には Ruby の痘痕(あばた)はエクボです。 それはともかく。 メソッド名の別名がありすぎ 「あなたは map 派? それとも collect 派?」っていう問いがまず嫌い。 いや,別名にも意義があるとは思うんだけど,記憶の負担が大きい。 自分では map しか使わなくても,他人のコード読むんだったら collect を知っていなくちゃならない。 しばらく前に reduce っていうメソッド見て,そんなのあったっけ?と思ったら inject の別名だった。 map/collect と inject/reduce の名前とその背景にある発想については,Rubyist Magazine に良い記事がある: そうかと思えば,Array#delete_if と Array#reject! みたいに,働きは基本的に同じだけど,削除が行われなかっ
2015-10-14 Sidekiq has a reputation for being much faster than its competition but there’s always room for improvement. I recently rewrote its internals and made it six times faster. Here’s how! It’s been quite a while since I’ve touched Sidekiq’s core design. That was intentional: for the last year Sidekiq has stabilized and become reliable infrastructure that Ruby developers can trust when build
プログラマーのための「Rubyの世界」イベントレポート(前編) なぜRubyは世界中で 受け入れられているのか? 2015年9月28日、エンジニア目線の求人サイト「Forkwell Jobs」主催による、プログラマーのための「Rubyの世界」と題したイベントが開催されました。 第一部では、Rubyコミッター、かつ、日本人唯一のRuby on Railsコミッターである松田 明氏(写真左)が登壇。「Rubyの世界」をテーマに、RubyとRuby on Railsの歴史や思想、コミュニティをはじめとしたRubyの魅力についてお話いただきました。 第二部、WEB+DB PRESSで松田氏と執筆実績もある後藤大輔氏(写真右)の講演レポート(後編)はこちら 講演者プロフィール 松田明(@a_matsuda) Rubyコミッター、かつ、日本人唯一のRuby on Railsコミッター。 kaminar
ActiveRecord における DB との接続確立方法をきちんと理解できてなかったので、pry-byebug を使いながらコードを読み解いてみる。 Railsのversion は 4.2.0 という前提で。 establish_connection blog.livedoor.jp sonots さん解説の通り、Rails を起動すると establish_connection メソッドが呼び出される。 # lib/active_record/connection_handling.rb def establish_connection(spec = nil) spec ||= DEFAULT_ENV.call.to_sym resolver = ConnectionAdapters::ConnectionSpecification::Resolver.new configuratio
メモです。 はじめに capistrano3の概要を知るには以下の記事がとても参考になる。 入門 Capistrano 3 ~ 全ての手作業を生まれる前に消し去りたい Capistrano3のデプロイフレームワークの使い方 業務での使用も経て何となく分かったつもりだったが、デフォルトで色々やってくれるのが逆に少し気持ち悪かった。 内部を理解しないことには気持ち悪さは解消されそうにないのでコードを読んだ。 だいぶ理解したものの、すぐに忘れそうなのでメモしておく。 対象 capistrano3について何となく知っている。使ったことがある capistranoの内部でどういう風に処理が走っているかは知らない capistranoのバージョンは3.4.0 長くなったので、各項目のまとめだけ読むと手っ取り早いと思う。 1. cap install 入り口としてcap installが何故実行出来るの
What is Better Specs Better Specs is a collection of best practices developers learned while testing apps that you can use to improve your coding skills, or simply for inspiration. Better Specs came to life at Lelylan (open source IoT cloud platform) and checking out its test suite may be of inspiration. Better Specs focus on Rails testing, but our goal is to create testing guidelines covering mos
はじめに 実際に運用していた時に非同期にしていた主な処理は下記のようなものがあります。 iOS Android の push 通知の送信処理 ログの作成 様々な外部 API の呼び出し 非同期で更新しても問題ないデータの更新 Sidekiq is なに sidekiqは非同期処理を実現する gem 他にも Ruby で非同期処理を実現できる有名な gem には resque や delayed_job 等がある。 sidekiq.org Enterprise版等もありますが、 今回はOSS版を使用している前提でのお話しです。 他の非同期処理が可能な gem との簡単な比較 FAQ · mperham/sidekiq Wiki · GitHub この内容は結構真実を語っていることを最近知った Sidekiq Redis マルチスレッド リトライ処理あり おしゃれなダッシュボード Resque
(追記:2012-12-25) 本記事およびこれに続くRackの記事(全4本)をまとめて電子書籍化しました。「Gumroad」を通して100円にて販売しています。内容についての追加・変更はありませんが、誤記の修正およびメディア向けの調整を行っています。 電子書籍「エラーメッセージから学ぶRack」EPUB版 このリンクはGumroadにおける商品購入リンクになっています。クリックすると、オーバーレイ・ウインドウが立ち上がって、この場でクレジットカード決済による購入が可能です。購入にはクレジット情報およびメールアドレスの入力が必要になります。購入すると、入力したメールアドレスにコンテンツのDLリンクが送られてきます。 詳細は以下を参照して下さい。 電子書籍「エラーメッセージから学ぶRack」EPUB版をGumroadから出版しました! 購入ご検討のほどよろしくお願いしますm(__)m Rac
Threading and concurrency are hot topics in the Ruby community. Want to join the conversation? You've probably heard people around you talking mutexes, race conditions, or the GIL. Do you wonder what the heck they're talking about? This book is a gentle introduction to these concepts and will give you the knowledge you need to become your teams resident concurrency expert. "If you've been avoiding
こんにちは。技術部の吉川です。 クックパッドでは、ユーザーが快適にサービスを利用できるように本番環境でのパフォーマンスを向上させるための様々な工夫がなされています。 ところでパフォーマンスを気にするのは本番環境だけで良いのでしょうか? 開発環境に目を向けると、そこにもユーザーがいます。開発者です。開発環境のパフォーマンスが向上することで、開発者が快適にサービスを開発できるようになります。 今回はそういった開発環境でのパフォーマンス向上のための取り組みについてご紹介します。 ※ なお先日 Ruby2.2化されました が、今回紹介するものはそれ以前に実施されたため、Ruby2.2で同じ結果になるとは限りません。 状況 今回対象とするのはcookpad.comのアプリケーションです。 近年はMicroservices化を進めていますが、それでも本体のレシピサービスのアプリケーションは依然として非
ふとtwitterをみていたら @ymotongpoo pythonjapan.comとかいうサイトがすごく下品なことをしてる。 「文字列操作の比較表」 http://bit.ly/ggAJ0k これは高林さんの記事の丸コピペな上に引用元書いてない。恥を知れ。 http://bit.ly/g9U5M http://twitter.com/ymotongpoo/status/40615506608128000 というのが目にはいった時に社内buzzに流したらpythonjapanうんぬんよりも言語比較の話がまた再燃。s.to_fはperlでは0+$sだとか、s.to_sは”$s"とか。 そういえばGo言語も比較したらどうなるかせっかくなのでまとめてみた。 問題のpythonjapanはあっという間に消えたようですね。 謎のpythonjapan
なんとなく整理できてきたのでソースをまとめます。 [markdown] 今回も引用先サイトで勉強させて頂きました。 ありがとうございます。 ## インストール pry と関連する gem を確認。 > * [debug – Rails4 今のところ最強なデバッグツール達 – Qiita](http://qiita.com/yusabana/items/8ce54577d959bb085b37) “`ruby:Gemfile group :development, :test do gem ‘pry-doc’ gem ‘pry-rails’ gem ‘pry-stack_explorer’ if RUBY_VERSION >= ‘2.0.0’ gem ‘pry-byebug’ else gem ‘pry-debugger’ gem ‘pry-remote’ end end “` > * [R
井原(@ihara2525)です。 以前RSpecでElasticsearchを使ったテストを書くというエントリの中で、 before do Post.__elasticsearch__.create_index! force: true Post.__elasticsearch__.refresh_index! page Post.import # Wait test cluster to index the created objects sleep 1 end みたいなコードを書いていたのですが、いろいろと間違っていました。 まずimportがインデックスをつくってくれるので、 before Post.import # Wait test cluster to index the created objects sleep 1 do でOK。 そしてsleep 1しているのはここにも
新規アプリケーションの構成 Rack::VCR リクエストの記録 リクエストのモック リクエストの再生 おまけ: Androidアプリのテスト 弊社での利用例 未来 こんにちは、会員事業部の小室 (id:hogelog) です。気づけば弊社に入社してから2年と2ヶ月が経っていました。 今回はその2年2ヶ月で初めて会社プロダクトを rails new したRailsアプリケーションと、そのアプリケーションで利用したRack::VCR (https://github.com/miyagawa/rack-vcr) について簡単に解説します。 新規アプリケーションの構成 今回私が新規に作成したRailsアプリケーションは仮にここではomoikane(仮)と呼ぶことにします。omoikaneはリクエストがあると社内の汎用APIサーバにアクセスし、APIサーバから取得した情報を元にレスポンスを返すアプ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く