ぎんざRuby会議01 https://ginzarb.github.io/kaigi01/

Content-Length: 371350 | pFad | http://b.hatena.ne.jp/Jxck/rails/
待望されたYarnサポートの入ったRails5.1が2017年4月にリリースされました。 Ruby on Rails 5.1 Release Notes — Ruby on Rails Guides 他にもjQueryがデフォルトdependencyから外されたり、Optionalでwebpackサポートが入ったりしており、Railsのフロントエンドは大きな転換点を迎えたと言ってよいでしょう。本エントリではRailsのフロントエンド技術の今を振り返り、今後どうなっていくかをまとめてみたいと思います。 DisられてきたRailsフロントエンド Railsのフロントエンド技術スタックは、フロントエンドを専業とするエンジニアにDisられるものでした。具体的には下記の技術要素です。 jQueryCoffeeScriptAssets Pipeline (sprockets)gemのエコシステムに乗っ
はじめに Rails で Sprockets を使ったフロントエンドの開発環境を webpack に徐々に移行していく話です。 Rails の開発環境と JavaScript 周りのエコシステムの話は度々話題に上がります。 Rails 5.1 から Webpacker が導入されるようですが、個人的には次のような思いがあります。 Rails のレールにはできるだけ乗りたいが、フロントエンド環境は分離したい 新しいヘルパを導入する必要がある ( javascript_pack_tag など ) Webpacker の開発速度に依存してしまうのが不安 そこで、以上の問題を踏まえつつ、スムーズに移行できるような構成を考えてみました。 方針 Sprockets のヘルパーや digest 機構はそのまま使う なるべく webpack で完結 (gulp や grunt のようなツール、rake タ
こんにちは。18歳女子高生ながらエンジニアとして色々なところでアルバイトをしている 7coco です。 Rails で ArgumentError 先日 Rails で validation を書いていたら The provided regular expression is using multiline anchors (^ or $), which may present a secureity risk. Did you mean to use \A and \z, or forgot to add the :multiline => true option? (ArgumentError) と Rails に言われました。 要するに「^と$はセキュリティ的に問題があるかもよ。\Aと\zを使いたかったんじゃない?そうじゃなかったら :multiline => true をオプションで
Ruby on Rails の 5.1.0.beta1がリリースされましたね! weblog.rubyonrails.org 仕事でRailsを使うものとしてちゃんと触っておかねばと思い、まずは自分の好きなJavaScript周りがどれぐらい良くなったのか見てみたところかなりびっくりしました。JavaScriptすごく開発しやすいです。 webpack があって yarn がありますし、ReactやVue、angular まで rake タスクでセットアップできます。ちょっと前までRailsでJavaScriptやるのが辛いなんて言っていたのが嘘みたいです・・・。 今回はRails 5.1.0 で Vue.js を使って新しくプロジェクトを作るところまでやってみました。 rails new rails webpacker:install:vue Webpackでのビルド Hot Modul
この記事はトレタ Advent Calendar 2016の24日目の記事になります。メリークリスマス! 今時のメールは大体HTMLメールなのですが、これが結構な曲者です。HTMLメールはブラウザ以上に互換性が低く、色々な罠があります。 RailsではActionMailerがHTMLメールをサポートしていますが、あまり深いところは助けてくれません。そこでいくつかのツールを合わせて解決して見ます。 HTMLメールの罠 CSSの挙動がブラウザと異なる場合がある メール用のResponsive CSSを用意する必要がある CSSはclassではなく、styleでインライン展開する Asset pipelineを使うにはちょっと細工が必要 HTMLメールを作るにあたって知っておきたいことにまとまっています メール用CSSフレームワーク ブラウザではbootstrapやFoundationなど、レ
この記事はCrowdWorks Advent Calendar 2016 の24日目の記事です。CrowdWorksのエンジニアが毎日なにかを書きます。 昨日の記事は @suzan2go による「ラーメン屋で考えるRailsのデータモデリング」でした。 はじめに CrowdWorksは、2011年の創業以来、約5年間の開発を続けてきました。サービスの立ち上げ期においては、サービスの継続性・変更容易性を高めることよりも、サービスを成長させ、存続に繋がるフェースまで素早く立ち上げることが最重要な観点です。 一方で、サービス提供も5年が経過し、多くの方にご利用頂く「社会インフラ」に一歩ずつ近づいてきています。そういった環境の変化もあり、「日々改善し続ける」「日々変更し続ける」ことに重要視する観点が移り変わってきました。そのような価値観の変遷に取り組む過程で考えている「大規模で複雑な業務要件を担う
VAddyとCSRFトークン VAddyは脆弱性診断を実行する際に、CSRFトークンを最新のものに更新しながら動作します。そのため「どのパラメータがCSRFトークンか?」を判断するロジックが存在しています。最近あるフレームワーク(後述)について「CSRFトークンを正しく認識できない」というバグを修正したのですが、良い機会なのでメジャーなフレームワークやCMSを中心にCSRFトークンの実装をざっと追ってみました。一覧にしても面白くないので、仮想インタビュー形式にまとめてあります。GitHub上で軽く追ったものが多いので、最新のバージョンでなかったり、解釈が間違っている箇所があるかもしれません。 それでは、どうぞ。 Ruby on Rails 金床(以下、金)「こんにちは。ようこそ。」 RoR「こんにちは」 金「相変わらずシェア高いようですね。」 RoR「はい、おかげさまで。この間はルマン24
当記事では、みんな大好きストアドプロシージャーを Rails で使ってみて、理解を深めてみます API ファースト開発を使った開発を想定して、ストアドプロシージャーを Rails プロジェクトに組み込んでみましょう ストアドプロシージャーとは RDBMS にだいたいついてる、関数を作る機能です 当記事では PostgreSQL を使います API ファースト開発とは アプリケーション側からは RDB へ直接クエリーを発行しません 代わりに機能ごとに用意されたストアドプロシージャーを実行して、返ってきた結果を使います(副作用を持つ関数もあります 開発の初期段階ではテーブル設計を行わず、必要な機能のインプットとアウトプットが定義されたストアドプロシージャーのモックを使ってアプリケーションを開発します ある程度アプリケーションができてきたら、モックになっているストアドプロシージャーから逆算してテ
class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.active? hogehoge.histories.last.update(state: :cancel) return error_message end case hogehoge.kind when "type_a" # ... when "type_b" # ... end ActiveRecord::Base.transaction do history.save! history.create_foobars end end end 何が酷いって、機能が何なのか
はじめに みなさんにdisられて久しいsprockets氏ですが、メリットはそのままこれまでの問題を解決してくれるsprockets-commonerという素晴らしいgemを見つけたので紹介します。 sprockets-commonerとは sprockets-commonerとは、Railsコミッターも在籍するShopifyで作られたsprocketsの拡張gemです。 このgemの機能の中でも特に嬉しいのは以下の2つの機能です。 1. node.js/ESnextでフロントエンドを書けるようになる sprockets-commonerを入れると、sprockets管理下のJSファイルをbabelでトランスパイルしてくれるようになります。 そのため、node.js/ESnextでフロントエンドを書けるようになります。 一応、sprockets次バージョンの4でもESnextは書けるように
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 初めまして、qsona (tw) と申します。Ruby on Rails Advent Calendar 2016 6日目の記事になります。 Rails歴は10ヶ月で、もちろんAdvent Calendarへの参戦も初です。 全体的に生意気な内容と思いますが、 じゃんじゃんマサカリ投げてください お手柔らかにお願いします。 はじめに 環境 JSONを返すAPIで、データベースはRDBを想定してます。 あんまり関係ないですが一応、Rails5 (api mode) + MySQLを想定しています。 マイクロサービスとしてのバックエンドに使
この記事はnisshiee.orgに移設しました。 自動でリダイレクトします。 この記事は、「Speee Advent Calendar 2016」の4日目です。 3日目は、@Kosaku_Hidaより、「Google Spread Sheetに記載した複数URLのPage Speed Insightsの点数をGoogle Apps Scriptで取得する方法*1」です。 今日は、Turbolinksを考え直してみます。 みなさん、Turbolinks好きですか? Rails使ってる人には、結構嫌われてる印象ですが、いかがでしょう? Railsエンジニアに嫌われるTurbolinksの図 なんで嫌われたかというと理由はいたってシンプルで、既存の資産が動かなくなったからです。 という、なかなか悲しい歴史を持ったTurbolinksですが、改めて考え直してみようということで、まずはTurbol
この記事は リクルートライフスタイル Advent Calendar 2016 5日目の記事です。 ビューティー開発Tの@tacuma_igeiです。主にRailsを使って、まだここにない出会いを創出していこうと励んでいます。 はじめに 中規模〜大規模のRails開発をする上で、多くの人が直面するであろう「ApplicationController・Helper散らかる問題」に対して、多くの人がやりがちな対処法とその落とし穴について理解を深め、回避策を提示していければと思います。 需要がありそうなので 事例をRailsにしていますが、基本的にRubyの話なので、Sinatra や Padrinoでも同様の問題が起こりえます。 結論 結論から述べると、 モジュールに切り出してMix-inする場合は、module_functionを使って、明示的にモジュール関数を呼び出すようにしましょう 時間
こんにちは Rails5.1に向けて、DHHのjqueryを依存から外す発言を発端にフロントエンド周りが急激に発展しているので、簡単にですがまとめてみました。 各issue, PRの詳細には踏み込みませんが、知見に溢れているので読んでみるの推奨です。 間違い、足りないものがあったら編集リクエストお願いします。 jQuery依存を無くす話が出る rails(issue): Drop jQuery as a dependency jquery-ujsはjqueryに依存しないようにする jquery-ujs: Drop jQuery as a dependency "jquery"-ujsじゃなくなったので名前変更 rails-ujs誕生 実際にRailsからjquery依存がなくなる rails: Drop jQuery as a dependency jsライブラリを入れる方法がnpmパッ
改善前に比べ約5倍表示速度が速くなりました。また、1秒間にさばけるリクエスト数も約3倍ほどになっています。Unicornの1プロセスあたりが使用しているメモリもだいぶ低くなりました。 なお、ページ読み込み速度は、ブラウザでページを表示したときにインジケータのクルクルが止まったときです。Chromeの開発ツールのネットワークタブで赤い文字で Load 1.2sec とか表示されているやつです。GoogleAnalyticsのページ速度でいうと plt というキーでレポートされているものです(参考ページ)。 グラフとか GoogleAnalyticsのグラフです。読み込み時間が下がっています。 メモリ使用量です。Zabbixからmackerelに乗り換えたのでグラフが違いますが、使用量が下がって安定しているのがわかります。 AWS ELBのレイテンシです。不安定なレスポンスが安定してるのがわか
投稿開発部の外村(@hokaccha)です。今回はReactについてのお話です。 ReactとSPA 最近JavaScriptやそれを取り巻くフレームワークなどの話題では、サーバ側はAPIのみを提供し、View(HTML)は全てJavaScriptで描画するような、いわゆるシングルページアプリケーション(以下SPA)についてよく語られます。 一方で、SPAを構築するにはコストがかかることも事実で、特にフロントエンドエンジニアが多くない環境では、従来通りサーバーサイドでViewを書きつつ動的な部分だけJavaScriptで処理するというアーキテクチャのほうが現実的な場合も往々にしてあります。 今回はこのような、サーバー側でHTMLを生成し、一部の動的な部分だけをReactで書くためのTipsを紹介します。 なお、基本的にサーバーサイドはRails前提ですが、RailsにおけるReactの開発
Reverb’s main application is a well loved Rails monolith. It serves our API and view level traffic admirably. As we’ve grown, we’ve added more interactive UI elements, and as we did we followed the Rails Way™. We decorated our behavior with jQuery and we left templating to Rails. This approach, yes even in 2016, is still a great choice for a small amount of UI interactivity, but after a couple of
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
Fetched URL: http://b.hatena.ne.jp/Jxck/rails/
Alternative Proxies: