Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Rails5.1時代のアプリケーション開発

 Rails5.1時代のアプリケーション開発

medbeer.rbで発表した資料です

https://medpeer.connpass.com/event/58805/

Shinichi Maeshima

June 28, 2017
Tweet

More Decks by Shinichi Maeshima

Other Decks in Technology

Transcript

  1. Rails5.1時代の
    アプリケーション開発
    @willnet

    View Slide

  2. 今日はRails5.1が
    テーマ

    View Slide

  3. みんなが興味ありそうな
    内容
    • 新機能
    • アップグレードでのハマりどころ

    View Slide

  4. ここで今日のタイムテー
    ブルを見てみましょう

    View Slide

  5. ここで今日のタイムテー
    ブルを見てみましょう

    View Slide

  6. ご清聴ありがとうござ
    いました?

    View Slide

  7. 広い視点でRails5.1
    • 昔と比べて、どうRails開発が変わってきたか
    • 最近の開発上の問題
    • この先生きのこるには

    View Slide

  8. Shinichi Maeshima
    !
    "
    #
    $
    @netwillnet
    @willnet
    http://blog.willnet.in
    2007(Rails 2.0)~
    Freelance Rails Consultant

    View Slide

  9. Rails 2.0
    class PostsController < ApplicationController
    def index
    @posts = Post.find(:all)
    respond_to do |format|
    format.html # index.html.erb
    format.xml { render :xml => @posts }
    end
    end
    # …

    View Slide

  10. (細かい所はともかく)
    あまり変わってないよ
    うにみえる

    View Slide

  11. しかしツールチェインが
    増えてる
    • 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たち

    View Slide

  12. これらの概念を覚えな
    いと開発に入れない

    View Slide

  13. ブログが15分で作れる?

    View Slide

  14. 今でも作れるけど、前
    提とされる知識量が増
    えている

    View Slide

  15. なんでこんなに増えたの
    • 昔と比べて
    • 要求されるクオリティが上がった
    • いろんなことに使われるようになった
    • 規模が大きくなった
    • それらを効率的に扱うことが求められた

    View Slide

  16. 膨大なライブラリを
    利用することで
    要求を満たすことができる

    View Slide

  17. 10年経ってできること
    が増えた

    View Slide

  18. 一人でクオリティの高い
    サービスを作れる時代に

    View Slide

  19. できることが増えた事
    による難しさの発生

    View Slide

  20. 最近の開発の難しさ
    • (学習コストが高い)
    • どのgem使えばいいの?
    • gemのメンテが止まる問題
    • 大きいRailsアプリケーションがカオスになる

    View Slide

  21. どのgem使ったらいいの
    • 基本機能はOmakaseだが実際の開発では足りない
    • 昔はRuby Toolboxがあった
    • 現状ではググるしかない
    • http://awesome-ruby.com/ は多少使えるはず

    View Slide

  22. gemのメンテが止まる問

    • いくつかの定番gemのメンテスピードが落ちてい
    る(気がする)
    • 原因はわからないけど、長年メンテしてると燃
    え尽きそうなのもわかる
    • forkすればよい?
    • 単発で改善することはできるが継続していく
    ためには覚悟が必要

    View Slide

  23. 大きいRailsアプリケー
    ションがカオスになる
    • RailsはそもそもBasecamp用のフレームワークで、
    大規模な開発は想定していない(はず)
    • MVCだけでは足りないようなケースでの、Rails
    公式のサポートは特に無い
    • trailbrazerやhanamiなどの選択肢もあるけど…
    • 頑張って秩序を保つ
    • formオブジェクトやserviceオブジェクトなど

    View Slide

  24. 問題解決しても
    新しい問題が出てくる

    View Slide

  25. ウェブ開発は難しい

    View Slide

  26. この先生きのこるには
    効率良く学ぶ必要があ

    View Slide

  27. 知見のある人のノウハウ
    を摂取する
    • 社内
    • コミュニティ
    • 技術顧問

    View Slide

  28. 本やネット上の
    記事を読む
    • 英語圏のほうが情報が圧倒的に多い
    • 洋書を読む
    • 個人が出してる電子書籍に良いものがある
    • テーマが絞られていて面白い
    • Fearless Refactoring
    • exceptional ruby など
    • ネット上の記事を読む
    • http://rubyweekly.com/

    View Slide

  29. ドキュメントやコードを
    読む
    • なるべく一次情報に当たるのがよい
    • ネット上には古い記事がたくさんある
    • 使っているgemのドキュメントやコードを読む
    • Railsのコミットを読む
    • https://rails-weekly.ongoodbits.com/
    archive
    • http://y-yagi.hatenablog.com/

    View Slide

  30. まとめ

    View Slide

  31. WEB開発はどんどん難
    しくなる

    View Slide

  32. 銀の弾丸はない

    View Slide

  33. レベルを上げて物理で
    殴ろう

    View Slide

  34. Happy Rails Life

    View Slide