Diambil dari 
    https://www.gnome-look.org/p/1019711/
Diambil dari https://www.gnome-look.org/p/1019711/

Pada program magang kedua saya, saya mendapatkan kesempatan untuk bergabung dengan program magang GO-JEK, yang disebut GO-SQUADS. Saya pikir program magang ini sama dengan program magang lainnya yang saya ketahui. Program magang yang saya ketahui sebelumnya adalah pada hari pertama Anda akan diberikan deskripsi proyek, ditugaskan teman, dan memperkenalkan tim yang akan Anda kerjakan.

Namun, di sini saya menghadapi hal yang berbeda. Pada minggu pertama, saya bergabung dengan mini bootcamp coding, belum ada penugasan proyek. Di mini bootcamp, saya belajar banyak praktik terbaik TDD juga. Saya juga harus mengikuti ATURAN KODE YANG TIDAK BOLEH DILANGGAR. Jika saya melanggar salah satu aturan, entah bagaimana saya tidak dapat menemukan kode saya lagi, dan itu sering terjadi pada saya. Jadi, berikut adalah apa yang saya dapatkan dari bootcamp.

1. Jaga agar tetap sederhana dan bodoh

Ketika saya diberikan pernyataan masalah, saya perlu mencari tahu kelas, metode, dan atribut apa yang harus saya buat untuk menyelesaikan masalah. Setelah itu, saya membuat metode, menghasilkan kode secara otomatis yang dapat digunakan, mengimplementasikan metode, menjalankan kode, dan selesai. Sederhana, bukan?

Tapi tahukah Anda? Solusi yang saya buat sebenarnya kompleks. Saya membuat semua hal berdasarkan insting saya dan sebenarnya saya tidak benar-benar membutuhkan semuanya untuk menyelesaikan masalah. Dari sini saya belajar bahwa poin terpenting adalah memenuhi spesifikasi. Bahkan jika kode saya tidak cukup baik, saya bisa merombaknya nanti.

2. Jangan mencintai kode Anda

ATURAN KODE YANG TIDAK BOLEH DILANGGAR adalah panduan saya setiap kali saya menulis kode di bootcamp. Bahkan jika kode saya cukup baik dan memiliki unit test yang komprehensif, tetapi jika saya melanggar salah satu aturan, saya harus menghapus kode saya (rm -rf). Saya mengalami tragedi rm -rf dua kali tepat sebelum saya memulai tinjauan kode saya.

Dari tragedi ini, kode saya bukanlah hal yang penting. Saya telah belajar bahwa mengikuti aturan adalah hal yang paling penting karena saya dapat membuat kode yang lebih baik ketika saya mengikuti aturan. Misalnya, salah satu aturannya adalah komentar atau kode yang tidak terpakai tidak boleh dikomit. Jadi lebih baik membuat kode yang baik yang dapat menjelaskan dirinya sendiri daripada menambahkan komentar pada kode saya. Ketika saya merombak kode saya nanti, saya tidak perlu memperbarui komentar saya.

3. Pesan komit adalah dokumentasi saya

Setiap kali saya akan memulai tinjauan kode saya, hal pertama yang perlu saya tunjukkan adalah pesan komit saya. Sebelum saya menunjukkan kode saya, semua orang harus memahami bagaimana kode tersebut dikembangkan. Jadi, jika pesan komit saya tidak cukup mudah dipahami, peninjau tidak dapat membayangkan bagaimana itu. Itulah sebabnya setiap pesan komit harus mengekspresikan niat. Ini berarti pesan komit harus terkait dan mengekspresikan perubahan kode.

Membuat pesan komit yang baik adalah hal penting untuk dilakukan meskipun tidak terdaftar dalam ATURAN KODE YANG TIDAK BOLEH DILANGGAR. Saya membayangkan ketika tim saya tidak dapat memahami perubahan yang saya lakukan dan harus menghubungi saya untuk menanyakannya. Saya akan membuang waktu ketika tim saya bertanya kepada saya setiap kali saya melakukan komit. Meskipun pesan komit semakin panjang, tidak masalah selama itu jelas.

Dapatkah Anda melihat kesamaan dari setiap poin yang saya jelaskan di atas? Kesamaannya adalah semuanya DASAR. Saya tidak perlu belajar tentang algoritma, pola desain, menerapkan prinsip SOLID, dan lainnya untuk mengikuti aturan. Sangat mudah untuk diikuti dan hasilnya akan lebih baik.

Jadi, dari bootcamp, saya merasa para pelatih membimbing saya kembali ke dasar, untuk belajar apa yang tidak saya pelajari di perguruan tinggi. Merasa nyaman dengan yang dasar akan membawa saya untuk menciptakan sesuatu yang luar biasa. Semoga, GO-JEK akan mengadakan mini bootcamp coding lagi sehingga mahasiswa lain di luar sana dapat bergabung. Mungkin mini bootcamp untuk belajar hal-hal spesifik seperti belajar Go Lang, Desain Sistem, Arsitektur Microservices, dan teknologi lainnya.

Cappy Hoding! ๐Ÿ––๐Ÿพ