みなさん、こんにちは!「zenncast」へようこそ!MCのマイクです。今日は2024年6月8日、土曜日です。さて、今日はZennでトレンドになっている記事を紹介していきますよ!

まずは前回紹介した記事に少し触れてみましょう。「GitHub Actionsにおける脅威と対策まとめ」、「Berryを支えるアーキテクチャを紹介します」、「デベロッパー向けヘッドレスCMS、Sanityを始めよう」でしたね。どれも重要なキーワードが盛りだくさんでした。セキュリティ、アーキテクチャ、ヘッドレスCMSなど、どれも今後の技術トレンドを押さえる上で欠かせない内容でした。

さて、今日はトレンド記事を5本紹介しますよ!まず最初の記事はこちら。

。。。。

1つ目の記事は「Datadog→New Relicの移行を決めた際のADRを公開します!」です。レバテック開発部の金澤さんが、監視ツールをDatadogからNew Relicに移行する決定をADRとしてまとめたものです。

まず、事業の拡大に伴い、スケーラビリティやアジリティの確保が難しくなってきた背景があります。特に、分散トレーシングの不足がマイクロサービスのトラブルシューティングを困難にしていました。そこでオブザーバビリティの導入を検討し、Datadogを続けるか、新しいツールとしてNew Relicを採用するか、OSSのOpenTelemetryを使うかという選択肢がありました。

各ツールを比較した結果、New Relicはサポートの充実度とスピード感が決定要因となり、採用されました。特に、ユーザー課金で長期的なコスト管理がしやすい点も決め手となりました。導入はビジネスクリティカルなサービスから始め、他のサービスにも順次適用していく予定です。

オブザーバビリティの導入により、意思決定の透明性を高めることが組織にとって価値があるとのことです。皆さんもADRを活用してみてはいかがでしょうか?

。。。。

次に紹介するのは、「AIに仕事を奪ってもらう 〜システムにおけるAIの使い所〜」という記事です。

この記事では、AIを活用して特定の業務を効率化する実例が紹介されています。具体的には、ユーザーのメールアドレスのドメインから事業内容を調べ、人材紹介業に関わるユーザーのみをメーリングリストに追加するプロセスをAIで自動化しました。

実装手順としては、ドメインでGoogle検索を行い、最初にヒットしたページのURLを取得し、そのテキストを解析します。AIがそのテキストから事業内容を判定し、メーリングリストに追加します。これにより、大量のユーザーを手作業で分類する手間を省くことができました。

また、AIがシステムの仕事を奪うのが難しい理由についても議論しています。AIは決定的でないため、正確な動作が求められる場合には不向きです。しかし、チャットやクリエイティブ生成など、決定的でない方が嬉しい場合には非常に有効です。これらの条件を満たす業務であれば、AIを導入することで大幅な効率化が期待できます。

AIに仕事を奪ってもらうことで、エンジニアはよりクリエイティブな業務に専念できるようになりますね。

。。。。

続いて3つ目の記事は「Snowflake新機能:Iceberg Table と Polaris Catalog の仕組み」です。

この記事では、Snowflakeの新機能であるIceberg TableとPolaris Catalogについて詳しく解説しています。Iceberg Tableは、Apache Icebergという大規模データ分析向けのオープンテーブルフォーマットを使用したテーブルです。Hive Formatの問題を解決し、クラウド環境での大規模データ分析を効率化するために設計されています。

Icebergの構造は3つのレイヤーから成り、テーブルのスキーマやパーティションの変更が直接可能です。また、ACID特性をサポートし、スナップショット方式でデータ管理を行うため、データの一貫性と安全性が保証されます。「Time Travel」機能により、過去のデータを復元・クエリすることも可能です。

さらに、Polaris CatalogはIceberg Catalogの制約を解消するために導入されました。複数のCompute Engineやカタログ間でデータを移動・コピーする必要がなくなり、どのCompute Engineもこのカタログを参照してデータを相互運用できます。Snowflakeマネージドやセルフホストのオプションもあります。

Iceberg TableとPolaris Catalogは、データ管理と分析の柔軟性と効率性を大幅に向上させる新機能です。これらの機能を活用して、より高度なデータ分析を実現しましょう。

。。。。

4つ目の記事は「BiomeのLintの違反箇所全てにbiome-ignoreを自動挿入するスクリプトを作った」です。

ESLintとPrettierの代替としてBiomeを導入した職場で、違反箇所が多く手動修正が現実的でないため、`biome-ignore`コメントを自動で挿入するスクリプトを作成しました。このスクリプトを使うことで、一旦ルールを適用しつつエラーを無視し、新たな違反が発生しないことを確認してから、手動でエラーを修正できます。

スクリプトは、Biomeの`--reporter=json`オプションで出力されたJSON形式の診断結果を基に、エラー箇所の上の行に`biome-ignore`コメントを挿入します。TSXファイルへの対応はありませんが、エラー位置を正確に特定し、適切に`biome-ignore`コメントを挿入する処理が含まれています。最後に、Biomeでのフォーマットを実行してコードを整えます。

このスクリプトはBiome 1.7.3を前提にしており、動作優先で作成されています。今後の公式サポートも期待されています。

。。。。

最後に紹介するのは「テーブルの行リンクは意外と面倒くさい」という記事です。

Next.jsでテーブルの各行をリンクにしつつ特定のセルをクリック可能にするのは難しい問題です。`table`タグを使うと`tr`タグを`a`タグで囲むことができず、不正な構造となります。これを解決するには、行リンクを諦めてプログラムによる画面遷移にするか、`div`タグを用いてCSSグリッドでテーブルを構築する方法があります。

行リンクを諦める場合、`useRouter`を使ってクリックイベントで画面遷移を実行します。もう一つの方法では、`next/link`を使って行全体をリンクとして扱う`div`で囲むことで実現します。ただし、`next/link`では`stopPropagation`が効かないため、`preventDefault`で伝搬を防ぐ必要があります。

特定のセルをクリックすると編集モードに切り替えるなどの要件がある場合、これらの方法でも対応可能です。ただし、行リンクは不要な場合も多く、GitHubのプルリクエスト一覧のようにシンプルに各行の特定部分をクリックするだけで詳細ページに遷移する設計が推奨されます。

結論として、テーブルの行リンク化は特別な要件がない限り避けた方がよいでしょう。行リンク化の必要がある場合は、この記事の方法を活用してみてください。

。。。。

さて、今日は5本の記事を紹介しました。「Datadog→New Relicの移行を決めた際のADRを公開します!」「AIに仕事を奪ってもらう」「Snowflake新機能:Iceberg Table と Polaris Catalog の仕組み」「BiomeのLintの違反箇所全てにbiome-ignoreを自動挿入するスクリプトを作った」「テーブルの行リンクは意外と面倒くさい」でしたね。

次回も楽しみにしていてください。詳しい内容はショーノートに書いてあります。番組の感想もお待ちしています。では、また次回お会いしましょう!マイクでした。

Related episodes

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