おはようございます、皆さん!今日もzenncastへようこそ。お相手はマイクです。今日は2024年7月10日、水曜日です。さて、今日はZennでトレンドになっている記事をいくつかご紹介したいと思います。
まずは、今日紹介する記事の本数についてお知らせします。今日は全部で5つの記事をご紹介します。それでは早速、最初の記事からいきましょう。
....
1つ目の記事は「"use server"; でexportした関数が意図せず?公開される」です。Next.jsのAppRouterで利用するReactのServer Actions機能についてのお話です。この機能はクライアントからサーバ上の処理を関数で呼び出せるため便利ですが、`"use server";`を誤用すると意図せず公開したくない関数が外部に公開されるリスクがあるんです。
具体的には、サーバーアクション用の関数が非同期関数として定義され、クライアントコンポーネントから呼び出されます。このとき、`"use server";`が付いたファイルで`export`された関数が外部から呼び出せるエンドポイントとして生成されてしまうんですね。特に注意が必要なのは、プライベートにしたい関数が誤って公開されるケース。例えば、`privateFunc()`という関数が`export`されていると外部からアクセス可能になってしまいます。
まとめとして、Server Actionsの仕組みを理解し、慎重にコードを書くことが重要だと強調されています。
....
2つ目の記事は「Hono Conference 2024 - Our first step」です。2024年6月22日に東京で初の「Hono Conference」が開催されました。このイベントはHonoに焦点を当てたトークのみで構成されるもので、大成功を収めました。
会場はdocomo R&D OPEN LAB ODAIBAで、100名が参加しました。イベントは3時間半にわたり、コントリビュータートラック、座談会、ユーザートラック、基調講演の4つのトラックがありました。
特に興味深かったのは、コントリビュータートラックでの発表です。watany-devさんがAWS LambdaやLambda@Edgeのアダプタ、Secure Headersミドルウェア、Static Site Generateのヘルパーを紹介したり、sor4chさんがHonoのStreamサポートやHono Storage、Hono DOについて話しました。中学生のnakasyouさんがクロスランタイムのラッパーとしてのHonoの可能性について議論したのも注目ポイントでした。
基調講演ではusualomaさんがWebフレームワーク開発における再定義、Web StandardsやTypeScriptの取り入れ、複数のランタイム対応の重要性を強調しました。次回のカンファレンスは更に大規模なものを目指す予定だそうです。
....
3つ目の記事は「先生! Cloudflare は信用できます!」です。この記事では、Cloudflareの信頼性を示すための根拠がまとめられています。
まず、大手日本企業がCloudflareを利用している点が挙げられています。例えば、GMO、日本航空(JAL)、早稲田大学、ライオン株式会社などです。特に日本航空のような大手企業が利用していることで、信頼性が高まります。
さらに、DiscordやCanva、Udemy、ChatGPTの開発元であるOpenAIもCloudflareを利用しています。また、全国53自治体のコロナワクチン受付システム「Cloudflare Waiting Room」も紹介されています。
統計データによると、2024年7月時点で全てのWebサイトの19.1%がCloudflareを使用していることが報告されており、これにより信頼性が裏付けられます。最後に、日本の自治体のWebサイトでもCloudflareが使用されていることが示されています。具体的には、少なくとも57の自治体のWebサイトにCloudflareが採用されています。
まとめとして、Cloudflareの信頼性を示すための多くの根拠が提供されており、教師や関係者の説得が進むことが期待されます。
....
4つ目の記事は「Ubie における、小さく泥臭くはじめる開発生産性改善」です。Ubieでは、開発生産性改善に向けた取り組みを具体的に紹介しています。
まず、社内エンジニアからのアンケートを通じて開発生産性阻害要因を特定しました。主な阻害要因はミーティング過多やレビュー・調整に時間を取られること、インフラ・データ基盤に関するスキル不足などです。
次に、GitHubの開発アクティビティデータを分析し、Four Keysの指標を基にデプロイ頻度や変更リードタイムを評価しました。このデータ収集にはTROCCOを利用し、得られたデータをBigQueryとdbtを通じて可視化しました。Looker Studioを用いてダッシュボードを作成し、各チームや個人の開発生産性を見える化しました。
また、個別チームへのdeep diveを行い、現場での課題感やチーム構成に関するリアルな情報を収集しました。これにより、具体的な改善点を見つけることができました。
定期的に関心を維持するため、社内のTech MTGで「開発生産性アワード」を開催し、成果を讃える企画を実施しました。これにより、エンジニアたちのモチベーション向上や継続的な関心を引き出すことができました。
Ubieの開発生産性改善は、特定の手法に依存せず、組織のカルチャーに合わせた柔軟なアプローチを重視しています。今後も開発生産性の最適化に向けて具体的な改善活動を続ける予定です。
....
最後に、5つ目の記事は「『単体テストの考え方/使い方』が主張するたった一つのこと」です。この記事は、オープンロジのエンジニアが社内読書会を通じて「単体テストの考え方・使い方」という本を読み、その内容を基に単体テストの重要性と効果的な方法についてまとめたものです。
主な主張は「実装の詳細ではなく、振る舞いをテストせよ」です。質の高いテストが無いと、コードの変更が困難になり、品質や開発速度が低下します。逆に、質の高いテストがあれば自信を持ってコードを変更でき、プロダクトの成長を支えます。
単体テストには「古典学派」と「ロンドン学派」があり、この記事では古典学派の立場を採用し、振る舞いをテストすることを重視しています。振る舞いをテストすることで、テストの信頼性を高めることができます。
具体的な方法として、合計金額が100円以上なら10円割引するロジックを例に、モックを使わずに結果に基づいてテストを行う方法が示されています。良いAPI設計が質の高い単体テストを自然に生み出すと述べられています。
まとめとして、実装の詳細ではなく、振る舞いをテストすることで質の良いテストが可能になると強調されています。
....
さて、今日は5つの記事をご紹介しました。それぞれ非常に興味深い内容でしたね。詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてください。そして、番組の感想も募集していますので、ぜひお寄せください。
それでは、次回もお楽しみに。マイクでした!