今週の技術キャッチアップ(2022/07月 vol.1)

この記事を書くのが一歩遅れてしまいました。本当は先週時点で書くつもりでした。

今週もいろんな技術がリリースされましたね。そんな技術をまとめていきます。

bunがリリースされました!!

JavaScriptのランタイムであるbun(ブン?読み方はまだわかりません。)がリリースされました。

個人的にはnodeを主に使っていて、

最近、denoという新しいのがでたらしい

と思っていたら、すぐに新しいのが出てきてしまいました。それがbunです。

Bundle, transpile, install and run JavaScript & TypeScript …

bunは他のJavaScriptのランタイムより高速だそうで、理由はZIGというプログラミング言語で実装されていることにあるみたいです↓。

Why is Bun fast?

An enormous amount of time spent profiling, benchmarking and optimizing things. The answer is different for every part of Bun, but one general theme:  ‘s low-level control over memory and lack of hidden control flow makes it much simpler to write fast software. Sponsor the Zig Software Foundation
(引用:https://bun.sh/)

ざっくろ訳すと、ZIGの言語仕様として低レイヤーのメモリ管理と制御フローがないことがこのbunの高速化に寄与しているようです。

nodeにはv8エンジン、denoにはv8+Rust、bunにはZIG。

これからエンジニアの開発の現場でどれが採用されるのか、気になりますね。

V8 is Google’s open source high-performance JavaScript and W…

効率的で信頼性のあるソフトウェアを書く力を与える言語…

Deno

Deno is a simple, modern runtime for JavaScript and TypeScri…

RedwoodJSがリリースされました!!

JS製のフルスタックフレームワークであるRedwoodJSがリリースされました。

Grow from side project to startup with RedwoodJS. Combines R…

RedwoodJSはRailsにおけるActive Recordにインスパイアされており、ORMは簡単に操作できそうです。

RedwoodRecord is heavily inspired by ActiveRecord which ships with Ruby on Rails. It presents a natural interface to the underlying data in your database, without worry about the particulars of SQL syntax.

他にもRailsにインスパイアされているのか、scaffoldでコードを生成できます(メタプログラミング)。詳しくはRedwoodJSのリファレンスを覗いてみてください。

特徴的なのは最近のモダンなフレームが組み合わさっている点です。

  • React
    • フロントエンドの実装
  • Graphql
    • フロントエンドとバックエンドのデータ連携
  • Prisma
    • バックエンドでの処理
  • TypeScript
    • フロントエンド、バックエンド、それぞれの領域での型制約
  • Jest
    • フロントエンド、バックエンド、それぞれの領域でのテスト
  • Storybook
    • デザインにおけるコンポーネント指向とフロントエンドのデザインの親和性

最近はモノリシックなアーキテクチャからマイクロサービスに向いているフレームワークが出てきていたような気がしますけど、redwoodjsはそんなムーブメントに一石を投じるものになるかもしれません。

迷ったらRedwoodJSを使えば良さそう
そんなふうに思えるフレームワークです。

Grow from side project to startup with RedwoodJS. Combines R…

freshがリリースされました

deno製のWEBのフルスタックフレームワーク、freshがリリースされました。

少し前まで本番運用はお控えください、というリリースノートを見ていましたけど、それが本番環境でも使えるようになりました。

Deno Blog

Fresh is a new full stack web framework for Deno. By default…

Production Ready

Fresh 1.0 is a stable release and can be relied upon for production use. Much of Deno’s public web services use Fresh (for example the site you are reading this blog post on now!). This does not mean we are done with Fresh. We have many more ideas to improve user and developer experience.

(引用:https://deno.com/blog/fresh-is-stable)

特徴は公式サイトにあるように

  • Just-in-time rendering on the edge
  • Island based client hydration for maximum interactivity.
  • Zero runtime overhead: no JS is shipped to the client by default.
  • No build step.
  • No configuration necessary.
  • TypeScript support out of the box.

といった点です。個人的に気になるのはNo build stepという点で。どういう仕組みで動いているのかは、別のタイミングで調べてみます。nodeを使わずビルドをしないので、開発するときにPCがホカホカになるほどリソースを食いまくる現象から開放されるなら気持ちの良い開発体験になるのではないでしょうか。

そのほか個人的な発見

今週というわけではないですけど、最近ぼくが発見した技術的なトピックを紹介します。

DAOを簡単に作ることができるプラットフォーム、 Aragon

最近は急激にDAOが取り沙汰されているように思います。DAOの言葉の定義についてはEthereumのものが正確だと思いますので、参考にどうぞ。

ethereum.org

イーサリアムにおける分散型自律組織(DAO)の概要…

そんなDAOを広めることを目的としたプラットフォームがAragonです。

Build your Decentralized Autonomous Organization on open-sou…

これからDAOという組織が本当に広まるというのなら、先んじて勉強する必要があるなと個人的に思うところです。

ヘッドレスE2Eテストツールplaywright

ヘッドレスE2Eテストツールはpuppeteerやseleniumしか知りませんでした。そして個人的には今ひとつな印象がありました。

最近はTypeScriptで書くことができるplaywrightがメジャーらしいです。

これからの自分の開発でタイミングがあればplaywrightでテストを書いていきたいと思うのでした。

GitHub

Headless Chrome Node.js API. Contribute to puppeteer/puppete…

Selenium

Selenium automates browsers. That's it!…


とこんなところで今週のトピックは以上になります。良い開発ライフを。