みなさん、こんにちは!マイクです!今日の日付は2024年12月26日、曜日は水曜日です。今日も「zenncast」をお楽しみいただきありがとうございます。今日はZennでトレンドの記事をいくつか紹介していきますよ。
さて、前回紹介した記事には「RAG技術の現状考察と2025年のトレンド予想」や「行政のネットワーク」、「実行しなくても危険なコピペ」などがありましたね。具体的な内容には触れずに、今日のトピックに進んでいきましょう!
今日紹介する記事は全部で5本です。それでは、さっそく1つ目の記事からご紹介しますね。
1つ目の記事は「Devin AIにテストを丸ごと書かかせてCIがパスするまで作業してもらう方法」です。Devinはソフトウェア開発の自動化を支援するAIプラットフォームで、2024年12月に正式導入されました。このDevinを使うと、テストの作成をSlackで依頼することができ、Devinが自動でテストコードを生成し、GitHubにプルリクエストを作成してくれます。依頼時にはプロジェクト内のテスト事例を提供するとスムーズに進むとのことです。
さらに、もしCIが失敗した場合、Devinは自動で修正を行い、成功するまで作業を続けてくれるというのが大きなポイントです!追加の作業依頼もSlackやGitHubのプルリクエスト上から可能ですし、依頼した内容はDevinが学習して次回に活かされるので、フィードバックの蓄積も期待できます。
ただし、テスト内容の正確さや最終確認にはエンジニアのチェックが必要ですので、指示は明確に出すことが重要ですね。料金は月額500ドルからで、24時間稼働するフルスタックエンジニアとしてはリーズナブルと評価されているそうです。Devinの導入により、開発者は面倒なテスト作成から解放され、効率的な開発が可能になりそうですね。
。...。...。...。
2つ目の記事は「Hono Takibi というツールを作りました」です。Hono Takibiは、OpenAPI定義からZod OpenAPI Honoのコードを生成するツールです。このツールの目的は、開発者がビジネスロジックに集中できるように、定型的なコード生成を自動化することです。OpenAPI Specification、つまりOASはプログラミング言語に依存しないREST API記述フォーマットですよ。
Hono Takibiを使用するためには、YAMLまたはJSON形式のOpenAPI定義が必要です。なんと、Zodiosやopenapi-zod-clientを参考にして作られているため、型安全なAPIクライアントを生成することができます。これにより、既存APIの移行や新規開発の効率化が図れるんですね。
具体的には、OpenAPI定義に基づいてエラーハンドリングやリソースのスキーマ、ルート定義を生成します。使用方法も簡単で、OpenAPI定義ファイルと出力先のパスを指定するだけでコードが生成されるという便利さです。今後は型定義の自動生成機能や機能追加が検討されているとのこと。Hono Takibiはまだ発展途上ですが、開発者の役に立つツールとして期待が高いですね。
。...。...。...。
3つ目の記事は「Biomeを使ったLintとフォーマット / TypeScript一人カレンダー」です。本記事では、TypeScriptの開発においてESLintとPrettierを統合した新しいツール「Biome」について解説されています。BiomeはRustで実装されており、Lintとフォーマットの両方を高速に処理できることが大きな特徴です。
移行手順としては、まずプロジェクト内のコードスタイルをBiomeのデフォルトに合わせ、次にBiomeをインストールしてLintルールをオフにしフォーマット機能のみを適用します。これによって従来のESLintで3分かかっていた処理が数秒で終わるようになり、CI実行時間の短縮が期待されます。
Biomeは現在も進化中ですが、将来的には既存のESLintエコシステムが盛り上がることが期待されているとのこと。次回は「今後のTypeScriptに期待すること」をテーマにした記事が紹介される予定ですので、楽しみにしていてくださいね。
。...。...。...。
4つ目の記事は「「しっかり学ぶ数理最適化」裏話その2」です。この記事では、著者の著書に関連した裏話が紹介されています。特に、非線形計画の執筆過程での苦労や、連続最適化に関する専門外の問題に直面した経験が語られています。
著者はD先生やT先生からのアドバイスを受け、機械学習や金融工学の応用事例を用いて内容をまとめましたが、限られた時間内での深掘りが難しかったと反省しています。特に整数計画問題の定式化に力を入れ、様々な分野の事例を取り上げたとのこと。著者の経験や苦労が多くのエンジニアやデータサイエンティストにとって有益な情報となる内容になっています。
今後は数理最適化の実務向けの書籍を執筆する意向も示されており、非常に興味深いですね。
。...。...。...。
5つ目の記事は「strings.Replacer を積極的に使おう」です。Go言語における文字列の置換処理について、`strings.Replacer`の利用を推奨する内容です。標準的な方法である`strings.ReplaceAll`は効率が悪く、大量の文字列を走査するためパフォーマンスが低下してしまうのですが、`strings.Replacer`を使うことで効率が向上します。
具体的なコード例として、複数の置換対象を定義し、一度に処理する方法が紹介されています。ベンチマークテストでは、置換候補の数が増えるにつれ、`strings.Replacer`の方が優位に立つことが示されています。
特にHTTPレスポンスなどでの使用が効果的で、文字列の置換を複数回行うシナリオでは`strings.Replacer`を積極的に使用することが推奨されています。これにより、より効率的なプログラムを書くことが期待できるとのことです。
さて、今日は5本の記事を駆け足でおさらいしましたが、いかがでしたでしょうか?次回もお楽しみにしていてくださいね!詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてください。そして、番組の感想も募集していますので、お気軽に送ってくださいね!それでは、また次回お会いしましょう!バイバイ!