Study
Genie

Struktur Project (routes.jl, app/resources)

Penjelasan

Project Genie punya konvensi folder yang mirip MVC. File `routes.jl` di root project adalah tempat semua endpoint didaftarkan. Folder `app/resources/` menyimpan modul per fitur (mis. `app/resources/Posts/`) yang biasanya berisi controller dan model terkait fitur tersebut, sementara `app/layouts/` menyimpan template HTML pembungkus halaman. Konvensi ini membuat kode tetap terorganisir walau project membesar — satu resource (mis. Posts, Users) punya folder sendiri berisi logic yang berkaitan, mirip pola "feature folder" yang juga umum di framework modern lain, bukan dipisah murni per jenis file (semua controller di satu folder, semua model di folder lain).

Contoh Konsep

# Struktur folder khas Genie
# app/
#   resources/
#     Posts/
#       PostsController.jl
#       Post.jl
#       views/
#         index.jl.html
#   layouts/
#     app.jl.html
# routes.jl
# config/
#   env/
#     dev.jl
#     prod.jl

# Isi routes.jl biasanya meng-include controller lalu mendaftarkan route
using Genie.Router
include("app/resources/Posts/PostsController.jl")
using .PostsController

route("/posts", PostsController.index)

Praktikum

Buat folder resource baru bernama Produk dengan file ProdukController.jl di dalamnya, lalu include dari routes.jl.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Nama modul controller sebaiknya mengikuti nama foldernya (PascalCase) supaya konsisten dan gampang dicari saat project membesar.