Dinoとは
ウィキペディアより引用:
Denoは、V8 JavaScriptエンジン及びRustプログラミング言語に基づいた、JavaScript及びTypeScriptのランタイム環境である。
Node.jsの作者であるライアン・ダールによって作成され、セキュリティと生産性に焦点を当てている。
ライアン・ダールが2018年に行った講演「Node.jsに関する10の反省点」で発表された。
私は題材としてチャットアプリのPoCを作って、いろいろと試してみました。
(ちなみにクライアント側はiOSアプリ)
Denoに関する私見
個人的に気に入っている点
- TypeScriptが標準でサポートされていて、特別な環境構築が必要なく使えること。
- ランタイム環境とパッケージ管理システムを兼ねており、npmのような別立てのパッケージ管理システムが必要ないこと。
個人的に腰が引ける点
- まだバージョンアップのたびに破壊的な変更があること。
- 上記に関連して、サードパーティ製ライブラリの挙動に不安感が…
- Web記事のサンプルコードは、1年前の記事ですら動かないことが多々…
もっとも、バージョンを重ねて安定してくればそんなこともなくなると思います。
総合的にはとても気に入ってます。
今後ともDenoをキャッチアップしていきたいと思います!
ということで、以下、PoC開発時に参考にさせていただいたリンクです。
基礎編
公式サイト:
日本語版:
「Denoとはなんぞや」的な記事:
HTTP (REST API) サーバー編
鉄板ライブラリ"oak"の公式リポジトリ:
oakを使ったサンプルコード:
JWT
チャットアプリのPoCでは認証トークンにJWTを使いました。
JWTの鉄板ライブラリ:
JWTのサンプルコードが載っている記事:
Database
ORマッパーライブラリ。
PostgreSQL, MySQL, MariaDB, SQLite, MongoDBをサポートしています。
WebSocket
チャットアプリのPoCなのでWebSocketが必要でした。
サードパーティ製のライブラリはいくつかありますが、私はこの"wocket"を使いました。
ドキュメントがしっかりしていて理解しやすかったです。
なお、Deno v1.13以降であれば標準ライブラリでもWebSocketを使いやすくなっているようです。(未検証)
TypeScript
最近使い込んでいるのがSwiftなので、静的な型付けが好きなのです…