showmygear

Tech Stack: Arsenal Pengembangan

[!NOTE] Filosofi: “Works on my machine” adalah alasan amatir. Tooling kami dipilih untuk menjamin Reproducibility (bisa dijalankan siapa saja) dan Isolation (tidak merusak sistem host).

Dokumen ini mendefinisikan standar alat yang kita gunakan. Ini bukan sekadar daftar software, tapi “Kontrak Kerja” antara developer dan mesin.


📖 Daftar Isi

Peta Ketergantungan (Dependency Map)

flowchart TD
    subgraph L0["Level 0: Infrastruktur"]
        WSL["WSL 2 / Linux"]
        SSH["Remote Server"]
    end
    
    subgraph L1["Level 1: Bahasa & Runtime"]
        Py["Poetry (Python)"]
        JS["fnm (Node.js)"]
        Rust["Nix (System Tools)"]
    end
    
    subgraph L2["Level 2: Deployment"]
        Docker["Docker Compose"]
        Redis["Redis Cache"]
        DB["Postgres / SQLite"]
    end
    
    L0 --> L1
    L1 --> L2
    
    style L0 fill:#e1f5fe,stroke:#01579b
    style L1 fill:#fff3e0,stroke:#ef6c00
    style L2 fill:#e8f5e9,stroke:#2e7d32

1. Level 0: Infrastruktur (The Bedrock)

Sebelum menyentuh kode, kita harus menyiapkan tanah tempat kita berpijak.

Arsitektur Hybrid: Windows + WSL

Kita menggunakan Windows 11 sebagai “Kaca Muka” (UI) dan Linux (WSL 2) sebagai “Mesin” (Logic).

flowchart LR
    subgraph Surface["Surface (Windows Host)"]
    W1["Windows Terminal"]
    W2["VS Code UI"]
    end

    subgraph Engine["Engine (WSL 2 / Linux)"]
    L1["Bash/Zsh Shell"]
    L2["Git & Runtimes"]
    end

    W2 <-->|"IPC (Inter-Process)"| L1
    W1 <-->|"Pty Bridge"| L1

Strategi Remote SSH (Lapis Daya)

Selain lokal, kita memanfaatkan Remote Hosts untuk beban berat:

flowchart LR
    subgraph Client["Client (Operator Machine)"]
    W1["Windows Terminal"]
    W2["VS Code UI"]
    end

    subgraph Remote["Remote Host (Powerful Server)"]
    S1["SSH Server"]
    S2["Heavy Compute / Runtimes"]
    end

    W2 <-->|"SSH Tunnel (Plugin)"| S1
    W1 <-->|"SSH Connection"| S1
    S1 --> S2

2. Level 1: Bahasa dan Runtimes (The Materials)

Kami memiliki kebijakan ketat tentang bagaimana bahasa pemrograman diinstal. JANGAN pernah menginstal bahasa secara global (System-wide) jika bisa dihindari.

🐍 Python: Determinisme Mutlak

📦 Node.js: Kecepatan Rust (fnm)

Runtime Alternatif (Spesifik)

🦀 Systems (Rust/Go): Tanpa Polusi


3. Level 2: Kontainer dan Deployment (The Shipment)

Bagaimana kode ini meninggalkan laptop Anda?

🐘 PHP: Strategi Konteks & Legacy

Target Tool Wajib Penjelasan
Modern Cloud (SaaS/Docker) Docker Compose Aplikasi + DB + Redis dalam satu paket isolasi. Standar emas untuk skalabilitas modern.
Legacy / Konvensional Laragon Pilihan terbaik untuk aplikasi konvensional di lingkungan legacy (hosting biasa). Bersih dan terisolasi.
Dihindari MAMP / XAMPP Cenderung mencemari registry global dan sulit di-update parsial. Gunakan hanya jika terpaksa.

[!TIP] Perspektif sandikodev: Kebenaran penggunaan alat bersifat relatif terhadap kebutuhan proyek dan kapasitas beban kognitif developer. Untuk proyek legacy, Laragon jauh lebih unggul dalam menjaga kebersihan lingkungan dibanding MAMP/XAMPP.

🌐 ASP.NET: Enterprise Power

Java: Enterprise Grade

🌐 Strategi Deployment Modern: Edge & PaaS

Langkah terakhir bukan sekadar memindahkan file ke server. Kami memilih wadah berdasarkan karakteristik teknis dan alur bisnis proyek.

[!IMPORTANT] Kriteria Pemilihan: Jangan asal pilih platform populer. Sesuaikan dengan Stack Teknologi (misal: Next.js paling optimal di Vercel) dan Alur Bisnis (misal: Aplikasi perbankan butuh VPC/VPS privat).


4. Level 3: Sistem dan Masa Depan (The Future-Proof)

Ini adalah lapisan di mana kita mulai berpikir tentang performa ekstrem, keamanan tingkat OS, dan arsitektur yang siap untuk dekade mendatang.

Trinity Sistem-Level: Rust, Zig, Elixir

Untuk kasus penggunaan yang membutuhkan kontrol hardware, performa tanpa kompromi, atau konkurensi masif, kita melihat ke bahasa-bahasa ini.

Wasm-Native: Komputasi Universal

WebAssembly (Wasm) bukan hanya untuk browser. Ini adalah target kompilasi universal yang memungkinkan kode berkinerja tinggi berjalan di mana saja, dengan sandbox keamanan yang kuat.


5. Matriks Keputusan dan Trade-off

Kenapa kita memilih jalan yang “sulit” ini?

Pilihan Alternatif Populer Mengapa Kita Pilih Ini? (The Why)
Poetry pip + requirements.txt pip tidak menjamin apa-apa soal sub-dependensi. Poetry menjamin Reproducibility sehingga Anda tidak perlu lagi bilang “tapi di laptop saya jalan”.
fnm nvm / nvs Kecepatan startup shell. Kita bukan orang yang punya waktu luang untuk menunggu Bash script kuno nvm berjalan.
pnpm npm / yarn pnpm menghemat GIGABYTES disk space. Berhentilah menduplikasi node_modules yang sama di setiap folder proyek.
WSL 2 Windows Native Paritas dengan server produksi. Menghilangkan bug “Works on my machine” yang sudah tidak relevan di zaman sekarang.

[!TIP] Kesimpulan & Kebenaran Relatif: Stack ini mungkin terasa lebih “ribet” di awal, tapi ia membayar dividen berupa stabilitas. Namun, ingatlah bahwa tidak ada kebenaran mutlak; semua bergantung pada apakah Anda seorang standalone fullstack atau bekerja dalam tim dengan pembagian peran DevOps yang ketat.

Satu Hal yang Absolut: “Keep it Simple” dan usahakan lingkungan selalu bersih. Lingkungan yang bersih membuat pekerjaan menjadi ringan, fokus, dan menunjang produktivitas maksimal.


🏠 Home | 🗺️ Roadmap | 🤖 Protokol Agentik