Ruby Business Users Conference 2017
Ruby Business Users Conference 2017
NaClの野坂です。 普段は松江市にある本社オフィスで、主にRubyを使ったシステム開発をしつつ、時々Ruby関連のセミナー講師なども務めています。 また、週末は地元のサッカーチームを応援するサポーター活動などしています。 サッカー大好きな私としては、いつか松江市が「サッカーの街」として有名になってくれたらいいなぁ、などと密かに念じていたり しますが、やっぱり業界的には「Rubyの街」という印象が圧倒的かと思います。 実際、地元のクラブの試合を応援していても、ハーフタイムの雑談中に、IT業界とは無縁なはずのサポーター仲間から、 「Rubyってヤツを勉強しようと思ったら、どう始めればいいの?」 なんて普通に聞かれたりする街です。 本稿では、そんなRuby初心者に実際にRubyが実行できる環境を提供する方法についてご紹介したいと思います。 意外と存在するハードル 初心者向けのセミナー受講者や、
実はこれが、2014年最初のエントリー。サボりすぎ。 WebAPIを呼ぶスクリプト書くのにFaradayを使ってみたので、使い方などをメモっておこうと思います。 Faraday自体は前から知ってたんですが、リダイレクトとかめんどくさい事考えなくて良い場合に、 特にHTTPクライアントのライブラリ入れて使うより、Net::HTTPで十分じゃない?と思って使った事ありませんでした。 なんとなーく、Ruby書きたくなって、使ったことないgemを使ってみたかったので、使ってみた次第です。 ちなみに、読み方は ふぁらでい なんでしょうかね? 環境 OS : Mac OS X 10.9.2 Ruby : ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] 使用するライブラリのバージョン gem 'faraday', '~> 0.9
今日は木曜日だったので、ハンバーグの会(Okayama.rb)に参加してきました。 今日は@mako_wisにテストの書き方について相談を受けたので、粒度とかについて説明しましたが、私は説明し始めると早口になってしまうので詰め込みすぎたかもしれないと思ったのでちょっとまとめておこうと思いました。ちなみに、書き方といってもRSpecの始め方とかではないです。その点はあしからず。 Railsプロジェクトのいいところは、テストがとてもしやすいところだと思います。 私は今の会社に入るまで、テストは書きたいけれど、どう書けばいいのかわからなかったのと、頑張って書いてみたものの、成果が周りに評価されなかったのでこのままでいいのだろうか?と思い悩んでいました。しかし、既にテストがあるプロジェクトに入って書き方を学べた事と、同僚とThe RSpec Book読書会を社内で開いて勉強したおかげで、結構綺麗に
最近APIサーバ用途でRailsアプリを1個つくったので振り返る。 概要 接続元はiOSやAndroidアプリとか、Webブラウザとか、別のWebアプリケーションとか。1ホストあたり秒間数百リクエスト、平均応答時間10msぐらい。Rails 4.1.0.rc2、Unicorn、Nginxを使ってる。正直Railsは全部入りで重いイメージがあったので何となく平均50ms以内程度であれば良いところだろうと思ってたけど、意外と速い。多分そもそもサーバの性能が良いんだと思う。実装時に気を付けたことは普段の開発と特に変わりない。いつもは大勢でワイワイ開発するものに少し手を加えるということが多いんだけど、今回は珍しく自分一人でつくったから目が行き届いてたのかもしれない。DBへの問合せの効率に気を配るとか、Rubyでの処理の無駄を省くとか、アプリケーションのプロセスに無駄なコードを読み込ませないとか、計
正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlやPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/
Ruby on Rails 作者David Heinemeier Hanssonが語るオンラインでお金を生み出すためのたった1つの方法 この動画はRuby on Railsの作者であり(!)、37SignalsのパートナーでもあるDavid Heinemeier Hansson (デビッド ヘイメール ハンソン、通称DHH) が2008年にStartup Schoolで語ったビデオ。シード・アクセラレーターというベンチャー・キャピタルの一種であるYcombinatorが主催するこのスタートアップスクールで「ベンチャー・キャピタルからお金をもらって次のFacebookを狙うのをやめよう!」とアンチ・スタートアップ、アンチ・ベンチャーキャピタル節が全開のDHHさん!プレゼンの最中も会場から笑いが絶えないすごく楽しいプレゼンです。 僕はこのプレゼンも大好きで、先日書いたPinterest共同創業
Ruby 上で http を叩いた通信見たい時に、毎回同じ事をやってるので抽象化して http-dump というライブラリを作った。 https://github.com/hotchpotch/http-dump $ gem install http-dump require 'net/http' require 'uri' require 'http-dump' HTTPDump.dump { Net::HTTP.get(URI('http://example.com')) } と http でやりとりしてるコードを block で囲むと、以下のように出力される。 > GET http://example.com/ with headers {'Accept'=>'*/*', 'Accept-Encoding'=>'gzip;q=1.0,deflate;q=0.6,identity;q=
ふと思いついたので会社のJenkinsで使ってるプラグインをまとめてみます。 RailsでJenkins運用してる人の参考になれば幸いです。(入れてるけどあまり使ってないのは端折ってます) 他に便利なプラグインあったらコメントやブコメで教えてくださいw Ruby/Rails系プラグイン PMD Plugin - Jenkins - Jenkins Wiki CPD(Copy PasteDetector=コピペ検出)のためのプラグイン。 入門Jenkinsで紹介されていたので入れたはず。 入門Jenkins―実践「継続的インテグレーション」 作者: 末広尚義,竹内一成,太田健一郎,西川茂伸出版社/メーカー: 秀和システム発売日: 2012/09メディア: 単行本購入: 5人 クリック: 138回この商品を含むブログ (9件) を見る 参考:Javaだけじゃない入門jenkins アプリ作る度
そろそろ軽くRubyをやってみたいけどなんか情報多すぎてどこから手を付けたらいいかわからない、リファレンス的なものとか言語論的なものとかコミュニティー的なものとかの情報は結構あるけど、もっとカジュアルでかと言ってどの言語でも使いまわせる的な説明じゃなくRubyらしさが浮き出てるようなもので、しかもちょっとしたCLIツールとかWebアプリとかを作れる程度に理解の手助けをしてくれるものがほしいけど、今の段階で大枚叩きたくないしという人向けに僕がRubyの道案内を致します。 ステップ1(所要時間:0〜10分、投資額:0円) あなたのコンピュータでRuby2系を使えるようにします。 Macなひと => Mavericksをインストールする。 Windowsなひと => RubyInstaller for WindowsでRuby2系をインストールする。 Linuxなひと => ご自由に。 ターミナ
ちょっと不便なRspecのテスト Rspecでテストを書いている人は多いと思うんですが,Rspecのテストちょっと不便じゃありませんか? 例えばテスト実行中 あとどれくらい残ってるの!?いつ終わるの?(どれくらいのテストが残っているかわからない) テスト落ちたなら,それ先に見せてよ!(どのテストが失敗したかわからない,でも一応最後までテストを実行したい,けど終わるまで結果がわからない) うーん,やっぱりちょっと不便. そんな時に便利なFuubar こちらのビデオを見てもらうとFuubarがどういうものかわかると思います. Fuubarのいいところは 落ちたテストからFaiure/Errorメッセージを出してくれる. 残りのテスト数がわかる 予想終了時間が表示される 素晴らしい! インストール Fuubarを使うには
ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。(詳しくはエンタープライズアプリケーションアーキテクチャパターンという書籍を読むと良いです) この方法はロジックが複雑でない場合、つま
「Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def
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
DRY原則に従おうとするほど、テストコードがどんどん読みづらくなる。 The RSpec Bookに答えがあるかと思って読んでみたものの、「あるある」と一言述べているだけだった。辛い。 テストコードが読みづらくなる例を示すために、1つRubyのライブラリをつくった。 値とパターンを与えてValidationを行う機能を提供するライブラリ。 実装60行、テスト120行なので、詳しく見たければすぐ読めると思う。 最近不本意ながらキラキラネームの命名力が上がってきたと思う。 avalon - A validator implementation for Ruby https://github.com/r7kamura/avalon 冗長だが読みやすい例 letもsubjectもローカル変数も何も用いずに率直に書いたテストコード例がこちら。 冗長だが読みやすく、テストコードを見ればライブラリの使い
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く