よちよち.rb 第103回 #yochiyochirb

ただいま!!
…という気分です。

このブログでのよちよち.rb参加記録は第58回で止まってしまっていました。
よちよち.rb 第58回 #yochiyochirb - プログラミングお勉強記録

その後も参加したりしなかったりだったのですが、参加したときの記録までつけることができなかったので、
年が変わったことをいいことに、再開させたいと思います。

はてな記法忘れてしまった。。

エクストリームフィッシュボールでペアプロスクレイピング

最近のよちよち.rbはペアプロRubyスクリプトを書いています。
参加者でペアを組んで、できたペアごとに6〜7分くらいずつで順番をまわしていきます。
順番がきたペアは、みんなが見られるスクリーンおよびディスプレイにコンソールおよびエディタをうつして、プログラミングします。
ペアはドライバーとナビゲーターから成っていて、ドライバーが「今からこんな実装をしたいと思います!」とか宣言しながら手を動かし、ナビゲーターがフォローします。
基本的にはペアのなかで解決していくもので、周りからああだこうだ言わない(質問はしてもいいのかな)ほうがいいようです。
時間がきたところでコミットをプッシュして、次のペアに残りの作業を託します。

やりたかったことは、Googleで「よちよち.rb」と検索して、一番最初にあがってくる検索結果のリンク先を表示する、というもの。

今回、めでたく完成して、よちよち.rbのリポジトリにマージされました!
Scrapingするスクリプトを作成する by shakemurasan · Pull Request #1236 · yochiyochirb/meetups · GitHub

明日の自分のためにコメントを残す

こまめに順番をまわしてプログラミングをしていったので、意図を伝えてコードリーディングの時間を短縮するためにも、コメントはとても重要だと思いました。
書いているその時はわかっているつもりでも、あとから(例えば明日とか)見ると、書いた本人でさえなんだっけってなるもので。

参考になるなと思ったのは、15行目のコメント。
取得されるオブジェクトのクラス名を書いておいてあげると、メソッドなど調べやすくなるという理由で追加された、

# class が r のリンク(Mechanize::Page::Link)を取得する

という部分です。

コード規約的な話とか

実装したかったことは全部できた!となったあと、少し余裕があったのでリファクタリングもしました。
そのなかで、変数名をわかりやすく変更したり、カッコの前後のスペースとか改行のことなども話題になりました。
他の言語での経験はあるけどRubyはこれから、という
参加者の方から規約はありますかという声があがっていたけれど、
他の言語だとけっこうしっかり「こう書きましょう」みたいなのがあるものなのでしょうか。
私は仕事のときは先輩のコードを見て真似したり、レビューしてもらったりしているなかで「こういうものか」的に少しずつ覚えているけれど、
始めた頃は本によって書き方ちょっと違ったりすると混乱していたように思います。

ブロックをdoとendで囲むか、波カッコで囲むかについては、ちょうど別で参加している読書会で話題になったところでした。

初めてのRuby

初めてのRuby

こちらの本の36ページにあるコラムのなかで、

筆者はイテレータには do end を、ブロックによるリソース管理 * を行う場合は波括弧を利用するように しています。Rubyプログラムではやはりendが主役ですので、波括弧という異質な記号は目立ちます。そこで敢 えて波括弧を使うことで、リソース管理という重要な情報を目立たせたいのです。

という記述があります。
私は波カッコで囲むのは1行で書く時が多いのかなという”感覚”だったので、このコラムは印象的でした。

次回

永和システムマネジメントさんで開催予定とのこと。