アーカイブ

‘Ruby’ カテゴリーのアーカイブ

Ruby on Rails 5速習実践ガイドを読みました。 このエントリーを含むはてなブックマーク はてなブックマーク - Ruby on Rails 5速習実践ガイドを読みました。

2018 年 10 月 25 日 Comments off

普段はソロ活動が多く、他の方が書いたコードを仕事の中で読むことがほとんどないので、実践的な章はもちろん、入門的な章も知識の棚卸しとして読みました。

自分にはまず、9章、10章が嬉しい内容でした。
全体として具体的で「あぁ、トラブるな、そこ。」だったり「なるほど、そんなことも考えないといけないな。」「そうすればいいのか。」という気持ちになることがところどころに。
それぞれ、当初から予想が出来ない、ということはないのかもしれませんが、そこを通った時に「こういう事があって、こうしました。」という感じで、実際に時間を掛けて付き合った上でないと出てこない内容だと思います。

あとは、この部分。

P392「そのため、Railsでアプリケーションを開発するならば、アプリケーションを放棄しない限り、ずっとバージョンアップをし続ける必要があると肝に銘じておきましょう。開発現場だけでなく、事業計画のレベルでも、RubyやRailsのバージョンアップの費用を常に計画に織り込むことが非常に重要です。」

「開発が終わったアプリにそんなにお金掛けられないですよね?」というような話を最近続けて聞くことがあったので、ここが刺さりました。

「終わった、とは?」という話は置いておいて、結果からいうと、自分はそこで「そういうケースではそもそもRailsは向いていないのだと思います。」と答えていました。おそらくこの言葉は「アプリを完成させることによって、または完成したアプリにはもう大きな費用がかからないことを前提に、その後の保守で利益を出す。」という発想から来ているのだと思います。
そのアプリに働いてもらって、そこから立った売り上げで体制を維持していく、という考え方でないと、なり立たない。経営的な話ですが、お仕事では必ず考える必要がある(が、得てして後回しにされがち)ので、気をつけておきたいところです。

発展編の方の章から話を始めてしまったのですが、入門編、レベルアップ編について。
まったくの新規ではなく、棚卸しの視点なのである程度は流し読みになってしまったのですが、準備から順番に、積み重ねるよう丁寧に解説されていると感じました。順番に進めていけば、おそらく躓くことはないと思います。

全体として、普通に開発を進めていくと必要になることが網羅されていて、木の幹になるような本だと思います。ひとまずこれを通して読んで、やってみましょう。もし足りないケースが出たら、そこで他を調べて枝葉を増やしていきましょう、と。発展編については、はじめの頃に読んでもおそらく難しいので、見出しを眺める程度にし、いまは置いておきましょう、という感じで。

毎月参加しているSaitama.rbでは、これからRuby/Railsの勉強を始めますという方がよくいらしゃいますが、この本をおすすめできると思っています。

カテゴリー: Rails, Ruby タグ:

trueとfalseの話。 このエントリーを含むはてなブックマーク はてなブックマーク - trueとfalseの話。

2017 年 9 月 27 日 Comments off

Rubyのtrueとfalseの話 – Qiitaこの本を作るためにいろいろ質問して理解したことのうち、『真』であることとtrueが違う、『偽』とfalseについても同様、という話が個人的に一番衝撃的だったかもしれません。

おそらく分かってはいたものの明確に意識したことはなくて、「あっ、そうだ。」という気持ちだった。

Rubyのtrueとfalseの話 – Qiitatruthy とか falsy って呼び方をしたりもしますね

`be` matchers – Built in matchers – RSpec Expectations – RSpec – Relish

expect(obj).to be_truthy # passes if obj is truthy (not nil or false)
expect(obj).to be_falsey # passes if obj is falsy (nil or false)

あ、そうだ。

カテゴリー: Ruby タグ:

nginxとRackとX-Accel-Mappingと。その2 このエントリーを含むはてなブックマーク はてなブックマーク - nginxとRackとX-Accel-Mappingと。その2

2017 年 8 月 15 日 Comments off

GitHubからの通知メールがいくつかまとめて来てたため見逃してしまっていたのですが、この前Rackに投げたPRがマージされていました。

手元でパッチを当てていたので、嬉しい。詳細については↓に書いています。

nginxとRackとX-Accel-Mappingと。 » サイキョウライン
まず、課題となっている場所はここで、いまの実装はこんな感じ。

カテゴリー: Rails, Ruby タグ:

例外の定義について。 このエントリーを含むはてなブックマーク はてなブックマーク - 例外の定義について。

2017 年 2 月 26 日 Comments off

えっ、ってことで確認したら、たのしいRuby第5版のP191にありました。

いままで

class MyError < StandardError; end

のように書いて、なんか据わりが悪い感じがしていたので、今度からClass.newを使っていきたいと思います。
ちなみにclass文との違いは新たにメソッドの定義などが出来ないことですが、そもそもStandardErrorを継承したクラスが作れればいいだけなので、問題ありませんね。(と、本にも書いてありました。たしかに。)

カテゴリー: Ruby タグ:

IMAPですべて既読にするやつ。 このエントリーを含むはてなブックマーク はてなブックマーク - IMAPですべて既読にするやつ。

2016 年 3 月 8 日 Comments off

たまに必要になるので。しっかし、なんでreadじゃなくてseeなんだろ。

カテゴリー: Ruby タグ:

gem installでドキュメント作らないやつ。 このエントリーを含むはてなブックマーク はてなブックマーク - gem installでドキュメント作らないやつ。

2016 年 1 月 21 日 Comments off

gem install でドキュメント生成しないオプション, nginx 実践入門を読んだ – HsbtDiary(2016-01-20)

定番としては –no-ri –no-rdoc と思いますが、最近の rubygems では –no-document というオプションで一括指定できるので

なるほどー、ということでヘルプ見たら非推奨になってました。

% gem --version
2.4.5.1
% gem install --help
~省略~
  Deprecated Options:
        --[no-]rdoc                  Generate RDoc for installed gems
                                     Use --document instead
        --[no-]ri                    Generate ri data for installed gems.
                                     Use --document instead
    -u, --[no-]update-sources        Update local source cache
~省略~

さっそく.gemrc書き換えた。あざーす!

カテゴリー: Ruby タグ:

Object#tapの使い方について。 このエントリーを含むはてなブックマーク はてなブックマーク - Object#tapの使い方について。

2015 年 12 月 10 日 Comments off

Ruby のオススメの機能7選 – Qiita

返り値を返すときに、最後にわざわざ hash とかオブジェクトを書くのに違和感を感じる。特に map などのブロックの場合とか。

まさにこれを感じていたので、この使い方してみたい。

カテゴリー: Ruby タグ:

tryとtry!と。 このエントリーを含むはてなブックマーク はてなブックマーク - tryとtry!と。

2015 年 11 月 5 日 Comments off

koicさんのスライド(Safe navigation operator in Ruby)を、Rubyにもtryができるのかーとありがたく読んでいたのですが、この9枚目、まさにまだtryを使って(!!)いました。。。今日からtry!に切り替えようと思います。

Object

Same as try, but will raise a NoMethodError exception if the receiver is not nil and does not implement the tried method.

Ruby 2.3.0以降でRailsを使うときは「.try!」を使うか「.?」を使うかが気になりましたが、これは「RailsではなくRubyの」メソッドである「.?」に切り替えていくべきですよね。たぶ、ん。

ところでSlideShareって各スライドを開く直リンクがあった気がするんですが、気のせいかな。

って、http://www.slideshare.net/koic/safe-navigation-operator-in-ruby/#9←これで行けるんですね!(教えていただきました。)

[2015-11-06 追記] 「&.」に変わったそうです。

change DOTQ · ruby/ruby@837babd

from “.?” to “&.”. [ruby-core:71363] [Feature #11537]

カテゴリー: Rails, Ruby タグ:

Rubyのバグを報告しました。 このエントリーを含むはてなブックマーク はてなブックマーク - Rubyのバグを報告しました。

2015 年 3 月 4 日 Comments off

Bug #10933: [BUG] object allocation during garbage collection phase – Ruby trunk – Ruby Issue Tracking System

昨日リリースされた2.2.1にアップデートしてrspec走らせたらクラッシュしたので初めて報告しました。
吐かれたログを丸ごと投げただけなんですが、アカウント作れたし役に立ったようで嬉しい。
そしてFix早い。すごい。ありがたい。

Ruby 2.2.1 リリース

Ruby 2.2.1 がリリースされました。これは 2.2 シリーズにおける最初の TEENY リリースになります。

カテゴリー: Ruby タグ:

Time.nowとTime.currentの違い。 このエントリーを含むはてなブックマーク はてなブックマーク - Time.nowとTime.currentの違い。

2014 年 12 月 8 日 Comments off

RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの違い – Qiita

基本的に Time.current や Time.zone.xxx、xxx.in_time_zone 等のメソッドを使うと、TimeWithZoneクラスのインスタンスが返却され、application.rbのタイムゾーンが使用されるようです。 Time.now や Time.parse など、Timeクラスから元から存在しているメソッドはRuby標準の挙動と同じく、環境変数のタイムゾーンを使用しています。

Time.currentを知らなかったー。いままではTime.nowを使っていたのですが、これからはTime.currentに寄せていこうと思います。

カテゴリー: Rails, Ruby タグ: