30歳からのプログラミング

30歳無職から独学でプログラミングを開始した人間の記録。

Deno

Deno で 学ぶ React のサーバサイドレンダリング

Deno で React のサーバサイドレンダリング(以下、SSR)を実現する方法をハンズオン形式で書いていく。 自分が調べた範囲では、単に JSX で HTML を構築して終わり、という記事が多かった。それではあまり実用的ではないので、この記事ではハイドレーション…

Route 53 + Cloudflare + Heroku で Deno アプリを公開する

先日、砂場として使うために以下の構成のウェブアプリを作った。 Deno で作ったアプリケーションサーバを Heroku で公開し、それを Cloudflare 経由で配信する ドメインは Route 53 で取得したものを使う Heroku も Cloudflare も無料プランを利用する 忘れ…

Deno Deploy で WebAssembly を動かす

Deno Deploy や Rust の練習として、Rust から出力した WebAssembly を Deno Deploy を動かしてみた。 その手順をまとめておく。 ローカルでの動作確認は以下の環境で行った。 rustc 1.50.0 cargo 1.50.0 Deno 1.9.2 deployctl 0.3.0 使用しているクレートの…

Deno で学ぶ HTTP/2 の仕組み

先日 Deno のv1.9がリリースされ、HTTP/2 に対応したサーバを立てられるようになった。 deno.com zenn.dev この記事では Deno で実際にサーバを立てながら、HTTP/2 の特徴を見ていく。 動作確認は以下の環境で行った。 Deno1.9.0 Google Chrome90.0.4430.72 …

ブラウザによるキャッシュの仕組み

ウェブサーバは、キャッシュに関する情報をレスポンスヘッダに含めることで、そのレスポンスで返したリソースをどのようにキャッシュすべきかをウェブクライアントに指示することができる。ウェブクライアントはその指示に基づいた処理を行う。 この記事では…

フォーム送信時の HTTP リクエストについて

この記事では、フォーム送信時に実際にどのようなデータが送信されるのか、ファイルを送信するためにはどうすればよいのか、などを Deno や curl で確認しながら見ていく。 動作確認に使った実行環境やツールのバージョンは以下の通り。 Google Chrome 85.0.…

Deno や curl で Cookie を扱う方法

Cookie そのものについての説明は、別途記事を書いているのでそちらを参照。 numb86-tech.hatenablog.com numb86-tech.hatenablog.com 動作確認に使った実行環境やツールのバージョンは以下の通り。 Google Chrome 85.0.4183.121 Deno 1.4.4 curl 7.54.0 Den…

Power Assert Deno を作った

Deno で Power Assert を利用するためのモジュールを作った。 github.com Power Assert とは、テスト失敗時に詳細な情報を表示する仕組みのこと。 例えば以下のようなテストコードがあるとき、通常はx()とy.zのそれぞれの結果と、それらが一致しないことのみ…

Deno で CLI ツールを作る

Deno.argsやDeno.exitなどの機能を使い、Deno で CLI ツールを作っていく。 Deno のバージョンは1.3.1で動作確認している。 コマンドライン引数の受け取り方 渡されたコマンドライン引数は、Deno.argsで取得することができる。 例えば$ deno run cli.ts a b …

ES2020 でリリースされた import.meta について

ES2020 でimport.metaがリリースされた。 この機能を使うと、モジュールのメタ情報を取得することができる。 例えば、当該モジュールのパスを取得することができる。 モジュールのメタ情報を取得する機能であるため、CommonJS や Script モードで使用すると…

Let's Encrypt と Route 53 でローカル開発環境を HTTPS 化する

ブラウザの機能のなかには、HTTPS でないと利用できなかったり、HTTPS か HTTP かで挙動が変わったりする機能がある。 そのため、ローカル開発環境を HTTPS で構築したいことがある。 一番簡単なのは自己署名証明書を作成し利用することだと思うが、その場合…

Deno のモジュール管理やロックファイルについて

Deno では外部モジュールを利用する際、URL を指定してインポートする。 Node.js とは異なり、npm やpackage.jsonも使用しない。 ではどのようにモジュールを管理していけばよいのか。公式ドキュメントに書かれてある内容をまとめ、整理した。 Deno のv1.1.1…

Deno でも Visual Studio Code の支援を受けられるようにする

最近 Deno を触り始めた。 エディタには Visual Studio Code を使っているのだが、現状では、通常の TypeScript での開発のような「ゼロコンフィグで様々な支援を受けることができる」という状態にはなっていない。 Deno での構文がエラーになるし、インテリ…