Rails Developers Meetup 2018: Day 1 でスポンサートークをしました

Rails Developers Meetup 2018: Day 1 で株式会社永和システムマネジメントのスポンサートークをしました。@koic さんお誘い頂きありがとうございます。

 

当日発表したスライドはこちらです。

speakerdeck.com

 

 

 

スライド22枚目ytdが予想に反して反響があったためその裏話をしようと思います。

 

当時実装していたのは「連続〇〇日数」をトップページに表示するというものでした。連続ログイン日数などを想像していただけたらと思います。

トップページということもあり、毎回DBに問い合わせて値を取るとSQLの発行で重くなることが懸念され、「前日までの連続〇〇日数」を日時バッチで求めておいてDBに保存すると良いのではと考えました。

そこで前日までの連続日数を保存するカラム名の案の一つとしてcontinuous_login_until_yesterdayのようなものを考えました。しかしOracleのカラム名は30 CHAR以内です。continuous_login_until_yesterdayは32文字なのでアウト。そこで苦肉の策で出てきたのがytdです。continuous_login_until_ytdですと26文字なので30文字に収まります。

 

このように考えていたところ@koic さんからレビューを受けました。

ytd は一般的に意味が分からなくて、メンテナンスする人が大変な思いをします。

再考の結果「前日までの連続〇〇日数」をDBに保存する方針ではなく、アクセス時にDBに問い合わせて値を取る方針に変えました。SQLを見直した結果負荷をあまりかけずに済みそうだと判明したためです。

 

本編のスライドでは割愛しましたがレビューには続きがありました。

以下を熟読してくださいな (この URL 毎年伝えている) 。

http://www.clear-code.com/blog/2012/6/28.html#.E7.95.A5.E3.81.95.E3.81.AA.E3.81.84

 命名において略すことがいかに好ましくないかを学びました。このポストは定期的に何回も読み直しています。皆さんもぜひご一読ください。