generated at
denoについて調べたことを共有する
この資料はWe Are JavaScripters! @33rdLT資料です。

自己紹介
yamanoku @ yamanoku
おおやまみちのく a.k.a やまのく
2019/01〜 株式会社プレイドでデザインエンジニアをやってます
CXプラットフォーム KARTEの開発・運営
既婚で1児の父と猫🐈🐈🐈の飼い主
しがないラジオ池上純平と一緒にGinza.jsというJavaScriptの勉強会を開催してます
Ginza.js #1(5/22)
Ginza.js #2(6/25)
3回目(7/30)
主に東側のJSerで盛り上げたい
WeJSは2回目の登壇です
登壇初心者枠も残り1回
よろしくお願いします。

今回のテーマ:denoについて
「デノ」と呼ぶそうです
個人的に気になってたので調べたことについて共有
補足あればハッシュタグつけて実況などお願いします

denoについて
ご存知の方 🙋
触ったことある方 🙋
使ってなにか作ったことある方 🙋

3行で説明すると
Rustでつくられてる
Node.js作者のRyan Dahlによって生み出された
サーバーサイドTypeScriptランタイム

なぜ作られた?
Node.jsの作者であるRyan Dahlが設計上の問題点を語っていた
Promiseがない
gyp(メタビルドシステム)採用の失敗
node_modules の複雑性
いつもの図
モジュールの設計を後回し
管理運営自体を private controlled にしてしまったこと
それらを一切ゼロベースに戻して新しいランタイムを産み出した
それが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はコードブロックで書くとアクセスできる
example.ts
console.log('たとえばこんなな感じでつくると')
にアクセスできる
組み合わせると
ドキュメンテーションがあり
ソースコード自体も使える
管理者同士での修正・変更も容易
Scrapboxに限らない話ではあるけど、こういう未来は楽しそうyamanoku

懸念点
業務実用レベルではない
まだまだ開発中
コマンドもすぐ変わったり・追加されたりする
できないこと
HTTPS
Redis以外のDBアクセス
linter(開発中)
npmpackage.jsonがない
これはもともとの目的部分

コマンド
deno (run) [FILE]
実行
--allow-net でネットワークアクセス省略
--allow-write で書き込みアクセス有効化
-r でキャッシュクリア・再コンパイル
deno info [FILE]
情報
deno install [FILE]
deno bundle [FILE]
deno fmt [FILE]
フォーマッタ
Prettierが走る
さっき触ってみたら 503 で動かんかった yamanoku
レジストリはaws lambdaで実装しているとのことyamanoku
なおった!yamanoku

標準ライブラリ(2019/6/28 時点)
colors
datetime
encoding
examples
flags
fs
http
log
media_types
strings
testing
ws
deno.land registry のスクリプトをブラウザで見に行くとソースハイライトされて表示される
リンクになってるので辿れる

yamanoku はどう思ったか
Node.jsに変わる新たな希望となりうるのか
ぶっちゃけ技術がどうのこうのよりいかにそれを脱するか大きなエネルギー・衝動のが個人的にそそるものがある
この労力をNode.jsにコミットする方向もあるんだろうけど
node_modules の依存関係問題ばかりはどうしようもなさそう yamanoku
実行するのが容易で敷居は低く感じられた
昔、アホすぎてNode.js動かすときにbabelも通さず import 文を書いて動かなくて?となった yamanoku
必要なものがすべてdenoにある安心感
まだ本番で活用できるかは怪しいので趣味で追ってみる感
動かせるものは色々と散見されてるので触ってみてる
いつものawesome
Dockerで動かせる

そのほか参考リンク
deno日本グループのScrapbox
deno日本グループのSlack
表紙がめっちゃかわいいyamanoku
次回の技術書典にてdenobook 2だすかは検討中とのこと
出た!