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.
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.