#laco_sushiに参加してきました。

JXA for TypeScript/Node.jsというタイトルで、JXAというAppleScriptのJavaScript版についての話しをしました。

JXA-userland/JXA: JavaScript for Automation(JXA) packages for TypeScript/Node.js.というリポジトリに作ったものをまとめています。

などを作った話をしました。


AKITA

Reactでよく聞かれること

  • 「Reduxで書くとやたらファイル数が多いのはどうすればいいですか」と聞かれる
  • Reduxを使わないとか?
  • Reduxを使わないときのステート管理は?

Vue + JXA

.vueの型について

  • .vueの型とか補完とかについて
  • VScode以外だと辛くない?(プラグインがある)
  • JXAは?
  • JXAはReact以外との組み合わせが悪い
  • PreactとかもJSXは大丈夫だけど、TSXでの型が合わなくなるとか

大規模Angular

スライド: 大規模Angular in 現場 / Large scale Angular in real world - Speaker Deck

  • 16万行のAngularコードベース
  • 結論として分けたほうがいいという話
  • ビルドが数分とか遅い(差分ビルドも遅い)
  • Reactで同じぐらい規模では数秒が差分ビルドができるけど?
  • Angularのコンパイルパイプライン?
  • ビルドが92%で止まる
  • devはuglifyを通さなくてもいいのでは
  • テンプレートの数が多い?
  • テンプレートのビルドが重たい
  • Ivyで改善しそう
  • 分けた方とかの話
    • Viewで分けるとか
    • あんまり細かく分けるとそれはそれで問題になる
    • monorepoにする?
    • yarn workspaceを使えばmonorepo自体は結構気軽になった
  • 最初から大規模になるとわかっていたので設計はちゃんとした
  • けど、大規模から分割は難しい
  • なので最初から分け方もちゃんと考えないといけない

GAE/Go/Vue SSR

Vue.jsのサーバーサイドレンダリングをGAE/Goでやる #vuejs #golang - Qiita

  • gojaでGAE/GoでSSRする
  • gojaはGoでのES5.1実装
  • fsとかそのへんがない
  • 自分でじっそうしないとSSRできない => つらい

Vue.js サーバサイドレンダリング on Cloud Functions for Firebase - Qiita

  • Cloud Functionsがでた
  • Cloud FunctionsでSSRする

Compute Engine での Node.js の実行  |  Node.js  |  Google Cloud

  • GAEでNode.jsが使えるようになった
  • GAEでSSRする
  • Memcached Cloud が使えなくてSSRのキャッシュが持てない問題(インメモリ)

scala.js

  • VectorとList こっちのほうがパフォーマンスがいい
  • ScalaだとそうかもしれないけどScala.jsだと… Scala.jsが独自に実装頑張っていてScala.jsでもパフォーマンスが違った
  • Scala 名古屋多いのなんで?
  • 名古屋方面は昔から関数型とかの地盤がある
  • ファイルサイズの問題
  • 分割はできないの?
  • sbtレベルならできる
  • JavaScript的な分割は難しい
  • Goでもwasmの対応が入った
  • LLVMじゃないので、自前でwasm吐いてる
  • Go言語でもscala.jsみたいなことできる?
  • C#のBlazorに期待してる
    • フレームワーク付きで珍しい
  • クライアントサイドのやつはC#/.NETで見られるものが多い

LightHouseについて

  • FMP、FCP、FCI、TTIなどの指標がある
  • First Meaningful Paingってどういう意味?
  • 調べた

(おすすめ: Using WebPageTest - O'Reilly Media)

  • TTIは?
  • 5秒ぐらい待ってからレンダリング開始すれば最速になるのでは?
  • Isucon対策だ
  • パフォーマンスおじさんに怒られる

Realms API

tc39/proposal-realms: ECMAScript Proposal, specs, and reference implementation for Realms

  • Stage 2になった話題のRealms API
  • Sandboxとかができる

Use cases

  • security isolation (with synchronous but coarse-grained communication channel)
  • plugins (e.g., spreadsheet functions)
  • in-browser code editors
  • server-side rendering
  • testing/mocking (e.g., jsdom)
  • in-browser transpilation

クライアントサイドでSSRできるのでは

  • 引数をhookして変換できるparameterized evaluator
  • shim
  • parameterized evaluatorは動かない
  • Zoneに欲しいこれ
  • moduleのreflectとかもあった
    • domicがだめって言って落ちた
    • そのごStage 2になった
  • MicroFrontend

JXA

JXA for TypeScript/Node.jsというタイトルで、JXAというAppleScriptのJavaScript版についての話しをしました。

JXA-userland/JXA: JavaScript for Automation(JXA) packages for TypeScript/Node.js.というリポジトリに作ったものをまとめています。

この辺をどうにかするために、リファレンス(.sdef)からTypeScriptの型定義ファイルを作るパーサとかを作りました

  • TypeScript definition file(.d.ts)を使ってWebStormやVScodeでのJXAのコード補完の実装

今日直したバグの話

回答例

正解

脆弱性情報の社内公開について

  • 扱う人が限られているとリソースの問題がでる
  • また脆弱性についての知識が共有されない
  • 重要な問題に対応できない場合がでてくる
  • 第三者機関とバグバウンティプログラムの併用について
  • バグバウンティは表からやっていることが見える

お疲れ様でした。