Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

denoを使ってみた感想

 最近何かと話題沸騰しているdenoを使ってみたので、その所感を書いてみようと思います。あくまで個人の感想です。denoに関しての詳しい説明はDenoとはなにか - 実際につかってみるを読んでいただいた方が良いと思います。

denoを好きになりました

良い点

typescriptが標準で使える。

 今までtypescriptを使ったことがなかったんですが、denoを使うに当たってようやく重い腰を上げて使い始めました。denoの環境構築するだけでtypescriptが使えるのは便利かなと感じます。

ブラウザ向けの関数も使える

fetchとかそうなんですけど、nodejsだと普通に使えなかったブラウザ用の関数が使えるのは便利だと感じました。

GitHubから直接importできる

 URLのblobの部分をrawに変えるだけでimportできます。詳しいやり方はDenoの自作モジュールをGitHubから読み込むを読んでいただくと良いと思います。

余計にストレージの容量を食わない

 npmの様にローカルファイルにインストールするわけではないので、容量を食いません。かと言ってコンパイルの度に毎回importするモジュールをダウンロードするわけではなく、キャッシュする仕組みがあるので動きも軽量です。 

標準モジュールが便利

 標準モジュールがnodeより豊富で、writeJsonSyncなんていうJSON専用の書き込みモジュールなんてものもあります。中身の実装見てみると普通にオブジェクトをJSON.stringify()してDeno.writeFileSync()しているだけなんで、自分で実装するのとそう変わりない気もしますが、標準モジュールにあるならそれ使った方が早いですよね。そう考えると便利かなと思いました。
 gitHubからimportするテストも兼ねて、ちょっとしたモジュールを公開したので、気になる人は見てみてください。JSONのソートを実装するたびちょっと面倒だなと感じることが多かったので作りました。https://github.com/R-Az/deno_jsonSort

悪い点

Denoというオブジェクトがエラー扱い(当然)されている。

image.png
 Denoというオブジェクトからいろいろな関数が呼び出せるみたいなんですが、VSCodeではグローバル変数として(?)認識されていません。コンパイルしたら普通に通るのに、エラー表示になっているのは地味にストレスです。対策を探していますがそもそもVSCodeの仕様を把握しきれていないので、何か知っている人がいらしたら教えてくださると嬉しいです。

2020/06/09 追記 コメント欄にて解決方法をお教えいただきました。@k-izumiさんありがとうございます!

下の記事を参考に
deno types > deno.d.ts
を実行したら型定義ファイルができて Deno.*** にエラーが出なくなりました。
https://qiita.com/syumai/items/b84f9508036b026bef26

もしVSCodeが反応しないようなら、一度deno.d.tsファイルを開いて上げると認識しました。

名前が紛らわしい(日本語のみ)

 すごいしょうもない事なんですけど、denoって文字列を各種検索エンジンは「での」って日本語と勘違いするときがあるみたいで、想定外の結果になることがあります。
deno検索結果.png
 とはいえこれは、今後denoが普及すれば解決する問題だとは思うので、あんまり気にしなくても良いですよね。検索結果の画像を見せたかっただけです。逆にローマ字を日本語として認識する検索エンジンが凄いと思いました。

まとめ

 この記事で書いた以外にも良い点はいっぱいあります。新規でプロジェクトを立ち上げるならdenoを使ってみるのも選択肢に上がるんじゃないでしょうか。兎にも角にも一回使ってみると良いと思います。私はdenoを好きだと感じたので、個人開発するときは積極的に使おうと思います。
 

おまけ

 npmみたいに予めインストールするわけではないので、Denoのimportするモジュールにはコード補完が普通には効きません。VSCodeならExtentionを入れて、その上で下記のコマンドを叩くか、一度コンパイルするとコード補完が効くようになります。(因みに1.0.0より前は、fetchってサブコマンドだったらしいです)

deno cache ファイル名.ts
R-Az
19新卒でエンジニアになった文系F欄卒の素人。 今後はAndroid、ios両方こなせるアプリ開発エンジニアになる予定。 なんでも気軽にコメント下さい。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away