こんにちは、みなさん!マイクです!今日は2024年10月14日、日曜日です。Zennでトレンドの記事を紹介していきますので、ぜひお楽しみに!
さて、前回紹介した記事ですが、今回は「ぼくがかんがえた最強の Visual Studio Code カスタマイズ 2024」や「個人開発予約システム 大規模リファクタリングの記録」、それから「実際に会社で使っているプルリクエストのテンプレートを紹介します!」といった内容でしたね。
では、今日紹介する記事の本数をお伝えします!今日は全部で5つの記事を紹介しますよ!それでは、さっそく今日の内容に入っていきましょう!
まず1つ目の記事です。タイトルは「2024年版」Pythonプロジェクト管理はuv、LinterはRuffを導入して開発体験を高めるです。
この記事では、Pythonプロジェクトの管理を簡素化するために、Rust製のライブラリuvとRuffを使用する方法が紹介されています。著者は衛星データを利用したアプリ「WHERE」の開発に関わっており、Python(FastAPI)での開発体験向上を目指しています。従来のプロジェクト管理ツールの複雑さから、uvによりオールインワンで管理できるようになり、RuffはLinterとFormatterの機能を統合して提供します。
まずは、uvとRuffの導入方法、VSCodeでの設定手順が説明されていて、uvのインストールはmacOSやLinux環境で簡単なコマンドを用いて行えます。次に、プロジェクト設定ファイルであるpyproject.tomlにuvの設定を記述し、Pythonのバージョンや依存ライブラリを管理します。Ruffの設定も同じファイルに追加し、チェックするエラーの種類や無視するエラーを指定します。
VSCodeの設定では、Ruffの拡張機能を使用することで、コード保存時に自動的にフォーマットを適用したりエラーを強調表示できます。commit前にコードをチェックするためのpre-commitの導入手順も記載されています。uvとRuffを用いることで、従来の複数のライブラリを組み合わせる方法よりも管理が容易で、高速な動作が実現できるため、開発体験が向上することが期待されています。
次に、2つ目の記事です。タイトルは「【TS】型定義、完全に理解していた、、、😇」です。
この記事では、TypeScript(TS)の型定義に関する理解を深めるための体験が語られています。著者は最近、`elm`というプログラミング言語を知り、その中で出てきた「Making Impossible States Impossible」という概念に触れました。この概念は、プログラムの矛盾を型によって排除し、無効な状態が発生しないように設計する手法です。
著者は型定義を振り返り、特に`popup`の状態管理について考察しました。元の型定義では、`popupAction`の`type`が`show`で`children`が`undefined`の場合や、`hide`で`children`に値がある場合など、無効な状態が許容されてしまうことに気付きました。これにより実行時にバグが発生する可能性があることを指摘しています。
その後、著者は型定義を修正し、`popupState`を`closeState`と`openState`のユニオン型で表現し、状態に応じた適切な型を持たせることで、無効な状態が発生しないようにしました。修正後は、`children`が必要な状態と、必要でない状態を明確に区別でき、型の安全性が向上しました。このように、厳密な型定義によって実行時エラーを防ぎ、開発の効率を高めることができると結論づけています。
さて、次は3つ目の記事です!タイトルは「Auth0の衝撃的なアップグレードについて」です。
2024年9月24日、IDaaSプラットフォームのAuth0が重要なアップグレードを発表しました。特に個人利用者にとって有益な情報が含まれており、著者は無料プランに関する変更点を中心に紹介しています。主な変更点は、無料プランの月間アクティブユーザー(MAU)の制限が拡充されたことです。これにより、個人開発者や小規模なプロジェクトにおいても、より多くのユーザーを対象にしたサービス提供が可能になります。
また、Auth0は無料プランの機能を強化しており、開発者が手軽に認証・認可機能を実装できるよう配慮されています。特にOpenID ConnectやOAuth関連の知識を持つ開発者にとって、Auth0のドキュメントとその実装は非常に役立つものとなっています。全体として、Auth0のアップグレードは、特に無料プランの利用者にとって大きな利点を提供する内容となっており、今後の開発における可能性を広げるものです。
さて、続いて4つ目の記事!タイトルは「Ebitengine Weekly #23 - Nintendo Switch 対応ゲームが新たに登場!」です。
Ebitengine Weekly #23では、Nintendo Switchに新たに対応したゲーム「Inside the Crystal Mountain」がIntrugli Gamesによってリリースされたことが報告されています。このゲームはEbitengineを使用して開発され、Switchへの移植は非常に簡単だったとのことです。これにより、Switch向けにリリースされたEbitengine製ゲームは合計で6本に達しました。
また、Odencatから「ねずみバスターズ!」のSteam版体験版が公開されており、好評を得ています。さらに、Ebitengineの最新バージョンv2.8.1がリリースされ、ブラウザに関するバグ修正が含まれています。この記事では、Ebitengineを使ったゲームプログラミングの基礎を学べるリソースや、Ebitengineを使用したさまざまなゲーム作品も紹介されています。
新しい開発ツールとしては、シーン遷移をサポートする「sceneManager」が紹介されており、画面切り替えのエフェクトも利用可能です。Ebitengineを利用したゲーム開発のコミュニティも充実しており、情報交換が活発に行われています。次回のEbitengine Weeklyにも期待が寄せられています。
そして最後、5つ目の記事です!タイトルは「自動でハイフン区切りしてくれる電話番号の入力補助機能」です。
このプロジェクトは、ユーザーが電話番号を入力すると自動的にハイフンで区切る機能を構築したもので、ReactとTypeScriptを使用していますが、バニラJavaScriptでも利用可能です。作成の背景には、電話番号の入力でハイフンの有無が問題となることを踏まえ、ユーザー体験を向上させるための正規化が求められています。
筆者は市外局番に関する知識を深めるために、電話番号の情報を収集し、桁数や種類に応じて電話番号を整形するためのロジックを実装しました。具体的には、電話番号の先頭部分を識別するために配列を用意し、桁数や種類に基づいて分類しています。
ハイフン区切りの処理は、電話番号の桁数をチェックし、条件に応じた整形を行うことで実現しています。特に関東圏の市外局番「04」の場合、複数の区切り方が存在するため、ユーザーにどちらの形式を使用するか選択させる確認ダイアログを表示する機能も組み込まれています。この機能は、Reactのフォームにおいて電話番号を整形した状態で保持し、ユーザーにとって使いやすいインターフェースを提供します。
さて、今日はここまでお届けしました!今日紹介した記事を駆け足でおさらいすると、Pythonプロジェクト管理の効率化、TypeScriptの型定義の重要性、Auth0のアップグレード、Ebitengineの新たなゲームリリース、そして電話番号の入力補助機能についてお伝えしました。次回もお楽しみにしています!詳しい内容はショーノートに書いてありますので、ぜひご覧くださいね。番組の感想も募集していますので、どしどしお寄せください!それでは、またお会いしましょう!