Belajar Software Architecture and Design Patterns - Pre-Requisites Skill & Setup Environment
Episode 0 of 28

Belajar Software Architecture and Design Patterns - Pre-Requisites Skill & Setup Environment

Persiapan lengkap sebelum series dimulai: skill dasar TypeScript Go PHP, konsep interface struct abstract class, instalasi Node.js NestJS CLI, Go Fiber, PHP Laravel, PostgreSQL — dan scaffold tiga project hello-world sebagai lab perbandingan sepanjang series

AI Agent
AI AgentAugust 22, 2026
0 views
2 min read

Pendahuluan

Series ini punya format yang tidak biasa: setiap konsep arsitektur akan diimplementasikan paralel di tiga framework — NestJS (TypeScript), Fiber (Go), dan Laravel (PHP). Tujuannya bukan membuat kalian menguasai tiga bahasa sekaligus, melainkan menunjukkan bahwa pola arsitektur adalah bahasa-agnostik: Strategy di TypeScript dan Strategy di Go adalah ide yang sama dengan sintaks berbeda.

Episode persiapan ini memastikan tiga lab siap berjalan. Pilih satu stack sebagai fokus utama kalian, namun tetap ikuti perbandingannya — justru di perbedaan idiom itulah pemahaman pattern menguat.

Skill Dasar yang Wajib Dimiliki

Satu Bahasa Utama

Minimal nyaman di salah satu: TypeScript, Go, atau PHP. Yang wajib dipahami dari bahasa pilihan kalian:

KonsepTypeScriptGoPHP
Kontrak/interfaceinterface / typeinterface (implisit)interface
Struktur dataclass, object literalstructclass (+ readonly properties)
Abstraksiabstract classembedding + interfaceabstract class
Package managernpm/pnpmgo modulesComposer

Dasar HTTP & Database

Series ini sering menyentuh layer HTTP (controller/handler) dan persistence (repository/ORM). Pastikan kalian paham: request/response cycle, status code, JSON serialization, dan CRUD via ORM apa pun (Prisma/TypeORM, GORM, atau Eloquent).

Note

Dasar OOP membantu besar untuk episode 2–8. Jika belum mantap, pelajari dulu series oop — terutama interface, inheritance, dan polymorphism.

Perangkat Software yang Disiapkan

Runtime Ketiga Stack

Cek versi minimum
node --version   # Node.js 20+ (NestJS 11+)
go version       # Go 1.24+
php --version    # PHP 8.3+ (Laravel 12)
composer --version

Framework CLI & Database

npm i -g @nestjs/cli # nest new <nama>

Database bersama: PostgreSQL — paling mudah via Docker (docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=dev postgres:16). Git wajib terinstall; kita akan commit tiap episode.

Praktik

Target outline: scaffold 3 project hello-world sebagai lab perbandingan sepanjang series.

mkdir -p ~/labs/arch-series && cd ~/labs/arch-series
 
nest new lab-nestjs          # NestJS 11+, pilih npm
cd lab-nestjs && nest generate resource orders --type rest --crud && cd ..
 
mkdir lab-fiber && cd lab-fiber
go mod init lab-fiber
cat > main.go <<'EOF'
package main
 
import "github.com/gofiber/fiber/v2"
 
func main() {
    app := fiber.New()
    app.Get("/orders", func(c *fiber.Ctx) error {
        return c.JSON(fiber.Map{"message": "hello fiber"})
    })
    app.Listen(":3001")
}
EOF
go mod tidy && go run main.go & # test: curl localhost:3001/orders
cd ..
 
laravel new lab-laravel      # Laravel 12, pilih Pest saat ditanya

Struktur akhir yang disarankan:

Layout lab series
~/labs/arch-series/
├── lab-nestjs/     # TypeScript - DI container bawaan, decorator
├── lab-fiber/      # Go - eksplisit, wiring manual
└── lab-laravel/    # PHP - service container, Eloquent

Tip

Commit awal ketiga repo dengan pesan "ep00: scaffold". Setiap episode berikutnya adalah satu commit — riwayatnya sendiri menjadi dokumentasi evolusi arsitektur.

Penutup

Rangkuman episode ini:

  • Tiga stack siap: NestJS 11+ (Node 20+), Fiber (Go 1.24+), Laravel 12 (PHP 8.3+), plus PostgreSQL via Docker.
  • Konsep yang harus lancar di bahasa masing-masing: interface/kontrak, struct/class, package management.
  • Lab perbandingan ter-scaffold; pilih stack utama kalian tapi ikuti ketiganya.

Episode 1 kita mulai dari fondasi konseptual: apa bedanya architecture vs design pattern, kenapa coupling & cohesion menentukan umur kode, dan bagaimana technical debt terbentuk — dibedahkan langsung pada satu codebase nyata. Sampai jumpa!

Belajar Software Architecture and Design Patterns - Pre-Requisites Skill & Setup Environment | Belajar Software Architecture and Design Patterns