#副本部長_sushi で描画、音、文章など色々なテストの話をした
#副本部長_sushi
というイベントをしたのでそれのログです。
ロジック、E2E、描画、音、動画、Example、文章 - 色々なJSテストというタイトルで発表してきました。 タイトル通り、最近やったようなテスト事例をひたすら書いてる感じです。
自分の中で結構気に入ってるのがNodeライブラリなどをexampleテスト(勝手に付けた)をするというパターン。
- exampleというディレクトリを作って
- ライブラリを
npm i -S ../
でローカルモジュールとしてインストール - example.jsなどとしてサンプルコードを書く
- 実際に動かして正常終了する
というのをテストするパターンです。
スモークテストかとかそういうたぐいのもので、テストが書きにくいものでも不安感を解消できたり、package.jsonの間違いなどに気づいたり、実際に動くサンプルコードが出来上がるという副産物もあります。
実際にブラウザを動かして確認するテストは今なら結構selenium-webdriverなどを使って書けるようになってきてるので、その辺は工夫でどうにかなるパターンも多いのではないかと思います。
とりあえずCIで動かすようにしてみようというのがはじめの第一歩としていいような気がしています。
もう一つ、Visualize TC39 Processというのも発表しました。
これはES nextの策定プロセスを分かりやすくまとめた記事 · Issue #57 · azu/azuの調査中に出来た副産物のようなものでおまけ的な感じです。
Node.js forkについて - 会長
#副本部長_sushi Node.js forkたち - io.js会長
— azu (@azu_re) July 27, 2015
- zpao/spidernode
- JXcore · a Node.JS distribution with additional features
- Microsoft/node
- JerryScript + IoT.js
JerryScript : JavaScriptエンジン IoT.js : Node.jsみたなフレームワーク
Railsで学ぶウェブセキュリティ - jxck
#副本部長_sushi Railsで見ていくウェブセキュリティ
— azu (@azu_re) July 27, 2015
- Railsのデフォルトの設定などから学ぶウェブセキュリティについて
X-Xss-Protection: 1; mode=block
について
- IE だとデフォルトでXSSフィルタは有効
- だけど、デフォルトの設定ではフィルタした部分を
###
とする- これを悪用したようなXSSがある IE8 XSS Filterの仕様が微妙に変更されていた。 - 葉っぱ日記
-
mode=block
を付けることで、###
ではなくページを真っ白にする - 安全に倒すために
X-Xss-Protection: 1; mode=block
としてる
#副本部長_sushi 副本部長によるsecure-handlebarsの話。
yahooのやつ
— azu (@azu_re) July 27, 2015
- Safe JavaScript Templating
- secure-handlebarsはAutomatic Contextual Escapingを実装してる
- Automatic Contextual EscapingといえばClosure Templates
- 今はAutomatic Contextual Escapingではなく型によるセキュリティを実現してる
TypeScript + core.jsのcompat table
- core-js and TypeScript - how do these fit together? · Issue #3956 · Microsoft/TypeScript
- TypeScript + core.js invalid? · Issue #581 · kangax/compat-table
の問題
#副本部長_sushi MSの言い分 型付言語としては、コンパイルが通る + 変換の2段階がある。
TypeScriptとしてはcore.jsのやつも型のコンパイルは通る-> なのでcompat%あげてよ
— azu (@azu_re) July 27, 2015
Browserifyとes6 modules
#副本部長_sushi 「今後我々はBrowserifyを脱出していくのか」元CTO
— azu (@azu_re) July 27, 2015
scala.js - kyo_ago
Fluxを使ったScalaJSの二層式フロントエンド #jsオジサン
- 「サーバサイドの実装が終わってもフロントエンドの実装待ちでリリースできない」を減らしたいのと、DDDでやりたい。
- クライアントサイドとサーバサイドのscalaのコードを共有するのが目的ではない
- フロントエンドとバックエンドの定義は https://speakerdeck.com/koichik/isomorphic-survival-guide この辺
- フロントエンドのフロントエンド と フロントエンドのバックエンド(こっちがscala.js)の二層式的なアーキテクチャ
- これはReact(Flux)がある程度前提のアーキテクチャ
- フロントエンドのバックエンドはscala.jsで書けるようなweb workerで動くようなpureなjsの世界
- フロントエンドのフロントエンド <-> フロントエンドのバックエンド をpostMessageでメッセージでやり取り
- メッセージパッシングで若干複雑なコードがでてくるかもだけど、実行コスト自体はそこまででもないはず
- こういうアーキテクチャでやることで、サーバを書いてる人がフロントエンドのバックエンドもscala.jsで透過的に書けるように
- 人材リソースの共有が目的の一つ(not コードシェア)
- 別にscalaでなくてもよくてDDDの環境として、scalaが適当であったのでscala.js
- (最初はTypeScript予定だったけど、TypeScriptでDDD環境が)
その他
- 雑誌とかで技術的な記事はスピードが問題になってる。
- 文章に落とす部分がコスト高い -> podcastやインタビューがコンテンツになっていってる?
- 口伝っぽい
#副本部長_sushi 書籍のモデル、サブスクリプションモデル、口伝としてのポッドキャスト
— azu (@azu_re) July 27, 2015
#副本部長_sushi 技術書のゴーストライターモデル。
原作とイラスト
— azu (@azu_re) July 27, 2015
副本部長おめでとうございます。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。