どうも、皆さんおはようございます!マイクです。今日も「zenncast」にお越しいただきありがとうございます。今日は2024年6月11日、火曜日です。

さて、今日はZennでトレンドになっている記事をいくつかご紹介します。. 前回紹介した記事は、「初学者があのNASAのOSSにコントリビュートした話」と「様々な画面サイズやテキストサイズなどでUIが崩れていないか一覧で確認できるパッケージを作った話」でしたね。NASAのOSSやUIのチェック、どちらも非常に興味深い内容でした。

今日は全部で5本の記事をご紹介します。それでは早速、今日の内容に移りましょう。

まず1つ目の記事は、「これで迷わない!Modal、Dialog、Drawerの違い」です。

Webやモバイルアプリ開発をしていると、Modal(モーダル)、Dialog(ダイアログ)、Drawer(ドロワー)といったUIコンポーネントに頭を悩ませることがありますよね。この記事ではこれらの違いと使い分けについて詳しく解説しています。

モーダルはユーザの操作を中断させて特定のタスクに集中させるために使います。例えば、広告やキャンペーンの表示などがその一例です。一方、ダイアログはユーザとの対話を目的としており、フォーム入力やYes/Noの確認などで使われます。そしてドロワーは画面の端からスライドして表示されるナビゲーションメニューやオプションリストに使われます。特にモバイルUIでは頻繁に見かけますね。

これらのコンポーネントを正しく使い分けることで、ユーザ体験を大きく向上させることができます。例えば、重要な情報を伝える際にはモーダルを、ユーザの入力を求める際にはダイアログを、ナビゲーションやオプションリストとしてドロワーを活用することが非常に効果的です。

次に2つ目の記事、「タブUIをアクセシブルにする」です。

タブUIは「タブ」と「タブパネル」という2つのパーツで構成されています。この記事では、アクセシビリティに配慮したタブUIの実装方法を詳しく説明しています。

まずrole属性の付与について、`tab`、`tablist`、`tabpanel`にそれぞれ適切なrole属性を設定します。そしてaria属性の設定も重要です。`aria-label`、`aria-selected`、`aria-controls`、`aria-labelledby`などの属性を使って、支援技術に正しく情報を伝えます。

さらにキーボード操作の対応も欠かせません。左右の矢印キーでタブフォーカスを移動させたり、Deleteキーでタブを削除できる機能を追加することで、誰にとっても使いやすいUIを実現できます。

具体的なコード例や実装方法については、記事内の詳細な説明や図解を参考にしてみてください。

続いて3つ目の記事、「ChatGPTプログラミングのすすめ」です。

ChatGPTなどの大規模言語モデルを用いたプログラミングやリファクタリングは、その生成物の正しさを確認するための手段が重要です。この記事では、プログラムの正しさを継続的に担保するための方法をいくつか紹介しています。

例えば、プログラムの実行可能性と入出力のチェック、プログラム名の提案、ヘルプオプションの生成、README.mdの生成などが挙げられます。さらに、VSCodeの編集履歴を確認することで、ChatGPTがどこを変更したのかを把握することも可能です。

これらの要素を含んだプロンプトの例も示されており、具体的な使用例としてGitHubページのリンクも提供されています。これにより、実際のプログラム作成とその検証を効率よく進めることができます。

さて4つ目の記事は、「Deno v2に向けて - Deno v2, deno_std v1, Fresh v2について」です。

Deno v2のリリースはまだ確定していませんが、Node.js互換性の改善に力が入れられています。これにより依存関係の重複問題が解消され、Node.jsの豊富な資産をDenoでも活用できるようになります。

具体的な変更点としては、BYONMのデフォルト有効化、`deno install`コマンドの振る舞い変更、npmやYarnとの相互運用性の改善などがあります。また、新たなパッケージレジストリJSRが導入され、TypeScriptのネイティブサポートやドキュメンテーションの自動生成が特徴です。

さらに、Denoにワークスペース機能が導入され、プロジェクトごとに一つしかImport mapsを定義できない課題が解消されます。非推奨APIの削除と安定化も進められており、特に`Deno.Reader`や`Deno.Writer`が削除され、Web Streams APIが推奨されます。

最後に、5つ目の記事「Writing an OS in 1,000 Lines を Rust でやってみた」をご紹介します。

この記事では、Rustで「Writing an OS in 1,000 Lines」というコンテンツに挑戦した経験がまとめられています。ターゲットアーキテクチャはRISC-Vで、OSの各機能をステップバイステップで実装していきます。

開発環境の構築から始まり、ブートローダ、メモリ割り当て、プロセス管理、ページテーブル、ユーザーモードの実装までが詳しく説明されています。さらに、システムコールとディスクの読み書き、ファイルシステムの実装についても触れられています。

最終的には、文字列の入出力やファイルの読み書きができるOSをRustで実装することができました。この記事のリポジトリや参考資料のリンクも提供されており、他のプロジェクトやRustによるOS開発のチュートリアルも参考にできます。

さて、今日ご紹介した記事は以上となります。どの記事も非常に興味深い内容でしたね。次回もまたお楽しみに。詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてください。また、番組の感想もお待ちしています。では、次回の「zenncast」でお会いしましょう!マイクでした。

Related episodes

内容の近いエピソードを推薦しています