1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Clojure: DuctでRSSリーダーを作る - Ductとは

Last updated at Posted at 2024-12-18

advent_calendar_2024.png

Advent Calendar 2024 Day 19

昨日まで Ring を用いてTodoアプリを作ってきました。

今日からはClojureのフレームワークである、Ductを用いてRSSリーダーを作っていきます

前提

  • Javaがインストールされていること
  • leiningenがインストールされていること

プロジェクトセットアップ

シンプルなDuctのセットアップは簡単にできます

$ lein new duct <your project name>

ただ、追加の機能を指定してセットアップすることもできます

  • +api
    • APIを作成するのに便利なミドルウェアとハンドラーを追加
  • +ataraxy
    • Ataraxyルーターを追加
  • +cljs
    • ClojureScriptのコンパイル環境とホットリロード機能を追加
    • フロントエンド用のClojureScriptをビルドするためのツール(例: shadow-cljs)をセットアップ。
  • +example
    • サンプルハンドラーを追加
  • +heroku
    • Herokuへのデプロイに必要な設定を追加
  • +postgres
    • PostgreSQLを使用するための依存関係とデータベースコンポーネントを追加
  • +site
    • Webサイト向けのミドルウェア、favicon、WebJars、その他便利なツールを追加
  • +sqlite
    • SQLiteを使用するための依存関係とデータベースコンポーネントを追加

今回は apiataraxy を指定してセットアップします

$ lein new duct clojure-rss-reader +api +ataraxy

試しに起動してみます

$ lein run
Retrieving duct/database.sql.hikaricp/0.4.0/database.sql.hikaricp-0.4.0.pom from clojars
Retrieving duct/database.sql/0.1.0/database.sql-0.1.0.pom from clojars
...
(省略)
...
24-12-17 00:14:47 oookamasashinoMacBook-Air.local REPORT [duct.server.http.jetty:13] - :duct.server.http.jetty/starting-server {:port 3000}

どうやら 3000portで起動できたようです

まだルーティングを設定していませんが、リクエストを送ってみます

$ curl localhost:3000           
{"error":"not-found"}

404ですがレスポンスが帰ってきました

これでプロジェクトがセットアップできました。

構成

プロジェクトをセットアップすると、以下のようになっていると思います

clojure-rss-reader/
├── README.md
├── dev
│   ├── resources
│   │   └── dev.edn
│   └── src
│       ├── dev.clj
│       └── user.clj
├── project.clj
├── resources
│   └── clojure_rss_reader
│       ├── config.edn
│       └── public
├── src
│   ├── clojure_rss_reader
│   │   ├── handler
│   │   └── main.clj
│   └── duct_hierarchy.edn
└── test
    └── clojure_rss_reader
        └── handler

少しこれを解説します

/dev

これは開発環境用の設定やコードを配置するディレクトリ

例えば、REPLの初期化用コードを置いたり、開発用の設定(データベース設定)などを置いたりする場所です

/resources

構成ファイルや、静的リソースを格納するディレクトリ

例えば、データベース情報、ログ設定、環境変数などアプリケーションに必要な設定値を置けます

/src

アプリケーションの本体の実装を置くディレクトリ

/test

アプリケーションのテストコードを置くディレクトリ

まとめ

ディレクトリ 役割
/dev 開発環境専用の設定
/resources アプリケーションの設定、静的リソース
/src アプリケーションのコード
/test テストコード置き場

これらのディレクトリ構成を適切に活用し、効率よく開発を進めることができます

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?