Tech Racho エンジニアの「?」を「!」に。
  • Ruby / Rails関連

週刊Railsウォッチ: Turbo 8のTypeScriptがJavaScriptに置き換わるほか(20230914後編)

こんにちは、hachi8833です。DHHがレース出場のために来日していたんですね。

週刊Railsウォッチについて

  • 各記事冒頭には🔗でパーマリンクを置いてあります: 社内やTwitterでの議論などにどうぞ
  • 「つっつきボイス」はRailsウォッチ公開前ドラフトを(鍋のように)社内有志でつっついたときの会話の再構成です👄
  • お気づきの点がありましたら@hachi8833までメンションをいただければ確認・対応いたします🙏

TechRachoではRubyやRailsなどの最新情報記事を平日に公開しています。TechRacho記事をいち早くお読みになりたい方はTwitterにて@techrachoのフォローをお願いします。また、タグやカテゴリごとにRSSフィードを購読することもできます(例:週刊Railsウォッチタグ)

お知らせ: 来週の週刊Railsウォッチはお休みなので、通常記事を公開します。

🔗Rails

🔗 Turbo 8のTypeScriptがJavaScriptに置き換わる

hotwired/turbo - GitHub


つっつきボイス:「そうそう、DHHが突然にTurbo 8のTypeScriptを最終的にJavaScriptに置き換えると宣言してましたね」「めちゃ議論になってますね」「DHHがそこまでpure JSの方がいいと考えているとは」「ファイル拡張子を.tsから.jsに置き換えるのとTypeScriptの型指定を撤去するプルリクがマージされてますね↓」

参考: Remove TypeScript by afcapel · Pull Request #971 · hotwired/turbo

「早くもまとめ記事が出ていました↓」

参考: Remove TypeScript - laiso

「個人的には、TypeScriptはIDEでのサポートが強力になるので、フロントエンド開発とバックエンド開発を分けて進めるプロジェクトなら割りといいものだという気持ちはありますね」「今ならGitHub Copilotの補完も使えるので、TypeScriptで型のことを以前ほど考えなくても済みますよね」「Railsとフロントエンドを一体化させるならJavaScriptの方がもしかするとやりやすい面はあるのかもしれないけど」「TypeScriptを使うなら全体をTypeScriptで統一しないとメリットが減りそうではある」「Rails以外のところでTurboを使う人にとってはTypeScriptを使えてもいい気はしますよね」


その後DHHがこの件について別記事を出していました↓。

参考: Open source hooliganism and the TypeScript meltdown

🔗 devise-passkeys: Deviseのパスキー拡張

ruby-passkeys/devise-passkeys - GitHub


つっつきボイス:「社内でこのdevise-passkeysが気になるという書き込みを見かけたので拾ってみました」

# 同リポジトリより
class User < ApplicationRecord
  devise :passkey_authenticatable, ...

  has_many :passkeys

  def self.passkeys_class
    Passkey
  end

  def self.find_for_passkey(passkey)
    self.find_by(id: passkey.user.id)
  end

  def after_passkey_authentication(passkey:)
  end
end

「ところでパスキーといえば、少し前にdocomoがdアカウントのパスキー対応を開始してましたね」「自分もiPhoneでdocomoのパスキー設定しました: 以前の認証だとD払いとかアプリをいくつもインストールしないといけなかったりしてとても使いにくかった😢」

参考: dアカウント 「パスキー認証」の提供開始について | お知らせ | NTTドコモ

🔗 Rails 7.1のsecrets関連(Awesome Rubyより)


つっつきボイス:「秘密情報セットアップ用のbin/rails secrets:setupコマンドはRails 7.1で削除されるんですね」「secretsをcredentialsに名前を変えようという話はだいぶ前からあるので、その一環でしょうね」

参考: § 2.5 秘密情報の暗号化 -- Ruby on Rails 5.1 リリースノート - Railsガイド

「Rails 7.1secretsが非推奨化されてcredentialsに置き換わる話あたりは以前も取り上げた気がする(ウォッチ20230704)」

参考: Deprecate calling Rails.application.secrets by p8 · Pull Request #48472 · rails/rails

🔗 Rubyで最も使われていないパターン(Hacklinesより)


つっつきボイス:「最も使われていないパターンって何だろうと思ったら、自分たちのデータベースコネクションアダプタでValue Objectを使ったという話のようですね: そのおかげでMySQL用のTrilogyへの対応も1箇所の変更で済むようになった↓」「なるほど」

# 同記事より
  module RubyEventStore
    module ActiveRecord
      class DatabaseAdapter
        def self.from_string(adapter_name, data_type = NOT_SET)
          raise NoMethodError unless eql?(DatabaseAdapter)
          case adapter_name.to_s.downcase
          when "postgresql", "postgis"
            PostgreSQL.new(data_type)
-         when "mysql2"
+         when "mysql2", "trilogy"
            MySQL.new(data_type)
          when "sqlite"
            SQLite.new(data_type)
          else
            raise UnsupportedAdapter, "Unsupported adapter: #{adapter_name.inspect}"
          end
        end
      end
    end
  end


+ expect(DatabaseAdapter.from_string("Trilogy")).to eql(DatabaseAdapter::MySQL.new)

🔗Ruby

🔗 笹田耕一さんの「Rubyの並列並行処理のこれまでとこれから」記事


つっつきボイス:「これが笹田耕一さんのクックパッドでの最後の記事だそうです」「遠藤さんと共にフルタイムRubyコミッターとしてSTORESへの入社が決まったんですね🎉」「そういえばRactorって最初はGuildという名前でしたね」「Rubyの並列/並行処理に注いできた笹田さんの情熱と成果すごい」

参考: Class: Ractor (Ruby 3.0.0)

STORESでのインタビュー記事です↓。

🔗 データのシリアライズ/エンコードフォーマットの選び方(Hacklinesより)


つっつきボイス:「Rubyに限定していない記事です」「なかなかよくまとまっていそうな記事👍」

「Rubyの項でMarshalを取り上げているけど、さすがに現代ならMessagePack(ウォッチ20230502)とかにする方がいいんじゃないかな」「MessagePackも"バイナリエンコーディング形式"のセクションで取り上げられていますね」「Apache Parquetのようなフォーマットもちゃんと取り上げられている」

参考: module Marshal (Ruby 3.2 リファレンスマニュアル)
参考: MessagePack: It's like JSON. but fast and small.
参考: Apache Parquet

「シリアライズやエンコーディングフォーマットを選ぶときは、テキストエンコードかバイナリエンコードという観点も重要」「こんな表も掲載されていますね↓」


同記事より

🔗JavaScript

🔗 RomeプロジェクトからBiomeがフォーク(Publickeyより)


つっつきボイス:「JavaScriptツールチェイン統一プロジェクトであるRomeが経営上の理由で滞って、新たにBiomeというフォークプロジェクトを立ち上げたそうです」「Romeの旧サイト(https://rome.tools/)はもうアクセスできなくなってる」「オープンソース企業あるある話」「何が起こるかわからない世界ですね」

参考: Biome -- One toolchain for your web project(biomejs.dev)

🔗CSS/HTML/フロントエンド/テスト/デザイン

🔗 2023年のCSSに関するアンケート


つっつきボイス:「stateofcss.comというサイトがCSSに関するアンケートを行った結果を発表していました」「サイトでTシャツ売ってるのね」「demographyを見ると回答者がどんな人たちなのかが割りと見えてきますね」「年齢で最多なのは25〜34歳、結構若い層が回答してる」「回答なしも多いですね」

CSSフレームワークの項でTailwind CSSにポジティブな回答が多いですね」


同サイトより

「このPureCSSって初めて見ました↓」「Bootstrapのサイズを小さくしたような感じのCSSフレームワークかな」「ボタンやgridのような基本的なものは使えるみたいですね」

参考: PureCSS(purecss.io)


後でまとめ記事を見つけました↓。

参考: CSSの最新トレンドにおける現状のまとめ、よく使用する新機能やプロパティや疑似クラス、人気のフレームワークや検証ブラウザなど | コリス

🔗言語/ツール/OS/CPU

🔗 OpenBSDのssh-keygenのデフォルトがEd25519になった


つっつきボイス:「そうそう、OpenBSDのデフォルト署名アルゴリズムがついにEd25519になった」「今までのデフォルトはRSAだったんですね」「今の時代にEd25519を使っていないsshサーバーはほぼ滅びたんじゃないかな」

参考: 【 ssh-keygen 】コマンド――SSHの公開鍵と秘密鍵を作成する:Linux基本コマンドTips(327) - @IT
参考: エドワーズ曲線デジタル署名アルゴリズム - Wikipedia -- Ed25519
参考: OpenBSD - Wikipedia


後編は以上です。

バックナンバー(2023年度第3四半期)

週刊Railsウォッチ: Active Recordのenumにエラーをraiseしないvalidateオプションが追加ほか(20230913前編)

ソースの表記されていない項目は独自ルート(TwitterやはてブやRSSやruby-jp SlackやRedditなど)です。

Rails公式ニュース

Awesome Ruby

RubyFlow

160928_1638_XvIP4h

Hacklines

Hacklines

Publickey

publickey_banner_captured


CONTACT

TechRachoでは、パートナーシップをご検討いただける方からの
ご連絡をお待ちしております。ぜひお気軽にご意見・ご相談ください。