YARD に --fail-on-warning オプションを追加する PR を送った

久しぶりに public リポジトリに対して PR を送ったので記録として日記を書く。

github.com

YARD は YARD 記法と呼ばれるルールでコメントを書いて付属のコマンドを実行すると綺麗なドキュメントを生成してくれる Ruby 界隈では割りとよく使われるツール。便利なので僕もよく利用するのだけど、 YARD 記法に誤りがあるともちろん出力結果がおかしくなる。正しく書けているか CI でチェックして、もし間違った書き方をしていたらテストが落ちてほしい。

しかし、 YARD はなぜかパース中に変な文字列を発見しても [warn] と stderr に出力するだけで status code は 0 で終了する。多くの CI サービスは status code を見るので、これではテストが通ってしまう。しかもヘルプメッセージを調べもそれっぽいオプションがない。マジか。

と思ったら 機能要望の issue だけが作られた状態だった。しかも “Easy” ラベルがつけられている。

面倒だなと思いつつも、いろいろなところで使っているツールでもあるし、間違いなくあった方がいい機能だと思うので一念発起して書くことにした。まぁ数年前に YARD のコードリーディングをしたことがあって、だいたいどこで何が起こっている分かっていたことも大きい。

結果としては途中 yujinakayama にテストの書き方を相談したりしつつ 1 時間くらいで書き上がって送信。マージされるといいな。

レガシーソフトウェア改善ガイド

Twitter で id:hakobe932 さんが言及しているのを見て、週末にちょうどいい具合の隙間時間があったので読んだ。

レガシーソフトウェア改善ガイド

レガシーソフトウェア改善ガイド

この本ではレガシープロジェクト(保守または拡張が困難な既存のプロジェクト)が抱える問題を説明した上で、それを改善するための技術的話題と、それを取り巻く人間の話が出てくる。開発環境をセットアップするのが困難とかドキュメントが間違ってるとか、そもそもそういうことに気を使わない同僚とか(そして気を使いすぎる同僚も)問題の一部として捉えているのが良かった。

コードがレガシーに(というのは、大雑把に言って、保守が困難に)なるには、多くの理由がありますが、ほとんどの原因は、技術ではなく人間に関係しています。

というのはその通りだと思う。(僕の周りにそういう人がいるとかそういうことを言っているわけではない)

2部からの具体的なリファクタリングの話では、リファクタリングタスクを価値(value)、難度(difficulty)、リスク(risk)の3つの軸で評価した上で、難度とリスクが低い「手がとどく果実」か、価値が高い「傷んだ箇所」に取り組みましょう、というのが良かった。これまでも暗黙的に考えてきた視点ではあるけど、明確に評価するようにすると優先順位づけの議論がスムーズになりそう。

f:id:yuku_t:20170220230759p:plain

リファクタリングすべきか、リライトすべきか、という点に関しては、それなりの分量を使っていかにリライトが良くないアイデアであるかを説明しているので、リライトを主張する人には一読してもらったうえで続きの議論をしたい。

総評としては、分量がほどほどで気軽に読めた割に、コードの品質を高めようという意識が高まったので読んで良かった。チームで読んでみるのも良さそう。

ただ残念な点として、紹介されているツールが基本的に Java プロジェクトを念頭に置いているので、そうでない環境では「Java にはこういうツールがあるんだなー」くらいの価値しかなかった。(本職の人が読んで価値がある内容かも定かでない…)

それからコードの品質を自動的に監視して、その情報をチームのメンバー全員が利用できるようにするために色々なツールの話が出てくる。その姿勢は見習いたいが、Jenkinsのセットアップ方法とかいらなかったのではないかという気がする。

下北沢の個人的おすすめスポット

2年近く住んだ下北沢を離れることになった。この街の魅力を忘れぬよう、また他の人にもより知ってもらえるよう、個人的なお気に入りスポットをピックアップして書き記そうと思う。なお下北沢駅南口側に集中しているのは、僕がそちら側に住んでいたから。

KAISO、珈琲おーるど、鉄板焼 さわ の並び

f:id:yuku_t:20170109145416j:plain

下北沢というと駅前のごちゃごちゃしたところを思い浮かべる人が多いと思うが、駅から少し離れた徒歩圏内にも素敵なお店がたくさんある。そんな下北沢の界隈でもこの一角は特に強烈な輝きを放っている。

KAISO の焼きたてバケット

開店時間の安定しない不思議なパン屋。バケットがとにかく美味しい。丸かじりで一本食べても苦にならない。現時点で僕の中で東京で一番美味しいパン屋。

f:id:yuku_t:20160618131525j:plain

パンが輝いているのが分かるだろう?

retty.me

おーるど のマスターのちょび髭

下北沢はがカフェが多くて、休日ともなるとカフェ巡りをする人でどこも賑わう。例えば ネイバーフッド アンド コーヒー (スタバ系列)なんかは人気すぎて暇つぶしにふらっと立ち寄るような感じではなくなってしまう。

その点 おーるど はいつ行っても適度で、22時30分まで開いているから夜にふと本を読みたくなった時に行くこともできる。カウンターの奥に置かれているコーヒーカップは全部違っていて、客によって使い分けているのかも知れない。

並びの写真でも分かるように、店の窓にOLDの文字でヒゲの生えた顔が描かれているが、あのままのマスターが出迎えてくれる。マスターの醸し出す雰囲気も含めて楽しめる純喫茶だ。

retty.me

さわ のブロッコリーとエビを炒めたやつ

このお店もまたどれもこれも美味しいのだが、特に「さわコース」の途中に出てくるブロッコリーとエビを炒めたやつが美味しい。これ世界で一番美味しいブロッコリー料理なのではないか?下北沢で食べたものの中で一番を選べと言われたら、僕はこのブロッコリーの炒め物を選ぶだろう。

f:id:yuku_t:20160329192813j:plain

店の雰囲気もいいし、店長もどことなくブラピに似てて、注文に応える時の「あいよ」の声が渋い。値段はそこそこするが駅前の騒がしい雰囲気から離れて落ち着いて美味しいものを食べたいならおすすめ。

retty.me

他にもいいお店がたくさん

上記3店舗はもちろん美味しいが、それ以外にも下北沢には美味しいお店がたくさんあって、一つ一つあげて言ったらきりが無い。ここでは特筆すべきお気に入りの店だけを取り上げる。

ティッチャイ のパッタイ

後述するアール工房の近くにあるタイ料理屋さん。下北沢には何件かタイ料理屋さんがあるけれど、ここが一番日本人(僕)好みのタイ料理を出してくれて美味しい。というわけで、そもそもこのお店は何を食べても美味しいが中でもパッタイが美味しかった。店員さんが楽しそうに仕事しているのもいい。

f:id:yuku_t:20170108224714j:plain

retty.me

Da Oggi のピザ

窯焼きの美味しいピザが食べられる。どれにしようか迷ってしまうが、実はお願いするとハーフアンドハーフもやってくれる。

f:id:yuku_t:20170115191541j:plain

引っ越し前の最後の晩餐を さわ と迷った挙句、僕は Da Oggi に行くことにした。それくらいお気に入りのお店。

retty.me

RBL で思いがけない本との出会いを楽しむ

f:id:yuku_t:20170115195816j:plain

RBL は最後の最後に見つけたカフェ。クイズ作家の店長(?)が執筆のために買い集めた数千冊の本が壁いっぱいに並んでいて、それを読むことができる。ソファーの固さがちょうどよくて本を片手についつい長居してしまう。金土日の午後しか空いていないという知る人ぞ知る隠れ家的スポット。

rblcafe.jp

あーる工房 の楓太

代沢三叉路から駅に向かっていく途中にある仕立て直し屋さんで、僕は靴を直してもらったことがある。

ここはお店の前に毎日店員さんの一言コメントが掲載されるのだけど、そこに毎日のように息子さん(楓太)のことを書く店員がいて、さながら成長日誌を眺めるように楽しむことができる。完全に地元民だけの楽しみなんだが、僕は特に外に用事がない日も、これを読むためにお店の前まで歩いて行った。

あまりに楓太を気に入りすぎてクリスマスに絵本をお店の前に置いていったら翌日店員さんから返事をもらえて嬉しかった。

f:id:yuku_t:20161225192508j:plain

もう楓太の成長を見守れないことが下北沢を離れるにあたっての最大の心残りかもしれない。

北沢タウンホールの空中庭園

実はバスターミナルがある北沢タウンホールの屋上に行くことができる。近所の Bookend coffee でテイクアウトしたコーヒーを片手にふらっと立ち寄りたい。

思い思いに生きている人たち

下北沢といえば東京でも何本かの指に入るくらいサブカル臭の強い街だと思う。全身ピンクのおじさん、奇抜な格好をした若者、アコーディオンを路上で弾いているおじさんとか、他の街ではなかなか見かけない人たちが、下北沢では当たり前のように歩いている。毎週土曜の夜になると駅前で漫画を読み聞かせてくれるおじさんが出没する。

都心へのアクセスの良さ

新宿と渋谷にそれぞれ電車で10分程度という立地。吉祥寺も電車で一本。

僕が高校生の頃の下北沢駅というとボロボロの駅舎に開かずの踏切があるみたいなイメージだったが、今では小田急線も地下に潜ってスッキリした。工事完了を見届けられないのが残念だ。

総評: 左京区のような住み心地

チェーン店より個人のお店がたくさんあって、この自由な雰囲気とか、繁華街が近くにあるとか、下北沢はどことなく左京区、特に京大周辺に似ていて本当に住み心地のいい街だった。

楽しい思い出をありがとう。