今朝聞いた今週の rebuild.fm のポッドキャストで、テストに関する話題がとても面白く勉強になりましたので備忘録メモ。全部テスト書いてたら時間が足りないし、個人的にはどの部分を重点的にテストすべきか、削っても良いのはどこかに注目して聞きました。 Rebuild: 43: Kent is More Professional (Kenn Ejima) 以下 rebuild.fm 話題から参考にしたいメモ ・テスト書くのは良いが、テスト原理主義、100%カバー、全部テストファーストにこだわるのは疑問。 ・内部構造、実装に対するテストは書かない。 ・モックは一番外側のAPI、インターフェースに対してだけ使う。(※) ・モックのためのモックとかは避ける。 ・リファクタリングのためにテストを書き換えなきゃいけないようなテストは駄目。 ・テストとコードを同時に変更すると、トラブルに気付きにくくなる
■ [ruby] ruby 同梱の test-unit と minitest の今後 今朝のコミットで stdlib としての minitest が消えたので一度ゼロベースから考え直しという事になった。ふんわりしてるけど、議論している内容はこんなところ。 minitest5 は同梱しないで packaging やインストールプロセスのどっかで gem install minitest して入るようにしたい *.gem ファイルを同梱するのか、しないでパッケージ生成時に取得するのかは未定 test-unit は https://github.com/test-unit/test-unit を同梱したい(test-unit2 と呼んでいる) API に非互換があるのでどれくらい非互換があるかを調べる その場合は rubygems や rake 同様に trunk を upstream としたい
Rails アプリケーションで全文検索を実装するための調査を昨晩行ったので、リンク・URLをまとめておきます。Sunspot, Elasticsearch, Think Sphinx, Ransack あたりが候補になりました。 Sunspot(Solr) Apache Lucene – Apache Solr Rails – sunspot で全文検索をする(1) – そういうことだったんですね Railsでsunspot(solr)を使って全文検索 – Qiita Railsで検索を高速化するならこれで決まり!Sunspotで始めるSolr入門 | TechRacho Rails3.1で全文検索はSunSpotが楽ちんだった – 鶏肉がいいよね。 Ruby on RailsとApache Solrで構築するドキュメント全文検索システムの開発|サイバーエージェント 公式エンジニアブログ
TL;DR MVCもレイヤで捉えて関係性の設計をするといいのでは 普通のRubyオブジェクトを積極的に使いたいですね 「パーフェクト Rails」に期待しましょう 長くなって面倒くさくなり、途中から手抜き感が半端ないですが許してください この記事の位置付けなど 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog [翻訳] エリック・エヴァンスのドメイン駆動設計 エンタープライズ アプリケーションアーキテクチャパターン これらの参考文献を踏まえてRailsアプリケーションのリファクタリングをしていて、だいぶ方向性や考え方がまとまってきたので、これからチームに合流する人を想定読者に、Qiitaがどんな感じで作られているのかを文書化したものです。(参考文献の一覧は記事の最後にあります) 内容的には文献[2,3]を踏
最近個人的に作った写真共有サイトを公開しました。 photoll - スポット写真共有サイト この写真共有サイトで実際に使っているおすすめGemを晒してみます。 あと、おまけで使ってないけど便利そうなGemとかも紹介。 一人で1からWebサービスを作る過程を書いた拙作のブログエントリもよかったら見てください。 【1人でWebサービス開発】新米Railsエンジニアが無謀にも写真共有サイトを作りました だいぶ長いですが、Gemfileをそのまんま載せました。簡易説明付き。 主要なGemをあとで説明します。 source 'https://rubygems.org' gem 'rails' gem 'mysql2' gem 'haml-rails' # HTMLを簡潔に書ける gem 'sass-rails' # CSSを効率的に書ける gem 'bootstrap-sass' # Twitte
UPDATED: 2017/11/27 本記事は2014年当初の情報であり、現在は古くなっている可能性があります。 記事中で紹介している各種プロダクトの最新ドキュメントをご参照下さい。 はじめに OS X で最近流行のツールは Ruby や Python ベースのものが多いのですが もともとインストールされている各処理系はバージョンが古いです。 その更新自体にこれから紹介する Homebrew 等を使っている記事が多く、 どこから手を付けていいか迷ったりしたので、まとめておきます。 目標 パッケージマネージャ Homebrew のインストール システムデフォルトとは別に Git, JDK, Ruby, Perl, Python の最新版をインストール 大まかな流れ システムにプリインストールされている Ruby で Homebrew をインストール Homebrew から各種追加パッケージ
エンジニア組織を強くするための本を出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 あわせて読みたい 新人プログラマに知ってもらいたいメソッドを読みやすく維持するいくつかの原則 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 ペアプログラミングして気がついた新人プログラマの成長を阻害する悪習 この記事について この記事は、新人向けの研修内容を再編集してお送りします。 この記事の内
※この内容はRailsで書かれたWantedlyのプロジェクトに参加することを想定していて、一部Railsのデフォルトでない機能の解説もありますが、使っているgemもメジャーなもので割と汎用的な内容になっていると思うので、是非参考にしてみてください。 URLを見ればだいたいどこを変更すればいいかわかると言うこと Ruby on RailsはMVC(Model View Controller)にもとづいて設計されていて、ディレクトリ構造的にもapp/以下に綺麗に分かれている。 MVCって何?って人は、ググってみてほしいが、割と宗教論争になりかけているので、モデルはDBの各テーブルに関連していて、ビューはHTMLの部分に近くて、コントローラーはビュー用にモデルを引っ張ってくるつなぎ役だと思ってれば大体合っている。これ以上は深く考えずにコードを読んだほうが良いと思う。 Router でもコード的
Ginza.rb.第8回を開催しました。今回は参加者の方に事前にGemfileをアップして頂き、使用しているgemについて説明をして頂く形式で実施。 Gemfileの置き場は[こちら](https://github.com/ginzarb/meetups/issues/6)。 話に上がったgemについて以下にずらずらと。 ### [gon](https://github.com/gazay/gon) Rails側の変数をJavaScriptに渡す事が出来るgem。 controllerから大量のデータをJavaScriptに渡す必要がある場合に便利。 詳細は[RailsCast](http://railscasts.com/episodes/324-passing-data-to-javascript?language=ja&view=asciicast)参照。 ### [Better E
データベースから取得したデータをJSON形式やXML形式で返したい場合があります。ここではrenderメソッドを使ってJSON形式やXML形式で利用者へ結果を返す方法を解説します。またrespond_toメソッドを使いリクエストで指定されたフォーマットに合わせて出力する形式を決める方法についても解説します。 1.JSON形式で出力 2.XML形式で出力 3.respond_toメソッドを使った形式の選択 JSON形式で出力 JSON形式で出力を行なうには次の書式を使います。 オブジェクトをJSON形式に変換した上で利用者へ返します。 では実際に試してみます。作成済みのコントローラクラス(app/controllers/movies_controller.rb)の中の「index」アクションメソッドを次のように修正します。 class MoviesController < Applicati
Spice Lifeの五十嵐邦明さんの一橋大学のRuby概論スライドがかなりすばらしかったのでまとめてみました。こんなキャッチーな資料がネットで手に入るというのは本当にありがたい限りです! (05-02 07:45) MATSUOKA Koheiさんの2014年度の講義資料を追加 ちなみに、スライドがたくさんあるので3部作ですw (1)『Ruby概論のスライドがすばらしかったのでまとめてみた(第一部)』<= 今ここ< strong> (2)『Ruby 概論のスライドが素晴らしかったのでまとめてみた(第2部)』 (3)『Ruby 概論のスライドが素晴らしかったのでまとめてみた(第3部)』 🗻 2014年ブログ一橋大学でRubyの非常勤講師をはじめました MATSUOKA Koheiさんが講師をされている2014年に現在開催中のRuby講義の資料です。勉強になります! Ruby講義第1回:
はじめに 以前から何度か紹介しているRSpec本の翻訳が終了し、ついに販売を開始しました! 提供フォーマットはMOBI(Kindle)、EPUB(iBooks)、PDFで、下記のページから購入できます。 Everyday Rails - RSpecによるRailsテスト入門 - Leanpub 今回は改めてこの本の紹介を書いてみようと思います。 「Everyday Rails - RSpecによるRailsテスト入門」ってどんな本? 「Everyday Rails - RSpecによるRailsテスト入門 ~テスト駆動開発の習得に向けた実践的アプローチ~」はタイトルの通り、RSpecを使ったRailsの自動テストを説明した技術書です。 内容としては比較的易しめで、そこまで高度な話題は出てきません。なのでRSpecの未経験者~中級者かつ、Railsを使って開発している技術者がターゲット層にな
Ruby中級入門 1. Ruby中級入門 @shokai 2013年8月5日(火) @masuilab 2. 私 •@shokai (しょうかい) •趣味:料理、glitch 3. ある程度大きなアプリケーションを作 っていると、部品に分割したくなると 思います。アプリ内ライブラリやgem の作り方を説明します。Rubyの機能を 活用した使い勝手の良いライブラリの デザインについて考えます。 4. • アプリ内ライブラリの作り方・gemの作り方 • サンプルコードとテスト • ライブラリのデザイン • API • DSL • 泥臭い小手先の技 • 例外・エラーの通知 • ドキュメント コンテンツ 5. ライブラリを作る 例:LeapMotionを自作アプリに組み込むための アプリ内ライブラリを作る 6. • LeapMotionはport 6437にWebSocket 接続するとJSONで
vim使っているrubyistで、これ入れていないのはヤバいプラグインまとめ 9個 (2013-10-04更新)RubyVimctags Rubyの開発効率を高めたい! vimでRubyやRails開発するときに、デフォルトの状態では非力ですよね。 開発効率を高める9つのプラグインを紹介します。 alpaca_tags ctagsの非同期生成 neosnippet Rails/sinatra/rspec等の補完 swtich.vim .present?:.brank?など対応するキーワードを切り替える rubocop 文法エラー、スタイルチェック vim-rails Railsプロジェクト用プラグイン unite-rails Railsプロジェクト用Unite-source vim-endwise if...endなど対応するキーワードの自動補完 rub
プログラムの実行時イメージ 突然だが、本章を始めるに先立ち、プログラム実行時のメモリ空間の状態につ いて予習をしておこうと思う。この章ではコンピュータの低レベルな部分にか なり踏み込んでいくことになるので、あらかじめある程度の知識を仕入れてお かないと太刀打ちできないのだ。それにこの後の章になればいずれ必要になっ てくる。ここで一回やってしまえば後が楽だ。 セグメント 一般的なCプログラムではメモリ空間の中に以下の部分を持つ。 テキスト領域 スタティック変数やグローバル変数の置場 マシンスタック ヒープ テキスト領域はコードが置いてあるところ。二番目は見ての通り。マシンスタッ クには関数の引数やローカル変数が積まれる。ヒープはmalloc()で割り当てて もらうところだ。 三つめのマシンスタックについてもう少し話そう。マシン「スタック」と言う くらいだから当然スタック構造をしている。つまり
rubocopはRubyのコード可読性をチェックするソフトウェアです。 プログラマーを何年やっていても、なかなか奇麗なコードに辿り着くのは困難です。ちょっと道を誤るとものすごいコードになっている場合もあります。そんな時には機械的に評価してくれるrubocopを使ってみましょう。 実行しました。色々な情報が出てきます。 Cは注意、Wはワーニングでしょうか。 ヘルプです。Emacsとの連携もできます。 rubocopでは内部での幾つかのルールに従って指定ディレクトリ以下のRubyコードについて評価を行ってくれます。筆者の場合、一行あたりの文字数が多くて引っかかるケースが多いようです。そうした点に注意して書くようにすれば、より可読性の高い美しいコードが書けるようになりそうです。 rubocopはRuby製、MIT Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る 美
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く