おはようございます!マイクです。今日は2025年2月9日、金曜日ですね!さて、今日も「zenncast」にお付き合いいただきありがとうございます。今日はZennでトレンドになっている記事を紹介していきますよ。
それでは、早速今日の内容に入る前に、前回紹介した記事について少し振り返ってみましょう。「Bun がフロントエンド開発でかなり便利になりそう」や「Cursor の Project Rules 活用と改善」、そして「TypeScriptの型定義と実務でありがちな問題コードの対策」でした。
お便りもいただいていますよ!ラジオネーム:キュロットさんからお便りいただいています。「Zenncastよい番組ですね!いつも楽しんでいます。サーバー台やapi費用など月にどれぐらいコストがかかっているか気になります」というメッセージをいただいてます。ありがとうございます!嬉しいお言葉をいただいて、励みになりますね。コストについては、実際の運営に関わる部分なので詳しくはお答えできませんが、皆様に楽しんでもらえるよう、できる限りの工夫をしています!
さて、今日紹介する記事は全部で5本です!それでは、さっそく1本目の記事を見ていきましょう。
1つ目の記事は、「React19のuseOptimisticとDnDを組みせるといい感じ」です。React19で新たに導入された`useOptimistic`というHookについてのお話です。この機能はデータの楽観的更新を行うために役立ち、アプリの操作性を向上させてくれます。具体的には、ドラッグアンドドロップによるリストの並び替えを実装する際に、`useOptimistic`を利用することで、データ更新時のカクつきが解消され、ユーザーにスムーズな操作感を提供することができます。リストの順序を即座に反映しつつ、バックエンドのデータも非同期で更新する方法について詳しく述べられています。また、エラー処理についても触れられており、ユーザーへのフィードバックの重要性が強調されています。これにより、CRUD処理において非常に有用な機能として、エンジニアにとって効率的な開発を支援することが期待されます。
。.
。.
。.
2つ目の記事は、「Next.js App Routerにおける筆者のBad Practiceを振り返る」です。筆者はNext.js App Routerを使用し始めた際に犯した「Bad Practice」を振り返っています。まず、データ取得をuseEffect内で行うことは避けるべきで、React Server Componentsを基にしたデータ取得が推奨されています。また、クライアントに不必要な情報を渡すことや、ページ遷移時の古いページ表示を避けるための工夫も必要です。さらに、環境変数の設定やドキュメントを無視することのリスクも指摘されています。プロジェクトのアーキテクチャについても、可読性やルーティングに与える影響を考慮した適切な設計が求められています。
。.
。.
。.
3つ目の記事は、「Pythonのコンパイラを作りたい #1 - 開発の背景と概要」です。この記事では、PythonコードをLLVM IRに変換し、ネイティブバイナリを生成するプロジェクト「pyc」の開発背景と概要が紹介されています。Pythonは書きやすいけれど速度面での課題があるため、コンパイルする動機が生まれたそうです。具体的には、PythonをLLVM IRに変換し、WebAssemblyにコンパイルしてブラウザ上で動作させることを目指しています。pycの特徴は、Pythonの構文を大幅に変更せずにAOTコンパイルを採用し、LLVMの最適化パイプラインを利用する点です。今後の展開としては、WebAssemblyビルドやPython構文のサポート拡大が課題として挙げられています。
。.
。.
。.
4つ目の記事は、「【Unity】シェーダーでひびを入れる[その1:フラグメントシェーダー編]」です。Unityを用いて3Dモデルにひびを入れるシェーダーの実装方法について解説しています。特に、テクスチャを使用せずにボロノイパターンを基にしたひび模様の描画技術に焦点を当てています。基本的なアプローチはボロノイパターンを利用することで、オブジェクト座標をセルに分割し、各セルにランダムな点を設定します。フラグメントシェーダーでは、指定した座標がボロノイパターンの境界線に該当するかを算出する機能が実装されています。ひびの幅や強度を調整することができ、視覚的な多様性を持たせる工夫がされています。次回は、モデルの変形を加えることでさらにリアルなひび模様を表現する技術について解説される予定です。
。.
。.
。.
5つ目の記事は、「言語処理系にSIMD命令を実装することについて(主にx86向け)」です。著者はHaskell処理系GHCのx86 NCGにSIMDプリミティブを実装する作業に取り組んでおり、特にSSE命令に焦点を当てています。SIMD命令の実装には、GCCやClangの出力を参考にすることが推奨されています。浮動小数点演算や整数演算に関してもさまざまな命令が紹介されており、特に浮動小数点数では単精度、倍精度、半精度の演算命令がリストアップされています。著者はGHCにおけるSIMDの実装に苦労しながらも、その重要性を認識しており、移植性のあるSIMD実装の難しさを再確認しています。
さて、今日はたくさんの情報をお届けしましたね!最後に、今日お話しした記事を簡単におさらいします。React19の`useOptimistic`はデータ更新のスムーズさを提供し、Next.jsのBad Practiceを振り返り、PythonをLLVM IRに変換するプロジェクトやUnityのシェーダー技術、SIMD命令の実装について紹介しました。次回もまたお会いできるのを楽しみにしています!詳しい内容はショーノートに書いてありますので、ぜひご覧ください。また、番組の感想もお待ちしています!それでは、またね!