31
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JavaScript on Rails

Last updated at Posted at 2016-01-30

前提

  • 小さめのプロダクト
  • スピード大事
  • 対象のチーム
    • クライアントサイド専属の人がいない
    • JavaScriptに詳しいひとがいない
    • JavaScript界隈の流行を過度に追わない判断をした

Railに乗ろう

  • Rails公式としては「控えめなJavaScript」を推奨している
  • 公式のは控えめすぎるので「クックパッドモデル」を採用する
    • ECMAScript6 (ES6, ES2015) のシンタックスを使う
    • モジュールの依存解決にCommonJS Modules (もしくはES6 Modules) を使う
    • フロントエンドのライブラリ管理にnpmを使う
  • クックパッドモデルの最小構成

Web & Native Apps

  • クックパッドモデルはGoogleのクローラにもやさしいのでメディア系のサービスに向いている
  • ネイティブアプリ向けにionicを使う場合、うまく CommonJS Module 化すればコードベースの共有ができる
  • Basecamp謹製のハイブリットアプリフレームワークが公開されている

テスト

  • テストがなくても問題ないくらいJavaScriptは薄しておく
    • Non Single Page Application
    • ページ遷移しろ
    • そもそもフルスタックのjsフレームワークが必要な事態が異常やったんや
  • でもテストはかけるようにしておく
    • Unitテストを走らせるならNodeで
    • 大事なところはPhantomJSから固めにいく

学習コスト

  • AltJSやクライアントサイドフレームワークに比べると前提知識が少ない
  • ES2015なら完全な後方互換性があるのでES5の知識は生きる
  • ES5そんなに知らない人もES2015は未来の標準なので知っておいて損はない
    • そのうちプリコンパイラをかませなくてもそのままブラウザで動くようになるんやで

開発ツール

  • IDEの恩恵にガンガンあずかっていく
    • IntelliJ
    • 共通の EditorConfig, lint

所感

  • バイバイ CoffeeScript
    • 感慨深い
    • ES2015に受け継がれてる部分も多いので寂しくなんかないよ
    • 雑にテストを書くときには依然重宝するのでこれからもお世話になります
  • Turbolinksが扱いやすい
    • 正しい指針があるのは説明コストが低くてよい
    • もちろん雑に書く人は予期せぬ挙動に悩まされることになる
  • ES2015のテンプレートリテラルは薄いjsにも有用
  • ES5の変態js文化から開放される
    • モジュールある
    • クロージャ乱用しなくて済む

参考文献

31
29
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?