Review Prabogo Go Framework
Bagi yang sudah pernah nyoba Golang, pasti sudah tidak asing dengan Fiber atau Echo untuk membangun API menggunakan Golang. Echo & Fiber sudah biasa, kali ini saya gwe aing akan mencoba sebuah framework dalam negri yang namanya Prabogo.
Di repository resmi prabogo, mereka menyatakan kalau Prabogo dibuat untuk membantu developer membangun aplikasi dengan lebih cepat, rapi, dan terstruktur lewat automation dan bantuan AI. Tujuannya jelas, untuk mempermudah proses development dan mengurangi kerja repetitif, lebih cocok digunakan untuk project skala besar termasuk kebutuhan enterprise yang butuh maintainability jangka panjang.
Instalasi

Disini saya mengikuti step-step yang diberikan di website resmi Prabogo. Dari segi proses instalasinya sih menurut saya gak terlalu rumit ya, saya biasanya setup project Go full from scratch kalo pake Fiber atau Echo.
Di Prabogo semua command-command yang diperlukan sudah disediakan, jadi prosesnya lebih mudah & cepat karena project kita bisa langsung auto ter-scaffolding & siap pakai.
Dari proses instalasi menurut saya rasanya mirip seperti proses instalasi framework PHP Laravel.
Fitur Built In
Saya akan membahas fitur yang sudah disediakan oleh Prabogo ini satu persatu. Fitur yang disediakan sebenarnya cukup banyak & lengkap, tapi terasa agak boros resource menurut saya kalau untuk production skala kecil, jadi sepertinya ini memang ditujukan untuk aplikasi skala besar yang butuh integrasi ke banyak third party tools atau untuk membuat sebuah microservices.
Docker Ready

Surprisingly, setelah melakukan proses instalasi saya langsung mendapatkan Dockerfile & docker compose didalam folder projectnya. Jadi tidak perlu lagi membuat script docker manual jika ingin run project di docker, bisa tinggal kita build & up saja ke docker.
Services Default

Ini adalah services yang disediakan secara default oleh prabogo melalui beberapa file docker-compose tadi. Kalo menurut saya pribadi too much sih sampai ada elastic search & rabbitmq juga, apalagi kalau digunakan untuk small-business, tapi ya bebas sih tergantung pada preferensi masing-masing.
Kalau memang ingin digunakan untuk production skala kecil dan tidak ingin pakai semua service yang disediakan sih sepertinya tetap bisa ditrondolin projectnya, tapi ya ngapain gitu kan effort bgt ngetrondolin project yang dari awal sudah disetup untuk jadi besar seperti ini, mending setup sendiri dari awal kalo ujung-ujungnya masih ditrondolin 😀
Hasil Akhir
Sekarang saya akan bahas hasil review framework prabogo ini berdasarkan pandangan pribadi saya. Kalo dari segi performa sih menurut saya sama saja seperti project go lainnya. Pros & Cons di bawah ini merupakan pendapat saya pribadi setelah mencoba framework ini & ngoprek sedikit.
Pros
- Proses instalasi mudah
- Banyak command yang sudah tersedia, sangat memudahkan setup & proses development
- Utility lengkap (database, caching, auth, message broker, logging)
- Hexagonal Architecture by default, menggunakan port & adapter, lebih mudah ditest
- Makefile commands, jadi kita tidak perlu menulis kode berulang untuk membuat sesuatu (misalnya membuat model, kita tinggal menggunakan
make model VAL=User) - Plug & play, bisa ganti services tanpa harus mengikuti services yang sudah disediakan tanpa merusak core logic
- Built in workflow, terintegrasi ke temporal workflow, rabbitmq, redis & fiber
- Built in AI Assistance
- Untuk tim besar ini sangat cocok karena code style jadi lebih konsisten
Cons
- Sangat Opinionated, karena kita harus selalu mengikuti style coding yang sudah ada. Tapi ini sebenarnya bisa jadi sedikit poin plus karena proses development bisa lebih cepat tanpa harus memikirkan struktur kode yang rumit diawal. Tapi untuk orang yang suka ngoding bebas & tim yang membuat style codingnya sendiri, framework ini tidak fleksibel & mungkin kurang cocok.
- Overkill untuk project skala kecil, untuk saya yang biasa membuat project hanya untuk bisnis skala kecil & menengah, Prabogo terasa sangat bloated dan too much.
- Learning curve tinggi, kalau belum terbiasa dengan hexagonal architecture, domain-driven design, port & adapters, kamu pasti akan bingung ketika menggunakan prabogo ini.
- Debugging jadi terlalu kompleks, karena banyak layer penghubung dari HTTP hingga ke database, proses tracing & debugging sepertinya jadi agak kompleks karena harus tracing satu-satu.
- Komunitas & ekosistem kecil, masih belum sebesar gin/echo.
- Resource/tutorial untuk belajar masih sedikit, hanya tersedia dokumentasi yang disediakan prabogo melalui website resminya.
