#child_process_sushiで最近やってたJavaScriptの設計の話をしてきた。

Fluxとかで上半分は皆やるようになったけど、ドメインモデルとかFluxの場合にビジネスロジックとかをどこに書くとかはまだ未成熟な気がしているので、そのパターンを考えててAlmin.jsというのを書いたという話をした。

Almin自体は大した実装ではないので、サンプルとかドキュメントとしてパターンについて学べるものを書いていきたいイメージ。(このアーキテクチャ話自体は、色々な言語で繰り返しやっては言語が廃れて、パターンがちょっと違う形で残るというのを繰り返している by @t_wada)

almin

JavaScriptでもウェブアプリやElectronでのアプリのような、APIを叩いて表示して終わりじゃなくて、ドメインモデルの生存期間が長いものが増えてきているのでその辺を考えていこうという話でした。

ログ

PathでのXSS - kyo_ago

明日から使える?! PATHでXSSする技術/ Shibuya.XSS techtalk #7 // Speaker Deck

の話

  • 外部からIEのドキュメントモードを落として表示できるという話
  • iframe以外でIEのドキュメントモードをダウングレードする方法があったらすごい

Angular2でニッチなやつ - 83

  • Upgrading from 1.x
  • 実際にこれをやってる話
  • Angular 1から2に上げていくパターン
  • 2にあげたものが1のコンポーネントを使うことができる
    • 実際にやると死ぬので大変
  • npmとして名前が違うので2と1は両方パッケージとして入る
  • upgrade adaptorというものがあり、これからBootStrapをよぶ必要がある
  • Angular 1
    • Service
      • いろんな機能を持ってる
    • Directive
      • コンポーネント
  • Angular 2
    • コンポーネントの方は移行完了した
  • 進捗80%で止まりそうな要因はuirouterの移行。
  • 1.xで動いてるrouterなので、2.xに移行するときのボトルネックになる
    • 1.x -> 2.x -- 2.xのルーターの世界になる

広告の話 - Jxck

  • HTTP2はRFCが出た
  • 実装 から 使う話になってきた
  • 現状の問題
    • AD問題
    • TLSの問題
    • ロードバランスの話
  • ADの問題
  • 次回はCAの話

Almin.js | JavaScriptアーキテクチャ - azu

  • Fluxとかで上半分は皆できるようになったけどドメインモデルについてはまだ未成熟

almin

  • Almin.jsはその辺を考える土台とパターンとサンプルを用意するプロジェクト
    • 実装自体はFluxと大体同じ
    • DDDとかその辺をちゃんと実装してオープンソースで読めるものがまだ少ない(JavaScriptだと特に)
  • 考えて設計して、考えるコードを書く状況をクライアントサイドJavaScriptでも作っていきたい
  • アーキテクチャは毒
    • この話も何週目 - 世界は繰り返す
  • フロントエンド/クライアントサイドでは、バックエンド/サーバサイドよりもオブジェクトの生存期間が長い
    • Gmailのメモリリークの話
    • クライアントサイドではモデルの生存する時間が数日単位とかある
  • この辺の知見はC#がやっぱり多い(クライアントサイドであるため)
  • 言語は死んでもパターンは残るのがパターンは強い
  • JavaScriptの影響を受けてiOS/Androidでも似たような話がでてたり面白い。
  • Repositoryと言ってた部分はrelayとかが代わりになったり(サーバサイドとの透過的な扱い)しそう
  • 初期化時にRepositoryとか全部のシングルトンを集めたものを作ってそれを扱うフレームワーク的にすれば、依存関係とかは常に逆になるので気にしなくてよくなりそう
    • Alminはフレームワークにはしたくなかったのでアプリ側でLocatorとかで似たような事を書いてたり

Node.js v6 - 会長

  • eater // Speaker Deck
  • テスト = プロセス分離
  • mockを始末しなくてもプロセスが死んだら死ぬ
  • テストの時にmockの解放忘れでテストが落ちるのが死ぬ
  • Async/Syncが混ざって
  • node test.js で動く
  • TJ氏
    • https://github.com/visionmedia/expresso
    • ファイルシステムとかテスト間で依存してるやつがいると死ぬ
    • RSpecとかみたいのは並列で実行するために、データベースとかも
  • ブラウザ
  • eater
    • モック前提
    • 基本は1ファイル1モック
    • サブテスト
  • deprecatedメッセージでもテスト落ちる
  • Node.jsにはログの共通インターフェースがない問題
  • 「immutableとか言ってるそうやったらmockできなくなるんじゃないの」

testのassertをASTで数えるのやつ - teppis

ビルド職人を減らしたいという話 -- vvakame

スライド: ビルド職人.md


InterSectionObserver -- koba04

最近の辛いこと - t_wada

  • deepStrictEqual がブラウザでは動かない
  • commmonjs assertはdeepEqualまでしかない
  • sindresorhus/core-assert: Node.js assert as a standalone module
  • 暗礁に乗り上げた assert.deepStrictEqual
  • ES6時代に対応したdeepEqualが必要
  • 無限Iteratorとかどうするの?
  • ESLintでキャキャやってるのすごいね
  • npm3+dedupe+依存モジュールのバージョン違い競合(estraverseとか?)+Browserifyの辛い話
    • ESLintとpower-assertでdudupeの問題が起こることもある
    • バージョン違いが存在するとネストしてインストールされる
    • ネストしてインストールされたモジュールをBrowserifyに食べさせるとなぜか絶対パスがビルドファイル内にでてくる、2つ分のファイルが読み込まれたり、dedupeできなかった問題がおきる
    • 後ろ向きな理由でJSHintを使ってる話

バッチ処理の依存関係定義が辛い - joker1007


Child Processおめでとうございます。