The Book of 77 Rules
A Personal Code of Conduct by SannXSzyn.
Prinsip Dasar
- Selalu jadi pembelajar. Teknologi tidak pernah berhenti, begitu juga aku.
- Tulis kode yang bersih dan modular. Bukan hanya untuk mesin, tapi untuk manusia (termasuk diriku di masa depan).
- Lihat kegagalan sebagai data, bukan sebagai akhir. Iterasi adalah kunci.
- Hargai waktu, baik milikku maupun orang lain. Efisiensi adalah seni.
- Kolaborasi lebih kuat dari kompetisi buta. Dua kepala lebih baik dari satu.
- Istirahat bukan untuk orang malas, tapi untuk regenerasi pikiran.
- Integritas adalah API utama dalam kehidupan. Jangan pernah mengkompromikannya.
- Sederhanakan yang rumit, jelaskan yang abstrak.
- Fokus pada solusi, bukan mengeluhkan masalah.
- Bagikan ilmu yang kamu punya, karena pengetahuan bertambah saat dibagikan.
- Pahami "mengapa" di balik "apa". Jangan hanya menggunakan, tapi mengerti cara kerjanya.
- Jaga keseimbangan antara dunia digital dan dunia nyata.
- Terbuka terhadap kritik konstruktif. Itu adalah *debugging* gratis untuk diri sendiri.
- Adaptif. Seperti kode yang baik, bersiaplah untuk refactoring diri.
- Dokumentasikan perjalananmu. Tulisan adalah *commit message* untuk hidup.
Aturan Pengembangan & Penggunaan API
- API adalah kontrak. Sekali dipublikasikan, hormati komitmenmu pada para penggunanya.
- Desain *endpoint* yang intuitif dan berorientasi pada sumber daya (*resource-oriented*).
- Gunakan *HTTP verbs* (GET, POST, PUT, PATCH, DELETE) sesuai maknanya.
- Konsistensi adalah segalanya: penamaan, parameter, struktur JSON, dan format *error*.
- Terapkan *versioning* pada API sejak awal (`/v1/`). Evolusi harus terprediksi.
- Pesan *error* harus membantu: beri tahu apa yang salah, mengapa, dan bagaimana memperbaikinya.
- Gunakan kode status HTTP yang standar dan bermakna.
- Jangan pernah mengekspos ID database internal. Gunakan *UUID* atau *slug* publik.
- Validasi dan sanitasi setiap *input* dari pengguna. Jangan pernah percaya pada klien.
- Keamanan bukan fitur tambahan, tapi fondasi. Terapkan otentikasi & otorisasi yang kuat.
- Implementasikan *rate limiting* yang adil untuk melindungi servis dari penyalahgunaan.
- Sediakan dokumentasi yang jelas dan interaktif. Dokumentasi adalah UI dari sebuah API.
- Respons API harus bisa diprediksi. *Null* lebih baik daripada *undefined*.
- Tawarkan fitur *pagination*, *sorting*, dan *filtering* untuk koleksi data yang besar.
- Gunakan *caching* di sisi server untuk mempercepat respons pada data yang jarang berubah.
- Untuk operasi yang lama, gunakan pola *asynchronous* dengan *webhook*.
- Desain *payload* seminimal mungkin. Jangan sertakan data yang tidak perlu.
- Hormati prinsip *statelessness*. Setiap permintaan harus independen.
- Pastikan operasi *idempotent* (PUT, DELETE) benar-benar *idempotent*.
- Sediakan *health check endpoint* (`/health`) untuk monitoring.
- Tulis *changelog* yang jelas untuk setiap versi baru API.
- Buat kebijakan *deprecation* yang jelas dan beri pengguna waktu untuk migrasi.
Aturan Sebagai Pengguna API (Etika Digital)
- Sebagai pengguna API, baca dokumentasi terlebih dahulu sebelum bertanya.
- Hormati *rate limit* yang ditetapkan. Jangan menjadi tetangga yang berisik.
- Simpan *API key* dan *secret* dengan aman. Gunakan *environment variables*.
- Tangani *error* dengan baik di sisi klien. Implementasikan *retry logic* dengan *exponential backoff*.
- Gunakan *caching* di sisi klien untuk menghindari permintaan data statis yang berulang.
- Gunakan *header* `User-Agent` yang deskriptif untuk membantu identifikasi trafik.
- Jika API menyediakan *webhook*, gunakan itu daripada melakukan *polling*.
- Jika menemukan celah keamanan, laporkan secara bertanggung jawab (*responsible disclosure*).
- Pahami dan patuhi *Terms of Service* (ToS) dari API yang digunakan.
- Jangan *scrape* data jika API sudah disediakan. Gunakan pintu yang sopan.
- Optimalisasi *payload* permintaanmu. Jangan meminta 1000 data jika hanya butuh 10.
- Verifikasi sertifikat SSL. Jangan abaikan peringatan keamanan.
- Hargai penyedia API gratis dengan tidak menyalahgunakan layanan mereka.
Prinsip Lanjutan & Profesionalisme
- Pilih teknologi yang tepat untuk pekerjaan, bukan hanya karena sedang tren.
- "Ini bukan bug, ini fitur" adalah lelucon, bukan argumen. Akui kesalahan dan perbaiki.
- Ukur semuanya: performa, penggunaan, dan tingkat *error*. Data lebih meyakinkan daripada asumsi.
- Automasi segala sesuatu yang berulang: *testing*, *deployment*, *linting*.
- Pahami konteks bisnis di balik kode. Solusi teknis terbaik memecahkan masalah bisnis nyata.
- Berani mengatakan "tidak" atau "saya butuh lebih banyak waktu" jika kualitas taruhannya.
- Jadilah mentor bagi yang lebih junior dan tetaplah menjadi murid bagi yang lebih senior.
- Tinggalkan kode lebih bersih daripada saat kamu menemukannya (*The Boy Scout Rule*).
- Jangan takut melakukan *deprecate* pada hal yang usang, baik dalam kode maupun dalam hidup.
- Jangan mengoptimalkan sebelum waktunya (*premature optimization is the root of all evil*).
- Pahami perbedaan antara konkurensi dan paralelisme.
- Kuasai *tools* dasarmu: terminal, Git, dan editor kodemu.
- Lakukan *code review* dengan empati. Kritik kodenya, bukan orangnya.
- Terima *code review* dengan lapang dada. Itu bukan serangan, tapi kesempatan belajar.
- Jika kamu harus menjelaskan sesuatu lebih dari dua kali, tulislah menjadi dokumentasi.
- Jaga kesehatan fisikmu. Punggung yang sakit tidak menghasilkan kode yang baik.
- Belajar untuk beristirahat, bukan untuk berhenti.
- Rayakan kemenangan kecil. Setiap *bug* yang teratasi adalah pencapaian.
- Ingatlah manusia di balik API dan kode. Baik yang membuat, maupun yang menggunakan.
- Tetap rendah hati. Selalu ada hal baru untuk dipelajari.
- Anggap keamanan sebagai proses, bukan tujuan akhir. Ancaman selalu berevolusi.
- Komunikasi yang jelas adalah *compiler* terbaik untuk kerja tim.
- Tulis kode yang akan kamu banggakan lima tahun dari sekarang, bukan kode yang akan kamu kutuk.
- Terkadang, solusi terbaik adalah tidak menulis kode sama sekali.
- Pahami dan kelola *technical debt* secara sadar. Jangan biarkan bunga majemuknya menghancurkan proyekmu.
- Selalu tempatkan dirimu di posisi pengguna. Empati adalah alat desain yang paling kuat.
- Jangan menyerah pada masalah yang sulit setelah 10 menit. Ketekunan seringkali membedakan antara yang biasa dan yang luar biasa.
Authored & Endorsed By:
Smdxyz
Sann
Szyn