Posts Tagged ‘Ruby’
Railsの作者DHH、ルマン24時間耐久レース アマの部で勝利
モータースポーツとWebプログラミングの両方を知る人にとっては大きなニュースです。
タイトルの通り、Railsの作者として知られるDHHがルマン24時間耐久レース、アマチュアクラスで1位になったとのことです。(全体では17位)まさかこのサイトからスポーツニュースのサイトを参照するとは予想外ですが、結果を伝えるニュースにも「DHハンソン」の文字が。
WikipediaのDHHのプロフィールによると、ルマン24時間耐久レースへの参戦は今年で3年目で、写真と並んで彼の「趣味」であるとのこと。またSimple Talkのインタビューの記事によるとシルバーストーンやスパなどルマン以外のレースに参戦しているようです。
https://www.simple-talk.com/opinion/geek-of-the-week/david-heinemeier-hansson-geek-of-the-week/
追記:彼の過去のドライビングがYoutubeで公開されています。
趣味であってもここまで突き詰めるとはDHH恐るべしというのが筆者の感想です。(小並感)
今後のDHHのレース活動にも注目していきたいところです。
追記:
彼はリモートワークやアジャイルのスタイルを説いた書籍、ReworkとRemoteの著者であり、世界で30万部以上を売り上げた作家でもあります。
彼のホームページを見ると超人ぷりが伺えます。インタビューでは趣味とされていたレースも彼のホームページでは「レーサー」と明記されておりスタンスが変化しているということかもしれません。
rakeの作者 Jim Weirich氏、死去
DHH氏のツイートにてrakeの作者、Jim Weirich氏が亡くなったというニュースを知りました。
毎日のように使うオープンソースツールの作者が亡くなったというのを聞くのは非常に残念で、今後コンソールを叩く時にこの事が頭をよぎるような気がします。
昨年の夏のカンファレンスにてウクレレを披露した姿はとても楽しげで強く記憶に残っています。 R.I.P.
追記
一昨日まではGitHubにコミットをしておりログにコメントがあつまっているとのこと。
追記2
GitHubの最後のコミットにGitHubからもお別れのメッセージが出ています。
綺麗な設計を身に付けるためのSandi Metzルール
Webアプリやモバイルアプリの受託開発やコンサルティングを行うthoughtbot社のブログにて、Sandi MetzルールというRubyプログラマ向けのルールが紹介されていました。
このルールは、プログラマーでありPractical Object-Oriented Design in Rubyという書籍も執筆しているSandi MetzさんがRuby Roguesポッドキャストに出演した際に紹介していたものです。
そのルールは以下の通りです。
- クラス内のコードが100行を超えてはならない
- メソッド内のコードが5行を超えてはならない
- 4つより多い引数をメソッドに渡すようにしてはならない(ハッシュによるオプションもパラメーターとみなす)
- コントローラーではただ1つのオブジェクトだけをインスタンス変数化できる
- ビューは1つのインスタンス変数を参照し、そのオブジェクトに対するメッセージ送信のみを行うことができる(
@object.collaborator.value
は許可されない)
- ビューは1つのインスタンス変数を参照し、そのオブジェクトに対するメッセージ送信のみを行うことができる(
項目は少ないですが、方向性としてはThoughtworksアンソロジーという書籍で紹介されていた「オブジェクト指向エクササイズ」に通じるものがあります(あちらはJavaが主な対象でした)。
4つのルールとは別に、このルールを破ってもよい場合として、
- 適切な理由があると考えられる場合
- ペアプログラミングのパートナーやコードレビュアーが許可した場合
がルール0として挙げられています。
thoughtbotでは実際のプロジェクトにこのルールを適用してみたそうで、以下のような知見が得られたようです。
- ルール1 クラス内のコードが100行を超えてはならない
- Single Responsibility Principle(単一責任の原則)を徹底するようになる
- テストも100行以内に収めることを心がけたことで、1つのファイルで多くの機能をテストしすぎていたものを、よりフォーカスの定まった個別のテストに分割できた
- ルール2 メソッド内のコードが5行を超えてはならない
- メソッドを5行に収めるために、
「if〜else〜elsif〜end」のようにelseとelsifを合わせて使うことを避けるようになった(コメントで誤訳のご指摘をいただきましたので修正します。原文の意図は、if〜else〜endやif〜elsif〜endは使うけども、それらの組み合わせは5行を超えてしまうので使わない、ということのようです)else
やelsif
- 条件分岐で1行を使うのではなく、適切な名前のついたプライベートメソッドを作ってそれを呼ぶようになった
- コード片をプライベートメソッドとして抽出することで、命名が行われ、説明としても役立つようになった
- メソッドを5行に収めるために、
- ルール3 4つより多い引数をメソッドに渡すようにしてはならない(ハッシュによるオプションもパラメーターとみなす)
- Railsのビューヘルパーメソッドはとても多くの引数を要求するため、よい解決法が見つからない場合は、ルール0に立ち返り引数をそのままとした
ルール4については、実際のコードを例に詳しく説明がされています。
ルール4を適用すると、1つのコントローラーが1つのオブジェクトだけをビューに引き渡すように設計することになりますが、実際のプロジェクトでは必ずしも1つのコントローラーが1つのものを表示するとは限りません。
例えば、「トップページにアクティビティフィードと通知の数を表示する」といったようなケースも頻繁にありえます。thoughtbotではこのようなケースにFacadeパターンを適用し、アクティビティフィードと通知の数を内包したダッシュボードクラスを定義することで、コントローラーとビュー間のやり取りを単純化させることにしたようです。
詳細は、実際のコード例を見れば一目瞭然だと思いますので、ぜひ元のブログ記事も参照してみてください。
変な日本語 in the web: 東海道
やってきました変な日本語 in the web。第三回は Ruby on rails 界あるいは JavaScript MVC 界でのテックセレブ Yefuda Katzの新プロダクト『東海道』です。彼が Mac OS X での Ruby on Rails のインストールを簡単にしたい、という Kickstarter を立ち上げていたのはソーシャルメディアを通じて聞いていたものの、私自身は Ruby な人ではないので正直スルーしておりました。$25,000 のゴール設定で3月に始まったこのキャンペーンは、終了の5月の段階で 739人から $51,220 とゴールの2倍以上集めて成功しています。
キャンペーン開始の2週間後にプロジェクト名とその由来が発表、それによると東海道新幹線から来ているそうです。8月に発表されたアップデートによれば内容は:
- 静的コンパイルのバイナリビルドの Ruby
- ログ/アラート UI
- Rail 3 用のリモートノティフィケーション
- Puma Express との統合
- コード品質ツールとの統合
- バイナリビルド使用時の Bundler との問題解決と Heroku へのデプロイ
- 著名な Gem のバイナリビルド統合
と手堅い感じです。Github にあるプロジェクトページでは成果があまり見られないようですが、Google Plus 上にはスクリーンショットがあがっています。UI に関するアンケートもあがっているので、意見のある人は是非そちらに。
UI を見る限り Rails をエンジンにした IDE というのが目指すところなんでしょうか。Yefuda Katz のこれまでの実績を見れば期待していいでしょう。
温泉宿すぎる滞在型 Ruby イベントの会場 in ストックホルム
ブルガリア在住の同僚が6月15日から行われる Nordic Ruby というカンファレンスに行くというのを目にして何気なくリンクをクリックしたのですが、驚いたことに会場が半端なく和風でした。
スウェーデンのストックホルムにあるその施設の名称は、「やすらぎ(Yasuragi Hasseludden)」。Japanese Spa という説明文や写真から見ても、どうやらかなり温泉旅館な施設のようです。
カンファレンスが開かれる会議室の名前は「Fuji」。ディナーのメニューは日本食。イベントのブログには、「パートナーもご一緒にどうぞ」とか「マッサージトリートメントもいかが?」とかいうエントリーもあり、非常に楽しそうな雰囲気です。
Nordic Ruby は2010年から行われているようで、2日間の滞在型イベントとして毎年 Pivotal Labs や Engine Yard、Heroku、Github といったチームからスピーカーを招いています。来年は同じ会場ではないかもしれませんが、スケジュールもなかなか面白そうですし、チェックしてみてはいかがでしょうか?当サイトでも先日取り上げた Funconf といい、ヨーロッパの Tech 系イベントの優雅な方向性には今後も注目して行きたいところです。
過去のイベントの写真は Flickr 検索から見られます。今年は浴衣を着た Rubyists たちの写真が上がってくるのかもしれません。