1. エンジニアの気づき - しむしむラジオ -
  2. 今回はdenoを使うとtypescript..
2020-09-08 08:18

今回はdenoを使うとtypescriptの開発を効率化できると思った話

アプリケーションエンジニアのなおしむが日々感じていることを呟くpodcastです。

今回はdenoを使うとtypescriptの開発を効率化できると思った話です。

typescript開発ではwebpackなどの利用が不可欠ですが、ちょっと面倒。。

その辛さをdenoが解決してくれるっ!気がする話です。


Deno - A secure runtime for JavaScript and TypeScript

https://deno.land/

00:03
こんにちは、なおしむです。
今日は、denoを使うとtypescriptの開発を効率化できると思った話をします。
背景としては、前回の配信でも話をしたのですが、今は時間がないという状況があります。
私は朝の1時間がすごく貴重な自由時間になっていて、この1時間でプログラミングをしています。
開発の効率を上げるためには、作ったものをライブラリにして再利用できるようにしておくことが重要です。
私はtypescriptで開発することが多いのですが、typescriptのライブラリ化というのが結構めんどくさいのです。
どんなふうにライブラリ化していくかというと、まずはtypescriptでコーディングをして、
そのコーディングしたものをどういうふうに使われるのかというのを考えます。
例えばブラウザから使うのか、またはサーバーサイドで使うのか、それによってビルドの仕方が変わってきます。
あと、このtypescriptで作ったものを最終的にJSで使うのか、それともtypescriptのまま使うのかというところでもやり方が変わってきます。
JSであればtypescriptをビルドしてJSにしますし、typescriptで使うのであれば型定義を出力することが必要になってきます。
これで何とかライブラリのソースコードが完成したという状況になったら、今度はnpmに公開することが必要になります。
npmというのはパッケージ管理ツールなんですけれども、実質今JavaScriptのソースを公開するといったら、ほとんどnpmに公開するというのがデファクトになっているかなと思います。
ただ、ここに公開するってなったら、やっぱりいろんな人が見るサイトなので、readmeをちゃんと重視させるとか、ちゃんとした文章を書いておかないとかっこ悪いなと思ったりするというところがあります。
朝の1時間で作ったライブラリでそこまでする必要があるの?というのが正直私が思っている感想です。
もちろん先ほどお話しした工程というのはWebpackとかそういうバンドラーのツールを使うことによって簡単にはなるんですけれども、ただそれも複雑さをラップしているだけなので、何かめんどくささというのは拭えないなというところです。
なのでTypeScriptのライブラリを作るというのは意外に面倒な作業なんですね。
ここで登場するのが今日の本題のDenoになります。
Denoとは何かというと、簡単に言うとJavaScriptとTypeScriptの実行環境です。
03:06
JavaScriptの実行環境で有名なのはNode.jsかなと思いますが、DenoというのはそのNode.jsの兄弟みたいなものです。
JavaScriptで書いたコードをChromeのV8エンジンを使ってサーバーサイドでも実行できるようにしたものという意味で全く同じものかなと思います。
何が違うかというところなんですけれども、いろいろと違いはあるんですけれども、私が一番注目している違いというのは二つあります。
一つがまずTypeScriptの実行環境でもあるというところです。
通常、Node.jsでTypeScriptを実行しようと思うと、一回JSに変換してその結果をNode.jsで実行するという順番で使っていきます。
ただDenoはその必要がなくて、TypeScriptをそのまま実行できるという特徴があります。
もう一個の違いは、インポート文にURLが書けるというところが特徴としてあります。
Node.jsの場合はインポート文に書けるのは基本的にはファイルのパスを書くようなイメージなんですけれども、
Denoの場合はそこに、例えばGitHub上にあるソースコードのURLを書くみたいなことができます。
しかも先ほどのTypeScriptを直接実行できるという特徴があるので、
インポート文にGitHub上にあるTypeScriptのソースコードを書いたら、それがそのまま実行できてしまうんですね。
インポートにURLが書けるという機能がめちゃくちゃ大きくて、
例えばこれによって、ゲッティングスターテッドみたいなハローワールドの工程がめちゃくちゃ簡単になります。
例えばですけれども、Node.jsでも何でもいいんですけれども、
その実行環境を作るゲッティングスターテッドをやろうとなったら、
大体まずはNode.jsをインストールして、
ソースコードにプリントハローワールドみたいなものを書いて保存して、
そのファイルを実行すると画面にハローワールドって表示される、
みたいなのがハローワールドではよくあることかなと思うんですけれども、
Denoの場合はURLを直接実行できるという特徴があるので、
ハローワールドがまずDenoをダウンロードしてインストールして、
その後もDenoの実行コマンドの中にURLを書いて実行すると、
ほらハローワールドって出たねっていうだけなんですね。
ソースコードを書くっていう工程を一つ飛ばしてるんですね。
それぐらいURL上にあるファイルを直接実行できるっていうのは、
効率化っていう意味でメリットがあるということです。
この2つの特徴があることによって、
先ほどのタイプスクリプトでの開発が辛いっていう話がどういう風に変わるかというと、
06:05
まずいつも通りコーディングをして、使いそうな部品が出てきたら、
それをタイプスクリプトのままGitHub上にコミットする。
コミットしたら次からはそのURLをソースコードのインポート文に書けば、
ライブラリとして使えてしまうということです。
JSに変換するためのバンドラーはいらないし、
NPMへのパブリッシュもいらない。
ただただGitHubにコミットするだけでできてしまう。
しかもReadMeとかそういうドキュメントも必要にはなるんですけれども、
Denoの機能にドキュメントの生成機能があります。
ソースコードの中にJSドックの形で書いておけば、
それをDeno側でドキュメントとして生成してくれるという機能もあるので、
本当にいつも通りコーディングさえしておけば、
すぐライブラリになっていくというところがあります。
これが本当に気持ちよくて、
ただコーディングをしていれば、
どんどんソースコードのライブラリ化ができていくというのは、
めちゃくちゃメリットがあるなと思っています。
今これからDenoというのはまだ出たばっかりなんですけれども、
これからすごく注目できる技術なんじゃないかなと思っています。
ただちょっとデメリットもあって、
NPMが使えないというのがデメリットとしてはあります。
NPMには膨大な量の使えるライブラリがいっぱい揃っているんですけれども、
それらが直接は使えないというところがあって、
何らかの変換機能とかもしかしてあるのかもしれないですけれども、
まだまだ普及していないというところでのデメリットが今はあるかなと思います。
ということで、今日はDenoを使うと
タイプスクリプトの開発がとても効率化できるんじゃないかと思った話をしました。
とはいえ、まだまだ出始めの技術ではあるので、
今後どうなっていくかわからないんですけれども、
ちょっと注目していきたいなというふうに思っています。
ということで、今日もご視聴ありがとうございました。
ありがとうございました。ではまた。
08:18

コメント

スクロール