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

週刊Railsウォッチ: Rubyで環境変数を扱う、Web標準に「Baseline」ステータス追加ほか(20230531後編)

こんにちは、hachi8833です。

週刊Railsウォッチについて

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

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

🔗Ruby

🔗 Rubyで環境変数を扱う(Ruby Weeklyより)


つっつきボイス:「Rubyで環境変数を扱うときによく使われる手法をまとめた記事です」「Twelve-Factor Appが登場してもう12年も経つんですね」「dotenv周りも定番」「ちなみにDocker Composeを使って構築しているのであればforemanを併用することは少ないとは思うので、使うならどちらかを使うということが多いと思います」

参考: The Twelve-Factor App
参考: The Twelve-Factor App (日本語訳)

bkeepers/dotenv - GitHub
fastruby/dotenv_validator - GitHub
theforeman/foreman - GitHub

🔗 Rubyの型アノテーションの現状についていくつか思うこと


つっつきボイス:「zverokさんが型アノテーションについて書いた記事です: 既にドラフト翻訳まで行ったので近々公開します」「軍事訓練の合間を縫ってスマホで5000ワードの記事を書いたんですか😳」

「記事ではRubyに前からあった型アノテーションシステム"的な"ものとしてYARDやGrapeなどが挙げられていますね」「YARDは個人的に割りと好きかも」「Grapeって知りませんでした」「Grapeは、OpenAPIがまだSwaggerと呼ばれていた頃にRubyでAPIサーバーを作るのによく使われていましたね: もっともGrapeは内部APIではなく外部からHTTP呼び出されるAPIですが」

参考: YARD - A Ruby Documentation Tool

ruby-grape/grape - GitHub

「zverokさんは、型アノテーションは外付けのツールとしてではなく、Rubyの構文と一体化して欲しいと考えているそうです」「そこはきっと他の人も同じ願いでしょうね」

「PHPは後から型アノテーションを段階的に導入してstrictモードを導入したりしているけど、Rubyは公式の方向性としてはあくまでソースコードに型情報を直接書くというアプローチは取らず、やるにしても別ファイル定義というアプローチをとる方向になりましたね: StripeがSorbetを別途開発してShopifyなどが採用するといった動きもありますが、それはそれでRuby本体とは別のGemとして利用したい人が利用すればよい、という感じだと思います」「zverokさんもPythonの型ヒントを使ってみて羨ましいと思ったそうです」

参考: PHPにおけるstrictモードを使った厳密な型宣言
参考: 2021年版Pythonの型ヒントの書き方 (for Python 3.9) | フューチャー技術ブログ

「Rubyのあらゆるものに型を書きたいとはまったく思わないけど、特にバックエンドだとシステムが大きくなったときに場所によっては多少コストをかけてでも型を書きたくなってくるときはある」「ですよね」

「まだざっと見ただけですが、Rubyの型アノテーションシステムの歴史と状況を押さえながら考察した記事のようですね: 後で落ち着いて読んでみたい👍」

🔗 その他Ruby


つっつきボイス:「言われてみればruby-jp Slackの案内ページは今まで日本語だけだった」「ruby-jpにも海外勢増えるといいですね」「ちなみに最近の海外勢はMastodonのruby.social/@rubyに参加している人が多い印象あります」

🔗DB

🔗 SQLite3


つっつきボイス:「jnchitoさんの記事です」「SQLite1とかSQLite2ってあったんですね」

「SQLite3のデータ型の扱いはとってもファジーなので、厳密にはACIDのC(Consistency)が保たれると限らないし、確実にINTEGER型とかにしようとして頑張ってもしょうがなかったりします」「そこがポイントですね」「もちろんSQLite3はデータを1ファイルに収められてSQLで扱えて、しかもSELECTが非常に高速なのは大きな魅力なので、そういう特性を押さえて使うべきだと思います」「SQLite3はそういう思想で設計されているということですね」

🔗 AI

🔗 ChatGPTのプラグイン


つっつきボイス:「ちょっと前に有料版のChat-GPT4でプラグインかURLを渡してブラウズする機能のどちらかをセッションごとに使えるようになってました↓」「お〜」「URLを渡してChatGPTに読ませられるようになったのは個人的にめちゃくちゃ便利です😂」

「プラグインストアに掲載されているプラグインがものすごい勢いで増えてました」「そのプラグインをChatGPTで書いてたりして」「他に、プラグインを開発したい人向けの順番待ちリストも公開されています↓」

参考: ChatGPT Plugins waitlist

🔗 Photoshopのジェネレーティブ塗りつぶし機能


つっつきボイス:「最近のAdobe製品の拡張機能はどんどん強力になっているけど、また機能が増えてますね」「こういう機能は研究レベルでは昔からありましたけど、Adobeの場合はあくまでデザイナーが使えるツールに特化していて実用性が高いのが特徴でしょうね」

🔗クラウド/コンテナ/インフラ/Serverless

🔗 docker init


つっつきボイス:「docker initが導入されたのは少し前で画期的な機能とかではありませんが、何もないところからDockerを使う場合にセットアップの書き方で迷うことが減るのは地味に嬉しい👍」「今だと誰かが作った雛形がないといろいろ大変ですよね」

参考: docker init | Docker Documentation

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

🔗 Web標準に「Baseline」ステータスが追加(Publickeyより)


つっつきボイス:「メジャーなブラウザでサポートされていることを示すBaselineステータスが追加されたことで、これまでのようにCanIUseとかで使えるかどうかを調べなくてもよくなった🎉」「これはありがたい🙏」「Recommendedなどのステータスと違って、Baselineはメジャーなブラウザで現実にサポートされていることを追認する表示ですね」

参考: Can I use... Support tables for HTML5, CSS3, etc

「Baselineステータス表示はW3Cが行っていることに意味があると思います: ステータスがBaselineの機能がたまたまブラウザで使えないことがあっても、それはブラウザ側で実装が追いついていないということがはっきりわかるので」「ですよね」「WhatWGはあくまで仕様を固める方を担当するようですね」

参考: Web Hypertext Application Technology Working Group (WHATWG)


後編は以上です。

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

週刊Railsウォッチ: Ruby 3.3.0-preview1リリース、in_order_ofのバグ修正ほか(20230525後編)

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

Ruby Weekly

Publickey

publickey_banner_captured


CONTACT

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