denoについて調べたことを共有する
この記事は公開から1年以上が経過しています。内容が一部古い箇所があります。
今回のテーマ:denoについて
- 「デノ」と呼ぶそうです
- 参考 => /deno-ja/Deno の発音
- 個人的に気になってたので調べたことについて共有
- 補足あればハッシュタグつけて実況などお願いします
denoについて
- ご存知の方 🙋
- 触ったことある方 🙋
- 使ってなにか作ったことある方 🙋
3 行で説明すると
- Rustでつくられてる
- Node.js作者のRyan Dahlによって生み出された
- サーバーサイドTypeScriptランタイム
なぜ作られた?
- jsconf.eu 2018
- Design Mistakes in Node
- Node.js における設計ミス By Ryan Dahl - from scratch
- それらを一切ゼロベースに戻して新しいランタイムを産み出した
- それがdeno
ロゴ
- 手書きロゴ
- チンアナゴっぽいが
- 日本ユーザーグループではそう言われていた
- どうやら恐竜らしい
deno
はdino
(恐竜)と音が似てる- 「夜の雨の中に立って、ソフトウェア開発の闇の戦いにストイックに立ち向かう」様子
- 詳しくはhashedrockさんのブログを参照
denoのすごいところ
- TypeScriptサポート
- JavaScriptでも動く
- ES2015以降のモジュールシステム
import
文が書ける!
- ブラウザ互換性
- 最新のブラウザであれば実行できる
- セキュリティ面
- デフォルトでネットワークアクセスもなければファイルの書き込み権限もない
- オプションで変更できる
- zsh
- Deno requests network access to “127.0.0.1:8080”.
- Grant? [a/y/n/d (a = allow always, y = allow once, n = deny once, d = deny always)]
- 依存・中央集権型のそれではない
- npmいろいろ危ういよね
- デフォルトでネットワークアクセスもなければファイルの書き込み権限もない
- キャッチされないエラーがPromiseで起きたら即シャットダウン
yamanoku が個人的にすごいと思った部分
- 絶対パスから読み込んで実行する
- Scrapboxはコードブロックで書くとアクセスできる
- 組み合わせると
- ドキュメントがあり
- ソースコード自体も使える
- 管理者同士での修正・変更も容易
- Scrapboxに限らない話ではあるけど、こういう未来は楽しそう
懸念点
- 業務実用レベルではない
- まだまだ開発中
- コマンドもすぐ変わったり・追加されたりする
- できないこと
- HTTPS
- Redis以外の DB アクセス
- linter(開発中)
- npm、package.jsonがない
- これはもともとの目的部分
コマンド
deno (run) [FILE]
- 実行
--allow-net
でネットワークアクセス省略--allow-write
で書き込みアクセス有効化-r
でキャッシュクリア・再コンパイル
deno info [FILE]
- 情報
deno install [FILE]
deno bundle [FILE]
deno fmt [FILE]
- フォーマッタ
- Prettierが走る
-
- さっき触ってみたら
503
で動かんかった- https://github.com/denoland/registry/issues/115
- レジストリはaws lambdaで実装しているとのこと
- なおった!
- https://github.com/denoland/registry/issues/115#issuecomment-506782521
- さっき触ってみたら
標準ライブラリ(2019/6/28 時点)
- https://github.com/denoland/deno_std
colors
datetime
encoding
examples
flags
fs
http
log
media_types
- prettier
strings
testing
ws
- deno.land registry のスクリプトをブラウザで見に行くとソースハイライトされて表示される
yamanoku はどう思ったか
- Node.jsに変わる新たな希望となりうるのか
- ぶっちゃけ技術がどうのこうのよりいかにそれを脱するか大きなエネルギー・衝動のが個人的にそそるものがある
- この労力をNode.jsにコミットする方向もあるんだろうけど
node_modules
の依存関係問題ばかりはどうしようもなさそう
- ぶっちゃけ技術がどうのこうのよりいかにそれを脱するか大きなエネルギー・衝動のが個人的にそそるものがある
- 実行するのが容易で敷居は低く感じられた
- まだ本番で活用できるかは怪しいので趣味で追ってみる感
- 動かせるものは色々と散見されてるので触ってみてる
そのほか参考リンク
- /deno-ja
- deno 日本グループのScrapbox
- https://deno-ja-slackin.herokuapp.com
- deno 日本グループのSlack
- https://denolib.gitbook.io/guide/
- https://deno-ja.booth.pm/items/1317172
-
- 表紙がめっちゃかわいい
- 次回の技術書典にて denobook 2 だすかは検討中とのこと
- 出た!
-