medbeer.rbで発表した資料です
https://medpeer.connpass.com/event/58805/
Rails5.1時代のアプリケーション開発@willnet
View Slide
今日はRails5.1がテーマ
みんなが興味ありそうな内容• 新機能• アップグレードでのハマりどころ
ここで今日のタイムテーブルを見てみましょう
ご清聴ありがとうございました?
広い視点でRails5.1• 昔と比べて、どうRails開発が変わってきたか• 最近の開発上の問題• この先生きのこるには
Shinichi Maeshima!"#$@netwillnet@willnethttp://blog.willnet.in2007(Rails 2.0)~Freelance Rails Consultant
Rails 2.0class PostsController < ApplicationControllerdef index@posts = Post.find(:all)respond_to do |format|format.html # index.html.erbformat.xml { render :xml => @posts }endend# …
(細かい所はともかく)あまり変わってないようにみえる
しかしツールチェインが増えてる• bundler(Rails 3.0)• sprockets(Rails 3.1)• turbolinks(Rails 4.0)• jbuilder(Rails 4.0)• spring(Rails 4.1)• yarn(Rails 5.1)• webpacker(Rails 5.1)• Rails標準ではないgemたち
これらの概念を覚えないと開発に入れない
ブログが15分で作れる?
今でも作れるけど、前提とされる知識量が増えている
なんでこんなに増えたの• 昔と比べて• 要求されるクオリティが上がった• いろんなことに使われるようになった• 規模が大きくなった• それらを効率的に扱うことが求められた
膨大なライブラリを利用することで要求を満たすことができる
10年経ってできることが増えた
一人でクオリティの高いサービスを作れる時代に
できることが増えた事による難しさの発生
最近の開発の難しさ• (学習コストが高い)• どのgem使えばいいの?• gemのメンテが止まる問題• 大きいRailsアプリケーションがカオスになる
どのgem使ったらいいの• 基本機能はOmakaseだが実際の開発では足りない• 昔はRuby Toolboxがあった• 現状ではググるしかない• http://awesome-ruby.com/ は多少使えるはず
gemのメンテが止まる問題• いくつかの定番gemのメンテスピードが落ちている(気がする)• 原因はわからないけど、長年メンテしてると燃え尽きそうなのもわかる• forkすればよい?• 単発で改善することはできるが継続していくためには覚悟が必要
大きいRailsアプリケーションがカオスになる• RailsはそもそもBasecamp用のフレームワークで、大規模な開発は想定していない(はず)• MVCだけでは足りないようなケースでの、Rails公式のサポートは特に無い• trailbrazerやhanamiなどの選択肢もあるけど…• 頑張って秩序を保つ• formオブジェクトやserviceオブジェクトなど
問題解決しても新しい問題が出てくる
ウェブ開発は難しい
この先生きのこるには効率良く学ぶ必要がある
知見のある人のノウハウを摂取する• 社内• コミュニティ• 技術顧問
本やネット上の記事を読む• 英語圏のほうが情報が圧倒的に多い• 洋書を読む• 個人が出してる電子書籍に良いものがある• テーマが絞られていて面白い• Fearless Refactoring• exceptional ruby など• ネット上の記事を読む• http://rubyweekly.com/
ドキュメントやコードを読む• なるべく一次情報に当たるのがよい• ネット上には古い記事がたくさんある• 使っているgemのドキュメントやコードを読む• Railsのコミットを読む• https://rails-weekly.ongoodbits.com/archive• http://y-yagi.hatenablog.com/
まとめ
WEB開発はどんどん難しくなる
銀の弾丸はない
レベルを上げて物理で殴ろう
Happy Rails Life