こんにちは、マイクです!今日は2024年11月3日、土曜日です。今日も「zenncast」をお聞きいただきありがとうございます!今日はZennでトレンドの記事をいくつかご紹介していきますよ。
さて、前回紹介した記事「Neovimはじめてみた」について少し触れておきますね。これには、シンタックスハイライトやJSONの差分表示、使いやすいスコアボードの作成について書かれていました。気になる方はぜひチェックしてみてくださいね。
それでは、今日紹介する記事は全部で5本あります!さっそく、最初の記事からいってみましょう!
1つ目の記事は、「uv(ぱいそんパッケージマネージャー)の使い方 詳細版」です。最近注目されているこの「uv」は、パフォーマンスが高く、クロスプラットフォームに対応したぱいそんのパッケージマネージャーです。Rustで実装されているため、高速でメモリ安全性もバッチリ。インストール方法も簡単で、公式のスタンドアロンインストーラーやpip、Homebrew、Cargoを利用できます。
「uv」の魅力は、複数のぱいそんバージョンを管理できる点。例えば、`uv python install`コマンドを使えば、特定のバージョンを簡単にインストールできます。スクリプトの実行もスムーズで、`uv run`コマンドで簡単に実行できちゃいます。プロジェクト管理では、`pyproject.toml`を使って新しいプロジェクトを作成し、依存関係は`uv add`コマンドで管理できますよ。仮想環境も自動で作成され、`uv sync`で最新状態に保てるのが嬉しいポイントです。
さらに、依存関係の解決やキャッシュ機構、ビルドの分離などの高度な機能も盛りだくさん!DockerやGitHub Actions、Jupyterとの連携も簡単で、他のパッケージマネージャーからの移行もスムーズに行えます。エコシステムの成熟度や学習コストが少し気になるところですが、公式ドキュメントも充実していて、ぜひ一度試してみてほしいです!
。...。
2つ目の記事は、「TypeScriptの型を展開してホバー表示してくれるVSCode拡張「Prettify TypeScript」が便利」についてです。TypeScriptを使っている方は、型の複雑さに悩まされることも多いと思いますが、この拡張機能を使うと、カーソルをホバーするだけで型が展開された状態で表示されるんです!これにより、型情報をすぐに理解できるようになりますよ。
特に交差型やユニオン型、ジェネリクスなどの複雑な型を展開することができ、型エラーの原因を把握しやすくなります。ただ、情報量が多すぎることもあるので、UIの改善や設定のカスタマイズが求められるかもしれません。現在はプレビュー版のため、動作が不安定なこともあるので注意が必要です。
この拡張機能は、特に複雑な型定義を使うプロジェクトに関わるエンジニアにとって、開発をスムーズにする助けとなるでしょう。TypeScriptに悩む方はぜひ試してみてくださいね!
。...。
3つ目の記事は、「フロントエンド(Next.js)現場に入って数ヶ月で技術的負債の改善に取り組んだ話」です。Fivot社に参画して約半年、フロントエンド開発での技術的負債の解消に取り組んだ経緯と成果を紹介しています。参画当初はFlutter WebからNext.jsへの移行が完了したばかりで、コードの品質が低く、多くの課題がありました。
そこで、まずオンボーディングの改善を行い、READMEの充実やVSCodeのセットアップを簡素化しました。さらに、Code Spell Checkerを導入することで、typoの修正を自動化し、コードの品質を向上させました。ファイルの可読性を高めるために、コンポーネントファイルの命名規則やディレクトリ構成の見直しも行いました。
使用していたUIライブラリをAnt DesignからMantineに変更し、スタイルのカスタマイズ性を向上。さらに、GraphQL/Apollo Clientを使ってFetchやMutationの改善を行い、エラーハンドリングやキャッシュの最適化も実施しました。また、Biomeを導入し、ESLintやPrettierの設定を見直し、テスト環境としてStorybookとChromaticを利用するなど、様々な改善に取り組みました。
今後はNext.jsの最新バージョンの検証を行い、さらなる技術的改善を目指しているそうです。チームの協力による技術的負債の解消が、開発スピードや品質の向上に寄与しているとのこと。皆さんもぜひ参考にしてみてください!
。...。
4つ目の記事は、「家電もチャットでコントロール!LLMで実現するスマートホーム生活」です。この記事では、Semantic Kernelのプラグイン機能を使って、チャット形式で家電を操作するシステムを構築する方法を紹介しています。ユーザーからの指示に応じて、指定されたデバイスを操作できる仕組みです。
利用する主な技術にはSemantic KernelやAzure OpenAI Service、Blazorが含まれています。具体的な実装手順としては、プラグインの作成やチャットの送受信を行うためのコードを記述します。プラグインは、デバイスのリスト取得や状態取得、状態変更などの機能を提供し、ユーザーからのメッセージをAIが解析して適切なアクションを選択します。
このように、Semantic Kernelを利用することで、エンジニアは効率的にスマートホームのアプリケーションを開発でき、ユーザーは直感的に家電を操作できる環境を実現します。今後のスマートホーム技術の進化に期待が高まりますね!
。...。
5つ目の記事は、「今どきのフロントエンドのための、郵便番号→住所変換 #jposta」です。郵便番号から住所を自動入力するライブラリ「jposta」が最近注目を集めています。このライブラリは、ES6・PromiseベースでTypeScriptに対応しており、依存ライブラリは一切不要です。APIを介さずに自前でホスト可能で、ダイナミックインポートを用いて必要なリソースを都度取得します。
使い方もシンプルで、郵便番号を渡すことで対応する住所情報をオブジェクト形式で取得できます。例えば、'1000001'を入力すると、東京都千代田区千代田の情報が得られるんです。また、データの出所は日本郵便が提供するCSVデータで、ファイルの変更も自動で反映される仕組みを持っています。
特に最新のフロントエンド技術(ViteやReactなど)との親和性が高いこのライブラリは、エンタープライズ利用にも適しており、興味のある方はぜひ試してみてほしいです。
さて、今日は5本の記事をご紹介しました!内容を駆け足でおさらいすると、「uv」や「Prettify TypeScript」、「技術的負債の改善」、「スマートホーム生活」、「郵便番号→住所変換」についてお話ししました。それぞれの技術が私たちの開発をより快適にしてくれること間違いなしです!
次回もお会いできるのを楽しみにしています!詳しい内容はショーノートに書いてありますので、そちらもぜひご覧ください。そして、番組の感想もお待ちしていますよ!それでは、素敵な一日をお過ごしください!