開発者の仕事の多くは、一貫性と可用性、正しさとスピードなど、トレードオフの関係にあります。技術的には様々なトレードオフがあるでしょうが、開発者としては絶対にしてはいけないことがあると考えています。
その1つが、使いやすい開発環境です。新しい開発者をチームに迎え入れる場合でも、単に開発期間を短縮したい場合でも、どんなに小さなことでもスピードとシンプルさのために最適化されていることが重要です。
そのため、私たちはCloudflare Workers向けの第2世代の開発者ツールを発表することになりました。このツールは、すぐに使えて非常に高速で、ローカルマシン上でWorkersを実行することもできる、新しい開発者エクスペリエンスです。(やりました!)
すでに既存のツールに慣れ親しんでいる方には、wrangler CLIだけでなく、次のメジャーリリースであるwrangler 2.0の話です。この新しい体験を少しご覧いただきますので、お付き合いください。
コンフィグ無し?問題なし
Cloudflare Workerは、より簡単に使い始めることができます。ワーカーを実行するために必要なのは、1つのJavaScriptファイルだけで、設定は必要ありません。また、名前を決める必要もありません。
wrangler dev <filename>
を実行すれば、コードは自動的にバンドルされ、開発環境にデプロイされます。すると、ローカルホストプロキシを使ってその環境へHTTPリクエストを送ることができます。これが実際の様子です。
ライブデバッグもこんなに簡単
さて、Workerのデバッグ機能が一新されました。簡単なコマンドでリモートデバッグ機能にアクセスします。これは、Chromeで「Inspect」をクリックしたときに使われるものと同じで、ログ、例外、リクエストをインタラクティブに表示します。Workerがローカルで動作しているように感じられますが、実際にはCloudflareのネットワーク上で動作しています。
「ただ動く」デバッガー、そして変更を自動検出するデバッガーは、ただコードを書こうとしているときに、大きな違いをもたらします。さらに、デバッグ作業をより簡単にするために、さまざまな改良が加えられています。
キーバインドによるショートカットで、機能の切り替えやウィンドウの表示を素早く行うことができます。
静的資産を自動的に提供するための「--public 」をサポート。
より高速で信頼性の高いファイルウォッチング。
デバッグセッションを開始するには、`wrangler dev ` を実行し、次に「D」キーバインドを押します。
ローカルモード?スイッチを切り換えるだけ
**新しいデバッグ環境のもう一つの特徴は、ローカルマシン上でWorkerを実行する「ローカルモード」に切り替えられることです。**実際、キーバインドショートカット1つで「ネットワーク」と「ローカル」のモード切り換えが簡単にできます。
どういった仕組みなのでしょうか。Cloudflareは最近、Node.jsでWorkerをローカルにエミュレートするプロジェクトMiniflare(Brendan Collが作成)がCloudflare公式になったことを発表しました。Miniflareは、WorkersをNode.jsでローカルにエミュレートするプロジェクトで、単体テストやインターネット接続せずにWorkersをデバッグしたい場合に最適です。これをローカルの開発エクスペリエンスに直接統合したことにより、ネットワークとローカルホストの両方の利点を楽しむことができるようになりました。
ご感想をお聞かせください
サーバーレスはシンプルであるべきです。Cloudflareでは、Workersの開発環境の改善ができたことを本当に嬉しく思います。これからもさらに多くのことを計画しています。
wrangler 2.0はまだ開発中ですが、“npm install wrangler@beta”を実行するかリポジトリにアクセスしてベータ版をお試しいただけます。すでにwranglerを使って既存のアプリケーションをデプロイしている場合は、2.0のリリースが正式に発表されるまで、wrangler 1.0を使い続けることをお勧めします。wrangler 1.0 の開発とメンテナンスは、2.0 の後方互換性が完了するまで継続します。
これからプロジェクトを始める方や、新しいエクスペリエンスを試してみたい方は、ぜひご意見をお聞かせください。wrangler 2.0で足りないもの、見たいものを教えてください。機能リクエストを作成したり、リポジトリでディスカッションを始めることができます。(2.0のベータテストが終了後は、既存のwranglerリポジトリと合体させます。)
開発者の皆様に感謝します。皆様が今後開発されるものを楽しみにしています。