Sooey

2014-05-07 11:38:49 +0900

ネストしたModule/ClassをRubyで定義する時のコーディングスタイルの話。

Rubocop 0.19.0でClassAndModuleChildrenというルールが導入されて、ネストしたModule/Classを定義する際のスタイルとして、

# Style A
module  Foo
  module Bar
  end
end

# Style B
module Foo::Bar
end

のうち、Style Aのほうを推奨するようになりました。

Style Aのほうが推奨される理由は、

にあるように、親のModule/Classが未定義になるケースを回避できるという点のようです。

2014-02-16 03:16:21 +0900

今年はAngular.jsではなくEmber.jsをメインに使うことに決めたので、Ember.js Guidesを読み進めることにした。

今日は、

を読了。

だいぶ規約ベースな作りなので、何がどう結合していくのかを把握していないとJavaScriptで書いたアプリケーションコードやHandlebarsのテンプレートを読んでもさっぱり処理が追えない印象。

フレームワーク自体は当初のイメージ(&SproutCoreの頃のイメージ)よりも軽量で、読み込むEmber.jsのライブラリファイルも2つだけだし、index.htmlを用意してからコンポーネントを組み込んでいく作業もヘビーな印象は受けなかった。

2014-02-15 14:17:33 +0900

Webサイトのパスのトップレベルにユーザー名を置く場合の予約語リスト。

知見 - 登録されるとつらいユーザー名リスト - Qiita

Qiitaのアカウントを持っていないので、ブログで反応しておきます。

ユーザー名の予約語リストとしては、QuoraにHow do sites prevent vanity URLs from colliding with future features ? - QuoraというスレッドがあってGitHubのkneath氏などがいくつかリストを挙げているので、参考になるのではないでしょうか。

2014-02-12 20:31:40 +0900

Marty Caganという人のInspired: How To Create Products Customers Loveという書籍がよさそう。日本のKindleストアだと780円くらいで買える。

日本語版はないのかなと思ってちょっと探してみたら、翻訳チームのWebサイトがあって、1,200円でiPhoneアプリとして販売されているみたい。

Amazon (JP)

2014-02-08 00:52:55 +0900

本日は5ヶ月ぶりくらいに散髪しました。このサイトは、こうした日記っぽいエントリを書けるようにあまりブログっぽい作りにはしていないのです(ブログエントリのタイトル駆動ではない)。

いわゆるブログ的なプラットフォームを使っているひとたちは日常のしょうもないことを書く時、タイトルや落とし所をどう捻り出してるのか気になります。それともそんな無意味なことは書かないのか。

以下、今日見つけたURLたち。

Continuous Deployment at Square: Hard & Soft Skills to Avoid Outages

1月にEtsyで開かれたContinuous Delivery NYCというミートアップで、Squareのニューヨークオフィス所属のエンジニアさんが発表したスライドと動画。Continuous Deploymentにおいて、障害を起こさないためのテクニックを紹介しているようです。

How do I test an application_controller on a rails app - Blog do Time

rspec-railsのanonymous controllerという仕組みを利用すると、ApplicationControllerに記述したコントローラー横断的なコードのテストが綺麗に書けるよ、という話。current_userメソッドなんかのテストをあるべき所に書けるというのはよさそう。

同じような話として、最近はapp/{controllers|models}/concerns/*.rbのテストをどこでやるか、というのが個人的な悩みどころです。

before_action an anti-pattern? | Transcending Frontiers

Railsのコントローラーにおいて、なんでもかんでもbefore_actionでやるような設計はアンチパターンではないか、という話。

before_actionでメソッドの呼び出しを宣言的に記述するのと、アクションメソッド内でそれらのメソッドを単純に呼ぶのとで、それぞれのメリット・デメリットを挙げたうえで、「アクションの実行を回避させるようなフロー制御をbefore_actionで書くのはいいと思う。それ以外の、単にデータをロードするためだけのメソッドなどはアクションメソッド内に書こう。コードが少し長くなるけど、そのほうが読みやすくて理解もメンテナンスも簡単だ」とのことです。

# Bad
before_action :find_post, only: :show

def show
  ...
end

# Good
def show
  find_post
  ...
end

コードで示すとこういうこと。

Orchard | Docker hosting

Dockerで任意のプロセスを実行することができるクラウドサービス。課金は1時間単位で、料金はスペック毎に何段階か。PiCloudを思い出したけど、あれよりはレイヤーが下な感じ。

Hakiri: Ruby on Rails Security

Railsアプリの脆弱性チェックをしてくれるサービス。14日間トライアルありで、5プロジェクト月額$19.99から。Gemfile.lockベースのチェックだけなら、同サイトのFacets — Scan Gemfile for Security Issuesで無料で行えます。