entry-header-eye-catch.html
entry-title-container.html

entry-header-author-info.html
Article by

「現場で使えるRuby on Rails5速習実践ガイド」は現場で使える! #現場rails

こんにちは。@saki です。 pixivFACTORYチームでRuby on Rails(以下Rails)による開発と、チームのリーダーとして開発案件のマネジメントを担当しています。 さて先日、「現場で使えるRuby on Rails速習実践ガイド」を著者よりご恵投いただきました。この場を借りてお礼申し上げます。 あわせて本書のレビュー依頼もいただいたので、せっかくならばと「本当に現場でつかえるのか?」という目線で読んだ結果を紹介したいと思います。

印象

Rails の書籍は数多く出版されていますが、本書は「現場で使える」とあるように入門書でありながら開発現場で実際に活用できるような方向で記載されています。実際に序文には下記のようにありました。

本書は、Ruby on Rails(以下Rails)を使ってWebアプリケーションを開発するための手引書です。Railsの機能や使い方を説明するだけでなく、著者たちが開発現場での経緯を通じて得た「Railsをどう使うのが良いか」についての実践的な知見を紹介しようと試みています。

業務などでRailsのアプリケーションを開発・運用する人がHowToだけではなく、現場で実際に使える考え方もセットで学ぶことができそうです。

本書は入門編、レベルアップ編、発展編の3部構成となっています。それらの中で特に開発現場にいるものとして強く共感した点について触れていきます。

入門編

Chapter1〜Chapter3は入門編となっており、RubyやRailsが初めての方でもインストールのしかたから、プログラミングの基本的な考え方までを学ぶことができます。

その中で、テンプレートエンジンに Slim を選んでいるところ(P.86)が個人的に強く印象に残りました。 Railsは標準のテンプレートエンジンにERBを採用していますが、現在はSlimやHamlを採用しているアプリケーションも少なくありません。実際、pixivFACTORYでもSlimを採用しています。その視点から見て、追加のインストールがあっても最初からSlimを使うというのは実践的といえそうです。

レベルアップ編

Chapter4〜Chapter7はレベルアップ編となっており、一般的なサービスに不可欠な要素の開発手法が紹介されています。 入力内容の検証、ログイン機能、多言語対応、セキュリティ対応などRails Wayに従った対応手順となっています。

その中でも Chapter7-1 「登録や編集の前に確認画面をはさむ」(P.286)が素晴らしかったのでぜひとも触れさせてください。

実際にサービスを開発しているとよくある要件のひとつが「登録前の確認画面をつくる」だと考えています。例えばユーザー登録する場合に、フォーム画面で入力した内容を次の画面で表示し、確認してもらってから登録するというものです。Rails はCRUDに対応させControllerの基本的なアクションを定めています。 new / create / index / show / edit / update / destroy です。これは非常にシンプルで扱いやすい考え方なのですが、確認画面を実装しようとした場合、なかなかに悩みます。フォーム画面は new、登録処理は create なのですが、確認画面用のアクションは定義されていないためです。 本書ではその課題に対し、ひとつの実装例が紹介されています。確認画面を表示する前に入力エラーが見つかった場合はどうすればよいか、確認画面から「戻る」ボタンを押された場合の処理をどう実装するとよいか、など実際に考えるべきことが細部までまとまっており、実用的です。確認画面の実装方法はいくつかあると考えていますが、本書の方法をきっかけにそのサービスに適した手法を考えられるとよさそうです。

発展編

最後のChapter8〜Chapter10は発展編となっており、より開発現場的な深さにアプローチしています。その中でも Chapter10 「Railsアプリケーションと長く付き合うために」は、Railsによる開発を6年間してきた私にとって強く共感できる章でした。

RailsはRails Wayという規約に沿ってシンプルに開発できるフレームワークですが、開発が継続するにつれて積み上がる要件により複雑なコードを作ってしまうことがあります。たいていのサービスは継続的に運用や開発が進行されるため、複雑なままでは開発速度の低下や不具合が発生しやすくなるなどの損失となってしまいます。 それのヒントになるのがChapter10-6 「アプリケーションの複雑性に立ち向かう」(P.397)でしょう。Chapter10-6では複雑にしてしまったコードに向き合うための考え方が紹介されており、頻出例をベースに実用的な手法が得られます。ただ最終的なコードが示されるのではなく、取り掛かるプロセスについても明示的に言及されていることが個人的に重要と考えています。私も今までの開発でさまざまな複雑性を経験したのですが、そこでぼんやりと抱いていたことが体系的にまとまった文章となっていて、非常に素晴らしい章でした。

まとめ

拝読した感想ですが、この本を読めばプログラミング未経験だけど、コードを書いてサービスを良くしたいと思っている人にもぴったりだと思いました。

たとえば弊社では、ディレクターやCSなどのビジネス職の方にもコミット権があり、コードを書いてPull Requestを送ることができます。

https://inside.pixiv.blog/tsubo/2842

今までは各人の独学に頼る部分が多かったのですが、この本を読むことでプログラミング未経験者でもスムーズにサービス改善を始めることができるので、大変有用だと思いました。

ちなみに、弊社ではサポートエンジニアの採用を行っております。コードを書いてサービスの改善や日々の業務効率化を図りたい方をお待ちしております!

https://recruit.jobcan.jp/pixiv/show/b001/18646

20191219021514
saki
2017年入社。広告事業のテックリードとプロダクトオーナーをしています。よくいる領域は開発xビジネス。好きなものはRubyとプリティーシリーズ。