虎の穴開発室ブログ

虎の穴ラボ株式会社所属のエンジニアが書く技術ブログです

MENU

【JavaScript】Deno についてのLT会 toranoana.deno #15 を開催しました【TypeScript】

皆さんこんにちは、虎の穴ラボのおっくんです。

2024年 2月 14日 (水) に Deno についてのLT会 『toranoana.deno #15』を開催しました。

yumenosora.connpass.com

イベント紹介

虎の穴ラボで、Deno の勉強会を開催する意図や、会社の案内をさせていただいています。

資料はこちらです。

speakerdeck.com

配信はアーカイブで視聴することも可能です。

youtube.com

開催概要

時間 内容 発表者
19:30〜19:35 虎の穴ラボについて 虎の穴ラボ 奥谷
19:35〜19:50 WebGPUで遊ぼう 虎の穴ラボ 藤原
19:50〜20:05 Lumeによる静的サイトの作成 kbaba1001
20:05〜20:20 DenoとHonoでWebAuthnを使ったログインを実装する ayame113
20:20〜20:35 GitHub Releasesのダウンローダを作った NagayamaRyoga
20:35〜20:40 閉会の挨拶
20:40 終了予定

LT レポート

各LTの内容についてレポートします。

WebGPUで遊ぼう 虎の穴ラボ 藤原

speakerdeck.com

Deno 1.39で復活した「WebGPU」に関する発表でした。

ポイントは次のとおりです。

  • リリースノートに記載の内容には省略と少し誤りがあって、補ってあげることが必要
  • getContextの処理以降は、イベントルループを除いてWeb標準なAPIだけで記述ができた
  • もちろん3D表示もシェーダー(WGSL)を書いていくことで、対応できる
  • ゲームエンジンとの相性も良さそう。

具体的な使用方法/手順も示され、注意事項などもフォローされた発表でした。 興味がある方はぜひ試してみてください。

Lumeによる静的サイトの作成 kbaba1001 さん

speakerdeck.com

静的サイトジェネレータ「Lume」についての発表でした。

lume.land

ポイントは次のとおりです。

  • Plugin が豊富(RSS配信、サイト内検索等)
  • 自社のコーポレートサイトでもLumeを使用している
  • 癖が少なく、Deno さえ動けば動作するので、非エンジニアでも動かすのが容易
  • 公式サイトは良くなってきているものの、ドキュメントは少なく日本語情報は皆無
  • フロントエンドJSは少々書きづらい
  • たまに破壊的な変更がある(テンプレートエンジンの変更など)

実運用されているコーポレートサイトでの適用実績もあるということで、興味深い発表でした。 Denoさえ動けば良いというハードルの低さで非エンジニアとの協業しやすいというのは、Deno Fest の特設サイトにFreshを使用した経験もあり、非常に共感できました。

DenoとHonoでWebAuthnを使ったログインを実装する ayame113 さん

speakerdeck.com

FreshとHono を組み合わせたサイトで、WebAuthn(Passkey) を導入した事例についてのお話でした。

ポイントは次のとおりです。

  • 開発基盤にDeno、デプロイ先にDeno Deployを採用
  • Fresh + API部分を HonoのRPCモードを使用
    • FreshとHonoの相性が良い
      • 独自拡張がないRequest オブジェクトを受け取って、独自拡張がないResponseオブジェクトを返すという点で
        FreshのハンドラーもHonoのハンドラーも互換性があり、そのまま Fresh => Hono につなぎ込みができる
    • HonoのRPCモードは便利
  • 認証ライブラリは、Firebase Authentication
  • データベースは、Deno.KVを使用
    • WebAuthn で取り扱う Uint8Arrayなどデータ文字列エンコードせずに取り扱える。
  • WebAuthn の取り扱い方にはいくつか選択肢があり、参照資料には困った。

目にすることも多くなってきた WebAuthnを導入した事例についての詰まりポイントも含め、発表いただけました。 同じようにWebAuthnに取り組みたい場合には、参考になるのではと思います。 Uinit8ArrayなどのJSオブジェクトを直接保存できるDeno.KVの利点もよくわかるものでした。

GitHub Releasesのダウンローダを作った NagayamaRyoga さん

Deno を実行基盤に Github Releases をターゲットにしたダウンローダー gh-red についてのお話でした。

github.com

ポイントは次のとおりです。

  • インストール・管理方法の検討
  • GitHub Releases に各種OS・実行環境向けにビルドされたバイナリが登録されているケースがある
    • これを使うとCargo を入れていなくてもRustで開発されたツールを使うことができる
  • これを踏まえ、 GitHub Releases からOSとCPUアーキテクチャに基づいて、バイナリをダウンロードするツールを作った
  • Deno で実行され、TypeScriptで設定ファイルを書けることで、型や言語機能の恩恵を受けることができる。
  • Deno はシングルバイナリなのはセットアップの負担が少ないこともあり選定

Deno の「シングルバイナリで導入できる」と「設定ファイルをTypeScriptで書ける」と言語機能の利用と利点が生かされたCLIツールのを紹介いただけました。 私もCLIツールを書くのですが、同様の利点は感じており非常に共感できる内容でした。

まとめ

今回は、LT4枠での開催となりました。
WbGPU、最適サイトジェネレータ、認証機能を持つWebサイト、CLIツールとバラエティに富んだ回になりました。
登壇者と参加者の皆さんご参加いただきありがとうございました。

次の開催は、4末~5月頃を想定しています。
決まりましたら、connpassやTwitterでお知らせしますので、ぜひご参加ください。

LT枠は大募集です。是非、よろしくお願いします。

採用情報

虎の穴では一緒に働く仲間を募集中です!

この記事を読んで、興味を持っていただけた方はぜひ弊社の採用情報をご覧下さい。

カジュアル面談やエンジニア向けイベントも随時開催中です。ぜひチェックしてみてください。 toranoana-lab.co.jp