『現場で使える Ruby on Rails 5速習実践ガイド』は何が実践的なのか

著者の1人である櫻井さまより恵贈賜りました『現場で使える Ruby on Railsw 5速習実践ガイド』、とても読みたかった本なので嬉しいです。ありがとうございます!

なので、駆け足で早速第一印象レビュー。

まずね、表紙が可愛い。現実に人々が生きていて生活しているんだ。そこに寄り添うのがRailsだ、抽象的なありえない線路が空中にバーっとあって電車が空に飛んでいくみたいなことはないのだ、現実は。

この記事を読んでいる方は、まずは以下のリンクから実際に本を買うところから。さあ。

現場で使える Ruby on Rails 5速習実践ガイド(特典PDF付き)

現場で使える Ruby on Rails 5速習実践ガイド(特典PDF付き)

  • 作者: 大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2018/10/19
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る
買いました?(2018年10月19日発売です!)

さて、先日「技術書展5」という技術書の同人即売会に訪れた際に小冊子を頂いて、こりゃヨサソウな序文の技術書だな?と。

何がって、以下の文が刺さりました。

アプリケーションのコードがRailsそのもののリズムに似ていれば、フレームワークの動きと衝突することなく、フレームワークを自然に活かして利用することができます。

この、Railsそのもののリズムという言葉がとても心地よく、いい響きだなと感じたのがでかいです。こういう言葉選びをする技術書は「お、どれどれ、ちょっくら読んでみようかな」という好奇心を大層くすぐられます。

Railsの基本原則をまず押さえてから、お話開始しましょうねという姿勢も引き込まれますね。そして、あなたとチームが主人公と序文の結びが来る。これは美しい構成を期待できます。

そんなわけでとても読んで見たかった本。じっくり読む前にさらっと第一印象をレビューしておきます。

構成を見渡す

大きく分けて、「入門編」「レベルアップ編」「発展編」と分かれていて、その中に3〜4つのチャプターがあります。

  • 入門編
    • Chapter 1 RailsのためのRuby入門
    • Chapter 2 Railsアプリケーションをのぞいてみよう
    • Chapter 3 タスク管理アプリケーションを作ろう
  • レベルアップ編
    • Chapter 4 現実の複雑さに対応する
    • Chapter 5 テストをはじめよう
    • Chapter 6 Railsの全体像を理解する
    • Chapter 7 機能を追加してみよう
  • 発展編
    • Chapter 8 RailsとJavaScript
    • Chapter 9 複数人でRailsアプリケーションを開発する
    • Chapter 10 Railsアプリケーションと長く付き合うために

入門編

入門編では、Ruby自体の入門からとりあえず初めてのRailsアプリを作るところまで学べる感じ。

rails newした後にディレクトリが沢山できて途方にくれがちですが、作成されたディレクト構成の詳しい解説(p.072)が載っていてとても便利です。scaffoldで作成したアプリケーションを例にとって、あとからHTTPリクエスト〜HTTPレスポンスの解説を丁寧に行なっている(p.079)のは親切でいいですね。

その前にも画面にアクセスがあった場合の流れの説明(p.069)でコードの通り道という表現が出てくるのですが、これがとてもスッと入ってくる表現で心地よかったです。細かな言い回しにまで気を遣ってますねえ。

また実際にアプリケーションを作成する際の名前付けで愛着の湧くような、分かりやすい名前をアルファベットでつけるとよいでしょう。というのは、ほんと、それなで、我々がモノ作りする上で多分一番大事なことなので、かなりポイント高い解説ですね。

サンプルアプリで、読みやすさ重視であろうslimを採用しているのも面白いと思いました。多分紙面での見栄えとしてもいい。

レベルアップ編

レベルアップ編では、より現場で使える現実的な開発のコツが紹介されています。ActiveRecordのコールバックの仕組みの絵(p.145)はよく分からなくなりがちなコールバックのタイミングが分かりやすい図になっていてとてもいいですね。一部フィルターに設定するメソッドの命名に一貫性がなくコードレビューしたくなる気持ちが芽生えたりはしました。

Chapter5のテストは、minitestを期待しましたがrspecでした。現場に寄り添うとなると、確かに無難な選択かもしれません。あくまでテスト自体理解よりも現場で使えるテストの理解を重視しているという印象を受けました。system specでのrspecも他の層と揃えているのも現場思考で確かに現実的だなという発見もありました。

Chapter6のRailsを取り巻く世界の図(p.226)もこれまた分かりやすいですねー。分かりやすい図シリーズだけがまとまったPDFを小冊子にして、印刷できるようにしたものがあったら、マジで欲しい!という気持ちになってきました。他にも運用面を考慮した現実的な知識が詰まっている章ですね。

Chapter7では、ActiveStorageでの画像アップロードの解説が載っていて、モダン〜って感じがします。後かわいい犬(カラちゃん)の写真がさりげなくサンプルに使われていてかわいいです。

Chapter8でRailsにおけるJavaScriptとの様々な付き合い方が紹介されていてバランス感覚がいい印象を受けます。rails-ujsは一体何者なんだ(p.336)という所の説明や、Turbolinksは何をしているのかという説明(p.340)、モダンJavaScript管理の仕方(p.345)など、今までありそうでなかった解説の章。とても貴重なので読み返したいです。

発展編

チーム開発における、Railsのある現場の話にフォーカスされていて、コードレビューのコツまで載っている。なんということだ、これはすごい。そして現場では必須であるバージョンアップにどう取り組むかという話がきちんと用意されていて、長く付き合うための設計のコツなどはとても参考になります。初期データやテストデータの共有(p.377)という考え方は意外と忘れがちなのですがとても大事なことなのでこうした内容に触れているのは好感が持てます。

発展編では、読書をしていたつもりが、いつの間にかチームや同僚との会話に参加しているかのような錯覚を覚える内容となっています。Railsが好きでたまらないひとたちと勉強会で語り合ったあの日々、そういう意味での現場感も感じました。

そして、Chapter10-6はすごい。アプリケーションの複雑性に立ち向かうというテーマで、より良いコードの書き方が例と共に掲載されていて、もはやこのコンテンツだけでもいいから読んでくれ〜〜という感じです。そして、私もちゃんと読み直したいです、ここ。商業本だと、こういう発展的な内容は省かれがちかと思いますが、基礎からきちんと丁寧に解説する本だからこそ入れることができたのでは?と感じました。

全体

全体的に、図と解説コードのバランスが良いのと配色が読みやすくてよかったです。改ページのタイミングもだいぶ気を遣われている様子を伺えました。

ガチで現場に寄り添った、実践的な内容を読みやすい構成で速習させてくる、タイトル通りの本だな〜という感想です。

どう?

これはどう考えても買いですね。

現場で使える Ruby on Rails 5速習実践ガイド(特典PDF付き)

現場で使える Ruby on Rails 5速習実践ガイド(特典PDF付き)

  • 作者: 大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀
  • 出版社/メーカー: マイナビ出版
  • 発売日: 2018/10/19
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

現場の底上げや、教育のシーンでも十分過ぎるほどに使えると思います。めちゃめちゃオススメ。またゆっくりと読みたいと思います。

ちなみに、今回みたいに

  1. 序文(あとがきもあれば)を読んで引き込まれるかのチェック
  2. 構成を確認して期待値を設定する
  3. 構成に沿って2の期待値を満たしてくるポイントがあるかをつまみ読みする
  4. 買うかどうか考える

ってのを、技術書の立ち読みでよくやります。このエントリーは良い本と出会うコツの指南[実践編]でもあった。

これも読もう

t2os.hatenablog.com

ppworks.hatenablog.jp

『セイチョウ・ジャーニー』読みながら考えたこと

技術書展5というイベントに行って『セイチョウ・ジャーニー』という本を買って読んでみた感想。というか、読みながら考えたことの公開メモ。

growthfaction.booth.pm

全部で5章 + おまけの章という構成。どの章も大まかな構成が揃っていて、ストーリーとそれの解説という構成がとてもわかりやすい。

第1章 ハイスコア・ボーイ

格ゲーよい。格ゲー極めてた人って、この業界でまあまあいる気がしていて、ストイックさの源泉ってなんなんだろうと思っていると、お前も格ゲーか。みたいなことがそれなりにある。てぃーびーさんも、そうだったの。

プログラミング書き始めて数年経つとウッカリ「おれってマジ最強、天才なのでは」と思いがちなわけだけども、そんなとき「おれより強い奴に会いに行く」みが発生するイベントを以下に強制的に発動させるかってのは本当に大事だと思う。

格ゲーと、そういうところがリンクしているのだろう。

余談だけど、読んでいる間ずっとジュディマリの「バーチャファイターのゾーン2ぅ〜」が脳内再生され続けてた。

第2章 スゴクナイ・ジャーニー

多分、「イキってた自分」に「他者の目線」が入ることで成長につながるチャンスを得たみたいな話だと思うんだけど、正直何言いたいのかあまり分からなかった。

各見出しに対して、その段落の内で結論なりを繋げてくれないと、さっきの見出しなんだったんだよって思ってしまう。言いたいことはすごく良かったので、イキってたころのプライドを投げ捨てて、もっと素直になって書けばいいんじゃないかなと思った。

第3章 マヨイ・ジャーニー

物語風に「技術書展」に行ったことがキッカケでナニカが変わるっていう話。一歩踏み出すことで、「今いるココ」から気付いたら「だいぶナンカ面白いココ」へたどり着いてたってのは、体験した人にしか分からない。そういう話が誰かのキッカケになるかもしれないってね、体験した人たちが話し続けることが大事。セイチョウのキッカケとなったジャーニーの始まりだったり、その旅路の話。とてもよい。

実際に、技術書展で『セイチョウ・ジャーニー』に出会ったことでツイッターを始める人がいて、リアルと繋がってて本当にいいじゃん!っていう感じがした。

第4章 言葉のセイチョウ・ジャーニー

「言葉」に注目して、その言葉を発信する側から受け取る側から意味付けを成長させていこうっていう視点は、「あるわー」というものの言語化できたことがなかったのでとても参考になった。

言葉だけでなくあらゆる事柄において、例えば対人でもそう。相手との関係性を成長させることができるのは、対峙しているこの自分、このおれだけなんだよおおってのに気づくと対人関係の問題ってほとんどが自分の問題だったりする。読みながらそういうことを考えた。

第5章 行動のハードルを低くするジャーニー

行動自体を目的としてしまうってのは、「行動」に対して億劫な状態で「おれの人生、何も変化ないぜ、\(^o^)/」って時にはとてつもなく有効だと思う。

だが、第三者から見てだいぶ色々言いたくなる状態だったりもするし、大体言われることは図星で合ってたりするので、いかにそこに意味を後付けしていくかってのは大事だと思った。でもいい、誰かからみて繋がっていない点ばかり集めてても、なんなら自分でもわかってなくても。がむしゃらに行動した結果、ついてくるものがあったりする。がむしゃらすぎてもだめだけど(どっち)

定期的にふりかえりながら、後付けでいいから理由、意味をつけていく、それが点を線としていくコツだなって思った。

付録 みんなのセイチョウ・ジャーニー

色々な著名な方々に

  • 成長とは?
  • あなたが成長にとって重要だと考えるものは?
  • 充実とは?
  • あなたが充実にとって重要だと考えものは?

という質問をして、その答えが載っているという章。読んでいて、真似してみようかな?と思ってしまったので答えてみる。

  • 成長とは?
    • 人生そのもの。
  • あなたが成長にとって重要だと考えるものは?
    • 成長したい部分に対して、楽しさを見つける。
  • 充実とは?
    • 成長を妨げない環境そのもの。
  • あなたが充実にとって重要だと考えものは?
    • 心理的安全が満たされた上で、程よいストレスがある環境。

セイチョウ・ジャーニー』めちゃめちゃよかったです。この本は成長のキッカケになる本だ。おれたちのジャーニーのキッカケになる本だ。いい書籍をありがとうございます。あと手触りが良かった。

FlexiSpot V9 が届いたので早速運動してみた

結論から先に言うと、最高。

さっそく、負荷を4にして、45分間10km走ってみた。デスクが便利!これは、なんでも出来る!(言い過ぎかも)ペダルを漕ぐ音も全然気にならない。

Apple Watchのワークアウトの「インドアバイク」を使って記録したデータはこんな感じ。

普段、ママチャリでワークアウトする時には、多摩川を以下のようなコースで1週してた。

時間や距離もだいたい同じぐらいの運動が自宅にいながら出来るのはとても良い。(川の景色の独特の良さもあるので完全に同じではない)

パッケージ寸法:823x815x318mm、製品重量:約34.5kg(大変重いので運搬時要注意!!!

届いた際の段ボールの大きさは、玄関を占領するほど。佐川のお兄さんもかなりきつそうだった。玄関のたたきから持ち上げる際には、テコの原理があってよかったと心底思った。

部屋に移動しても。圧倒的存在感を放つ。開封の際には横に倒して、上下の封を開けてから、片方を足を使って押し出さないと無理だった。出来る事なら2人で作業した方がいい。

噂の通り、組み立てはほぼ不要で天板を六角レンチで固定するだけ。六角レンチも付属している。

ペダルは自転車のアレと同じような感じ。素足で乗るのは痛そうなので、付属のカバーをつける。

デスクには、アームレストがついていて、これが大変心地よい。多分、普通のエアロバイクのようにハンドルを握るタイプよりも疲れなさそう。アームレスト付きのデスクに手を乗せて、スマートフォンをいじるなり、ノートパソコンで仕事するなり、Nintendo Switch でゲームするなりリラックスしながら運動ができる。

運動してみると、だいぶ汗をかきアームレストが汚れがちなので運動後の掃除は必須かと思う。タオルとか乗せるのもいいかも。

電池を入れるとディスプレイが使えるようになるので、走行距離数を出すようにしてみた。運動時間や消費カロリーはApple Watchのワークアウトから「インドアバイク」を選択して漕いでみた。(冒頭のやつ

色は黒がちょっと安かったので迷ったけども、白にしてよかった。それなりの大きさがあるけども白だとあまり圧迫が間がなく部屋にいい感じに収まっている。重力ブレーキキャスターというものが付いているので、運動時にはまったくブレないが載っていないときは簡単に移動ができる。素晴らしい。買う前にこのキャスター動きそうで不安定じゃないの?と心配になっていたが全く心配しないで良い感じ。

スタンディングデスクとしても使えそうなので、仕事にマジ使えるアイテム。

(余談。開封時に、キャスター付近から細かな金属片が落ちてきたり、デスクの裏が汚れていた(おそらく組み立てた人の手の汚れ)がオフィスクリーナーなどで拭き取れば綺麗になった。)

ちなみに、購入に悩んでいる際には、こちらのブログ記事を幾度となく読ませて頂いた。ありがとうございます!

nakajmg.hatenablog.com

FlexiSpot V9、買ってよかったよ。運動不足を解消するぞ!

FlexiSpot V9をついに買った

毎日リモートワークで運動不足に悩んでいたところ、同僚にだいぶ前から勧められていた FlexiSpot V9Amazon タイムセールで安くなっていたので思わずぽちった。ちょうど部屋を片付けて、空きスペースが出来たのであとは決心するだけだったところにタイムセールじゃん!

オリコのポイントも15,000ポイントほど溜まっていたので、Amazon ポイントを充填したので、21,600円。 23:35分現在、終了まで後25分ぐらい。

土曜には届くようなので楽しみです。運動不足解消するぞー!

先日までALINCOのコンフォートバイク2をタイムセールで逃してから、あの時買っておけばよかった〜〜しかし運動したいし、、、とそろそろ妥協しようと思っていたところなので、本命を買えてよかった。

同僚とリモートツーリングが出来そう。

はてなブログのCSSをgist管理する

まず、管理画面にあるデザインのCSSを

次に、gistにコピペする。

そんで、rawのURLをコピー。

f:id:naoto5959:20180829081934p:plain

RawGitにペーストして、CDNのURLを取得する。

最後に、管理画面のデザインCSSに以下のような感じで@import url(rawgitのURL);を貼る。

@import url(https://cdn.rawgit.com/ppworks/f0b51dccf84f2756d033037dbe3f0362/raw/ca5de2900c703e9a904a2c4cdc475a2424b0df0c/ppworks-hatenablog-jp.css);

なお、gist の raw URL のままだと、Content-typeの問題で外部CSSとして読み込めないので注意。raw/の後ろの文字列を消すとHEADへのリンクになるので、本当は自前でCDN用意して、更新時にinvalidateしてやるのがいいかも。

更新時には、「rawのURLをコピー。」から繰り返さないといけないので、管理画面のデザインCSSでカスケードしながら試すなりする必要はあってだるい。もしかしたら、はてなブログのAPIとかでなんとかなるだろうか。気が向いたら調べる。