こんにちは、マイクです!今日は2024年12月1日、日曜日ですね。さて、今日はZennでトレンドの記事をいくつかご紹介しますよ!
まず最初に、前回紹介した記事について簡単に振り返りますね。前回は「テストデータの項目が多い時にはYAMLを使ってみよう」、そして「Snowflakeの多層防御について」、さらに「自動電話応対を実現する連携サーバーをGoで実装する」という3つの記事をお話ししました。
さて、おたよりは届いていないようですので、今日の内容に移りましょう!
今日紹介する記事は全部で5本です。それでは、まず1つ目の記事から!
1つ目の記事は「Goのプロジェクト構成について」です。Goのプロジェクト構成は、ネームスペースとして機能し、コードの構成を自由に調整できるのが特徴です。特に、ドメイン駆動設計、いわゆるDDDを用いたWebサーバーの構成が一般的です。具体的には「application」「cmd」「domain」「infrastructure」といったディレクトリ構造が提案されています。この構成によって、エンティティや値オブジェクトの識別が容易になり、各コンポーネントの役割が明確になります。著者は「振る舞いの局所性」という考え方を取り入れ、関連するコードを近接させることで使いやすさを向上させると提案しています。また、代替案として、ドメイン内でサブディレクトリを設けることも可能ですが、インポート名の衝突といった注意点もあるそうです。新規プロジェクトにおいてはこの提案を参考にしてほしいと述べています。
。.
2つ目の記事は「読書習慣をサポートするWebサービス「Tsundoku」をリリースしました!!」です。「Tsundoku」は、読書習慣を促進するためのWebサービスであり、読書ログやメモを簡単に記録・公開できるアプリです。ユーザーは本を検索し、章ごとにメモを取ることで、自分の読書履歴を視覚的に管理することができます。開発者のreckyさんは、読書をルーティン化できない現状を改善するためにこのサービスを作成しました。バックエンドにはRuby on Rails、フロントエンドにはNext.jsを使用し、特にNext.jsを選んだ理由は新しい構成に挑戦したかったからだそうです。開発過程での課題としては、Formatterのルール決定や認証機能の実装が挙げられます。今後は、APIにない本の登録機能を追加することを検討しているとのことです。
。.
3つ目の記事は「Fat Controllerをリファクタリングしたい!」です。最近のRailsアプリケーション開発において、Fat Controllerの問題に直面した著者が、単一責任の原則を適用してコントローラーの責務を明確にすることの重要性を訴えています。具体的には、各アクションを専用のクラスに切り出すことで可読性を向上させたり、共通の処理をまとめたりする手法が紹介されています。実際にデータ取得や整形のロジックを分離することで再利用性が高まり、コードがシンプルになることが強調されています。リファクタリングの結果、コントローラーは軽量化され、役割が明確になったそうです。
。.
4つ目の記事は「LibJSのざっくりとしたアーキテクチャと読み方」です。LibJSは一般的なバイトコードインタプリタとして実装されており、比較的読みやすいのが特徴です。このアーキテクチャは主に3つのステップで構成されています。まず「パース」では、ソースコードを解析し、抽象構文木を生成します。次に「コンパイル」では、ASTをバイトコードに変換し、最後に「実行」でバイトコードを実行します。各ステップには具体的な処理があり、詳細な情報も提供されています。LibJSの基本的な構造を理解するのに役立つ内容となっています。
。.
5つ目の記事は「サイトに雪を降らせて、クリスマスムードを演出しよう!!」です。この記事では、Reactを使用してサイトに雪を降らせる方法が紹介されています。`react-snowfall`というライブラリを使って、雪を降らせるコンポーネントを作成し、全ページに雪を降らせることでクリスマスの雰囲気を演出できます。雪の動きや量を細かく調整することも可能で、実際に豪雪のような演出もできるんです。クリスマス仕様の演出が簡単にできることがアピールされています。
それでは、今日お話しした内容を駆け足でおさらいしますね!Goのプロジェクト構成、読書習慣をサポートする「Tsundoku」、Fat Controllerのリファクタリング、LibJSのアーキテクチャ、そして雪を降らせるクリスマス演出についてご紹介しました。
次回もぜひお楽しみにしていてください!詳しい内容はショーノートに書いてありますので、ぜひチェックしてみてくださいね。そして、番組の感想もお待ちしています!それでは、またお会いしましょう!