JSもついに最初の言語として推奨できるようになったぞ!
というBusterJSの紹介
自己紹介
- ども。KAYACでJS書いてる@kyo_agoです
- 最近はスマホ環境で色々JS書いてます
- 今回はかなり内容に主観が入ってます
はじめて覚えるのに適した言語は何か?
昔からよく語られる話題ですが、最近だとJSも入ってくるようになりましたね
ただ、本当にJSは「はじめて覚えるのに適した言語」なのでしょうか?
「はじめて覚えるのに適した言語」の条件
「はじめて覚えるのに適した言語」の条件
- 初心者向けドキュメントが豊富
- 環境構築が用意
- 汎用性が高い
「はじめて覚えるのに適した言語」の条件
- 初心者向けドキュメントが豊富
- 環境構築が用意
- 汎用性が高い
- 将来性が高い
「はじめて覚えるのに適した言語」の条件
- 初心者向けドキュメントが豊富
- 環境構築が用意
- 汎用性が高い
- 将来性が高い
- etc etc ...
「はじめて覚えるのに適した言語」の条件
- 初心者向けドキュメントが豊富
- 環境構築が用意
- 汎用性が高い
- 将来性が高い
- etc etc ...
- その言語で完結してる
「その言語で完結してる」
JSは完結しているのか?
確かにJSの完結性は高くなった
- サーバサイド
- DB内
- スマートフォンアプリ
- Windows、Macアプリ
- ブラウザ
- コンソール
- クラウド
- ...
しかし、「テスト」
今までJSのテストには他の言語のサポートが必要だった
- capybara > Ruby
- JSTAPd > Perl
- Selenium > Java
- JsTestDriver > Java
(もちろんこれ以外にも方法はあるし、JSで完結する方法もあるけど、結局このへんに行き着く)
今までJSのテストには他の言語のサポートが必要だった
テスト「まで」はいいけど、テストに行き着いたら他言語の概念、仕組みを学ぶ必要がある
これから学ぶ人に「いい方法を使うには別の言語を使う必要があります」なんて言うのか?
PHPを普段使ってて、Dを溺愛してる場合はどうすればいい?
BusterJS
TDDJS本、SinonJS書いた人が作ってる、Swarm系JavaScriptテストフレームワーク
node.js製で設定ファイル、extensionもJSで書ける
つまりJSが書ければテストフレームワークの拡張もできる
これでついにJSも最初の言語として推奨できるようになったぞ!という話
おしまい
時間があれもう一つ
SinonさんマジSinonでテストが捗る話
最近は中間部分が熱いですが、個人的に一番重要だと思うのは一番下の部分
Sinon.js
Spy, Stub, FakeTimer, FakeServer
「とりあえずざっくりテスト」をやるのに超重要
「全体が無名関数に囲まれてて、ユーザイベントで発動して、サーバから値取ったあとに、JSのアニメーションでCSSを変更する」
みたいなコードを「とりあえずざっくり」テストできるようにしてくれる
しかもテストをかなりDRYに書ける