ブックマーク / blog.anatoo.jp (4)

  • WasmでJavaScriptを動かす意義 - id:anatooのブログ

    ある時Twitterのタイムラインを見ていたら、「JavaScriptWasm化して動かす意味がわからない」というような意見を見かけました。JavaScriptはブラウザに搭載されているV8のようなJavaScriptエンジンによって高速に動作するので、わざわざWasm化してもパフォーマンスは劣化するのになぜなのか?という話なんですが、これは「Wasm化=パフォーマンスのため」という考えだと意義がわからないのでこの記事ではそれについて解説します。 JavaScriptWasm化して動かすツールやライブラリとしては、Shopifyが開発しているJavyやquickjs-emscriptenなどがあります。JavaScriptWasm化して動かすためには、ある特定のJavaScriptエンジンをWasm向けにビルドして動かす必要がありますが、そのような用途ではQuickJSというJava

    WasmでJavaScriptを動かす意義 - id:anatooのブログ
    l08084
    l08084 2023/01/18
  • GraphQLのAPIを開発する時、スキーマ駆動開発をやめた話 - id:anatooのブログ

    GraphQLAPIをNode.jsで開発する時に、スキーマ駆動開発をやってみたものの、途中でしんどくなってやめて最終的にはGraphQL Nexusに乗り換えた。 スキーマ駆動開発とは ここでいうGraphQLのスキーマ駆動開発というのは大まかに言うと、次のようなワークフローを指す。 GraphQLのスキーマを記述する GraphQLスキーマを元に、サーバ側の実装とクライアント側を実装する 実際に自分がGraphQLAPIをNode.js+TypeScript+Apollo Serverで構築したときには、GraphQLAPIを追加する際の具体的なワークフローとしては次のようになった。 GraphQLのスキーマを記述する graphql-code-generatorを使ってスキーマからリゾルバのTypeScript型定義を自動生成する リゾルバの型定義にしたがって、サーバ側のAPI

    GraphQLのAPIを開発する時、スキーマ駆動開発をやめた話 - id:anatooのブログ
  • Netlifyが日本からだと遅い - id:anatooのブログ

    仕事Netlify にデプロイしたSPAの読み込みが遅いので原因を調査してほしい、という依頼を受けてウェブパフォーマンス調査を行った。顧客から許可をもらって、この記事ではNetlifyに対してどういう調査をしたのかを書く。 結論だけをまず書くと、NetlifyのCDNのファイル配信パフォーマンスは日国内からだと非常に悪い。パフォーマンスを改善させるためには、Netlifyに直接アクセスさせるのではなく、前段に他のCDNやキャッシュサーバを挟んだりするほうがいいだろう。 調査の前提 日国内からのみの調査 サイトには静的なファイルをデプロイしているのみ 該当するNetlifyにデプロイしたSPAをブラウザで試しに開いてみると、確かに初回の読み込みのパフォーマンスがめちゃくちゃ悪い。 Chrome Devtoolsを開いてネットワークタブでどういうふうにリソースの読み込みを行っているのか

    Netlifyが日本からだと遅い - id:anatooのブログ
    l08084
    l08084 2020/08/03
  • TypeScriptの関数でDIパターン - id:anatooのブログ

    Node.js+TypeScriptでバックエンドを書いてると、DIパターンを使いたい場面が結構ある。 いわゆるDIと言うとコンストラクタインジェクションなどクラスありきの方法が思い浮かぶけれども、実際には関数でもDIパターンを書くことができる。単純に関数のパラメータに依存を受け取ればよい。 // 依存を表現する型 interface Deps { appService: AppServiceInterface; } // DIパターンを記述する関数 function DoSomething({appService}: Deps, params: any) { ... } 依存を注入する場合には、引数を部分適用するbind()メソッドを使う。 // 依存を注入 const doSomething = DoSomething.bind(null, { appService: new MyAp

    TypeScriptの関数でDIパターン - id:anatooのブログ
    l08084
    l08084 2020/07/15
  • 1