#
215
こんにちは!マイクです。今日は2024年12月12日、木曜日です!今日も「zenncast」で、Zennでトレンドの記事をいくつかご紹介していきますよ。

さて、前回は「全ての学習率スケジューリングを過去にするOptimizer」「「Agentless」という最新手法。LLMの新しい使い方。」「Pythonチョットデキルになるためのテクニック集」といった記事をお届けしました。

それでは、早速今日の内容に移りましょう!今日ご紹介する記事は全部で5本です。

まず最初の記事は「つらくないRepositoryパターンを求めて」です。この記事では、リポジトリパターンの基本的な概念や運用における課題について解説しています。リポジトリパターンは、データ処理を他のアプリケーション部分から分離し、CRUDメソッドを提供することでデータストレージの処理をカプセル化します。このパターンを使うことで、統一的なインターフェースを持ち、データ処理の隠蔽や一元化が実現できるんですね。

ただ、実装にはいくつかの課題もあります。特に、DBテーブルごとにリポジトリを作成することは依存関係の複雑化やコードの重複を招くことがあるんです。例えば、関連するテーブルを持つユーザーの場合、各リポジトリのインスタンスを依存注入する必要があり、「コンストラクタオーバーインジェクション」といった状態を引き起こすことになるんです。

このように、リポジトリのインターフェースが暗黙の依存関係を生じさせ、テスト時にモックを大量に使わなければならないこともあります。結局、適切なリポジトリパターンの運用には、しっかりとしたドメインモデルの設計が必要で、過剰な適応を避けるために注意が必要です。要するに、「つらくないリポジトリパターンなどない」っていう姿勢が大事なんですね。

。...。

続いて、2つ目の記事は「Re: 履歴テーブルから最新の1件を取ってくる方法」です。この記事では、PostgreSQLを使ってユーザーごとの最新の履歴データを取得する方法について解説しています。具体的には、集約処理を用いて最新の1件を効率的に取得するアプローチが紹介されています。

ユーザーごとにデータを並べ替えて、最初の1件を取得する必要があるんですが、PostgreSQLでは`any_value`関数を使うことで、効率的に最新のデータを取得することができます。さらに、インデックスを利用したクエリに最適化することが重要です。インデックスを作成することで、クエリの実行計画がフルスキャンからインデックススキャンに変更され、パフォーマンスが向上するんですね。

この記事では、具体的に`(user_id, created_at)`にインデックスを作成することでのパフォーマンス改善が示されています。実務でよく必要とされる処理を効率的に実現するための方法が紹介されていて、データベース操作に関心がある方には必見の内容です!

。...。

3つ目の記事は「リファクタリングの時間」を確保する技術です。リファクタリングはソフトウェア開発において非常に重要な活動なんですが、多くのエンジニアがそのための時間を確保するのが難しいと感じているんです。リファクタリングの目的は、生産性と品質の改善で、具体的には開発速度の向上やバグ発生率の低減を目指します。

リファクタリングには、リターンとコストを明確にし、複数の実施パターンを用意し、日常的に小規模なリファクタリングを行うことがポイントです。実施タイミングとしては、機能開発中や機能拡張前などが挙げられます。日々の開発にリファクタリングを組み込むことで、長期的な生産性と品質の向上が期待できるんですよ。

要するに、リファクタリングは生産性と品質改善のための投資で、その価値を理解し、コストとリターンを見極めることがエンジニアにとって重要なスキルだということです。

。...。

4つ目の記事は「URLが絵文字に!?史上最狂なURL短縮サービス誕生」です。新しいURL短縮サービス「Musubu」が登場しました。このサービスは、短縮されたURLのパス部分に絵文字を使用するというユニークな機能を持っています。短縮URLは正常に動作し、元のURLへリダイレクトされるんですね。

MusubuのインフラはCloudflareを利用していて、バックエンドはRust、フロントエンドはTypeScriptとReactで実装されています。GitHub Copilotが大いに活用され、簡単に開発を進められたそうです。ただし、短縮URLのドメイン名が長くなる場合があり、元のURLよりも長くなることもあるとのこと。これはクソアプリとしての特性とも捉えられています。

Musubuは2025年1月下旬まで公開予定で、ユーザーからのフィードバックを期待しています。興味のある方はぜひ試してみてくださいね!

。...。

最後に5つ目の記事、「エンジニア一年目で読んでよかった本まとめ」です。この記事では、エンジニア一年目の著者が読んで特に印象に残った書籍をジャンル別に紹介しています。Ruby/Rails関連の書籍から、基礎から応用までカバーする「プロを目指す人のためのRuby入門」や、実務に役立つ「Rubyコードレシピ集」が挙げられています。

また、Web技術全般に関する書籍として、「プロになるためのWeb技術入門」や「Webを支える技術」が紹介されていて、特に後者は必読書とされています。著者はこれらの書籍を通じて得た知見が日々の業務やキャリアにどれほど役立ったかを強調していて、読書を通じて新しい知識を得ることの重要性を再確認しています。

興味を持った書籍があれば、ぜひ手に取ってみてくださいね。

。...。

さて、今日は5本の記事をご紹介しました。リポジトリパターンの運用や、PostgreSQLの活用法、リファクタリングの重要性、ユニークなURL短縮サービス、そしてエンジニア一年目に読んでおくべき本についてお話ししました。次回もお楽しみに!詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてくださいね。

それでは、また次回お会いしましょう!番組の感想も募集しています。お便りお待ちしています!

Related episodes

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