Rails (OSS) パッチ会 #5

Rails 5.1.0 (現在 beta1) にアップグレードする際の警告ログについて見てたりしていた。

いまのところ以下の2つの変更に伴う警告ログが、ログ川の双璧になりうる印象。

Deprecate implicit coercion of ActiveSupport::Duration

github.com

出力されるログは以下。

DEPRECATION WARNING: Implicit coercion of ActiveSupport::Duration to a Numeric is deprecated and will raise a TypeError in Rails 5.2.

2017年3月16日追記

https://github.com/rails/rails/pull/28425 でこちらの警告ログの川は消えていた。

Deprecate the behavior of AR::Dirty inside of after_(create|update|save) callbacks

github.com

こちらの出力されるログの例。

DEPRECATION WARNING: The behavior of `attribute_changed?` inside of after callbacks will be changing in the next version of Rails. The new return value will reflect the behavior of calling the method after `save` returned (e.g. the opposite of what it returns now). To maintain the current behavior, use `saved_change_to_attribute?` instead.

アプリケーションに限らず依存 Gem でも出力されるものなので、CarrierWave に出ている PR のように見かけた警告を消して行けるとよさそう。

劇場版 ソードアート・オンライン -オーディナル・スケールを観た (2回目)

劇場版の SAO の2回目を観た。最初に観ようとしたときは自動券売機でチケットを取り忘れていたので、チケットの購入は3回目になる。

f:id:koic:20170314233837p:plain:w300

前回と変わって今回の来場者特典は100ページのオリジナル小説だったので得した気持ちだった。

箇条書きより見出しを好め

Wikiesa なんかでひたすら箇条書きで記されているのを、最近たびたび見かけるようになった気がしたので話していた、文書構造のリファクタリングテクニックとなる。

基本は一番浅い箇条書きを大見出しにして、ネストを一段ずつ下げるといったものでざっくり以下のような図解で話していた。以下の例では大見出しになったものをタイトルとしており、中見出しが一番浅い箇条に対応している。初手としてはかなり手早く手を加えることのできるテクニックのひとつだと思う。

f:id:koic:20170310153214j:plain:w300

もちろん箇条書きが良くないといったものではなく箇条として成立していればよい。良くないのは箇条の重ね書きの結果として、箇条書きの4段ネストといったものなどで、それは既に箇条として破綻していたりする。そういった structure smell を作らないように積極的に見出しを導入しておくのがひとつの解だと思っている。

広く普及していると思われる Markdown 記法を例に、文書構造の変更前と変更後についてのイメージを次の Gist に書いておいた。

gist.github.com

文書構造の実例としては書籍が参考になるが、5年半くらい前にしたスライドなんかを引用したりして話していた。文書構造については一度身につけると長く使える能力になるので早めに身につけておくのがおすすめ。

www.slideshare.net


このあたりの話がいくつか書かれているアカシックレコードを夏くらいまでを目処に掘り起こしたい。

RESTful#とは勉強会18

RESTful#とは勉強会18だった。会場はヴァル研究所さん。

rubychildren.doorkeeper.jp

前半は『Webを支える技術』の読書会。「16.7 トランザクション」を読み進めていた。ACID やトランザクション分離レベルという語彙がちらっと出てくるような、考え始めるととても奥深いテーマの回だった。

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)

後半は shokola さん謹製の課題ワークショップだった。

記事の状態をベースにした設計、Web リソースから考える設計、Hypermedia を切り口にした設計と各々異なる軸からの考え方を聞くことができて面白かった。雑談で出てきた話としては、HTML 5 から追加された <input type="submit"> での formaction 属性を知らなかったので勉強になった。