#reactsushi でESLintとtextlintの設計について話してきた
#reactsushi
#reactsushiをしてきたのでそれのメモです。
これが #reactsushi pic.twitter.com/PFSYoyp2R5
— Yosuke FURUKAWA (@yosuke_furukawa) January 14, 2015
ハイライト
Truly Isomorphic
io.js 1.0.0リリース
- io.jsのロゴは何時決まったの?
fs.exists()
とfs.existsSync()
はなぜDeprecatedになったの?- fs: deprecate exists() and existsSync() · 5678595 · iojs/io.js
- 解決してる問題が少ない
- Expressが使いまくってる
- 代わりに
fs.access()
やfs.stat()
が使える - fs: add access() and accessSync() by cjihrig · Pull Request #8714 · joyent/node
- が、Deprecatedから戻った(1.0以降で扱うことに)
- fs: undeprecate exists() and existsSync() · 3a85eac · iojs/io.js
- Node.jsの初期のAPI設計の問題?
textlintから学んだこと
#reactsushi LT! pic.twitter.com/2HRAShqJEp
— Toru Kobayashi (@koba04) January 14, 2015
- 電子書籍開発環境のセットが欲しい
- CI、Lint、PDFなどの自動化
- Promise本はAsciidoc => Promise本で取り組んだ電子書籍の開発ツール、CI、継続的リリースについて | Web Scratch
- LeanpubのMarkuaが早く公開されて欲しい。
- d.tsの管理をどうしているか?
- モジュール分離しても、共通のインターフェースのオブジェクトを扱いたい
- その部分を定義した不完全なd.tsを共有したい
- dtsmを使う? npmを使う? 手動コピー?
- TypeScript - dtsmのご紹介 - Qiita
- azu/intelli-espower-loaderのdirectories.testについて
React / Flux を実案件で使ってみた
#reactsushi t-wadaさんの発表 pic.twitter.com/ELcFiP2VyQ
— azu (@azu_re) January 14, 2015
- デザイナーとの分業(JSX)
- JSXにはHTMLが大体そのままあるのでちょっとクラスを足す程度ならできた
- ただ微妙にHTMLと違うところもあるので特殊
- 開発者へのReact導入ガイド
- nodebrew install -> npm install -> npm run
- 3ステップで始められるようにした
- Virtual DOMの恩恵
- React(Virtual DOM)が高速化のために使うというのは誤解
- 構造的なデータをそのまま投げても速度的にもまあまあ大丈夫な設計が可能になった
- 設計的なプラスのメリットが大きい
- 速度的にDOM職人が丹精込めて作成したDOMよりもVirtual DOMが早いというのはない
- DOM職人が必要なのはゲーム等の世界
- 一般的な所では設計的なメリットが大きいのでは
- Virtual DOMのサーバサイドレンダリング
- Renderは収縮気味
- reactjs/react-rails - Reactが一応公式で管理
- つよそう
- ExecJSを使ってReactからHTMLを作る
- SEOを意識したサイトだとサーバサイドレンダリングが強そう
- sprockets
- ES6 by josh · Pull Request #682 · sstephenson/sprockets
- 6to5がsprockets 4に入った(今3のβ…)
- 6to5だとJSXも扱える
- sprocketsはRailsのバージョンに沿ってる訳ではない
- バリデーションナイト
- isomorphicの例でよく出てくる
- サーバのコアに欲しいバリデーションとフロントのバリデーションは少し趣旨が違うのでは?
- このケースの場合にバリデーションしているのはAPIのモデルという感じになってるいるのでは
- Javaの実装からJSON Schemaを吐いてバリデーションする話(固い言語の実装を正としてバリデーション)
- Truly Isomorphic
- View層のみを共有するのが真のisomorphicという訳ではない
- Truly Isomorphicとは
- ドキュメントの話
- JSDoc書いてる?
- IDE使う人程恩恵があるのでJSDocとか書くようになる
- PhpStormは特にそういう効果があって、プロジェクトの人が皆書くようになった話
- Example
- ドキュメントのサンプルをどうするかの問題
- JSDocに@exampleで書くのは冗長
- golangのexampleテストがかっこいい
- DocTestのような形式でサンプルもテストになればいいのでは
- AmpersandJS/ampは
example.js
というものがドキュメントに埋め込まれるようになってる - RSpecとかもそういう感じ
#reactsushi 会長「truly isomorphic は view だけではない」
— azu (@azu_re) January 14, 2015
#reactsushi 2015 Jan
#reactsushi 基調講演だ pic.twitter.com/0aAsdIWe5a
— azu (@azu_re) January 14, 2015
- React 0.13について
- Marionette
- Vue.js
- 作者さんがMeteorの人になったしどうなるんだろ?
- EmberのFastBoot
- vdomとは微妙に違うアプロード
- htmlbars テンプレートをDOM APIで組み立てられるようにする
- simple-dom
- クライアントサイドMV*ライブラリ
- データバインディング的なライブラリが一斉にvDOM実装へ移動してる
- 正しい気がする
最近のFlowtype事情とReact+Flowtype連携
- 最近は大きな変化はリリースされてない
- 現時点ではReact+Flowは制限が色々あり現実的ではない
- Prop Validationは便利
- propTypesのチェックツールとして使える
Break the Web: Object static methods no longer throw errors for primitives!
Object.keys
等の仕様ES6では変更された- プリミティブ値ではエラーを投げなくなった
- 4.1 Object.freeze
- 4.8 Consider if Object.assign should silently ignore null/undefined sources
- 何で仕様変わったんだろ
- polyfill
Object.keys
のpolyfillとした場合ES5とES6で挙動違うはず- Financial-Times/polyfill-serviceもES5のpolyfillになってる
- compat tableおじさんのお仕事
assert
ライブラリ郡がこの挙動に依存してたのを修正
- ^あわせて Introducing Break the Web: Array extra methods case // Speaker Deck
- ES6 moduleをサポートしてるかを判定する方法はあるのか?
学び
#reactsushi 「ちゃんと書いても壊れる」
— azu (@azu_re) January 14, 2015
一人React.js Advent Calendar 2014 - Qiita完走おめでとうございます。
お疲れ様でした。
お知らせ欄
JavaScript Primerの書籍版がAmazonで購入できます。
JavaScriptに関する最新情報は週一でJSer.infoを更新しています。
GitHub Sponsorsでの支援を募集しています。