Skip to content

I... didn't sign up for this.

Kamu bekerja di sebuah perusahaan software house dengan reputasi yang sangat baik melihat sekian banyak proyek yang pernah diselesaikan sebelumnya. Ada beberapa proyek yang masih dikembangkan hingga sekarang, termasuk proyek yang kau kerjakan. Yah, bisa dibilang kau merupakan salah satu developer senior di perusahaanmu.

Begitu juga rekanmu, Vincent. Ia merupakan teman kerja dengan pengalaman yang kurang lebih sama denganmu. Vincent memiliki tanggung jawab di proyek yang berbeda denganmu. Dari Vincent, kamu mendengar banyak cerita mengenai orang-orang yang ia temui dan proyek yang ia kerjakan.

Beberapa minggu yang lalu, Vincent bercerita kepadamu bahwa sekarang ia menjadi mentor bagi beberapa developer baru. Mereka bertanggung jawab terhadap suatu proyek yang baru pula, yaitu membuat sebuah pemutar musik. Proyek ini merupakan sebuah investasi oleh seorang earl yang memanfaatkan bagaimana musik merupakan suatu hal yang disenangi banyak orang dari berbagai kalangan, tetapi selera musik orang berbeda-beda.

Beberapa hari dari sekarang, mereka harus menunjukkan progres pengembangan pemutar musik ini ke klien. Namun, karena Vincent sedang izin menghadiri acara keluarganya di luar kota, maka kamu yang akan menggantikannya untuk sementara waktu. Vincent mengabarimu dengan cukup mendadak pada akhir minggu dan terus terang, itu membuatmu sedikit kesal.

Bayangkan apabila kamu sudah menyelesaikan seluruh task yang perlu dikerjakan, tidak ada tetangga yang berisik, cuaca sesuai dengan mood, tampak seperti semuanya damai dan tidak ada gangguan. Semuanya terlihat bagus, kamu merencanakan untuk menghabiskan hari ini dengan bersantai sejenak. Setidaknya itu yang kamu pikirkan pada pagi hari ini. Namun, di akhir hari, kamu berusaha untuk merelakan harimu yang tidak berjalan sesuai rencana.

Ew, this code smells.

Hari pertama saat kamu bertugas sebagai pengganti Vincent, salah satu hal yang perlu kamu lakukan adalah melakukan code review. Menurut Vincent, task yang perlu dilakukan sudah hampir semuanya selesai, tetapi perlu dilakukan sedikit refactoring. Tanpa membuang waktu, kamu pun membuka code yang sudah ada. Namun, ekspresimu berubah menjadi horor ketika melihat program yang perlu kamu perbaiki.

Teleponmu berdering. Layar menunjukkan bahwa rekanmu meneleponmu. Tanpa ragu, kamu pun mengangkatnya dan disambut dengan suara rekanmu yang menanyakan keadaanmu saat ini.

"Aku pikir kau bilang programnya hanya perlu sedikit refactoring," jawabmu singkat.

"Hm? Memang ada apa dengan programnya?"

"...bau."

Setelah hening selama dua detik, kamu mendengar ledakan tawa dari seberang telepon. "Banyak code smell, ya?", sambil bernada sedikit tertawa rekanmu melanjutkan, "Maaf merepotkan, ya. Menurut beberapa rekan kerja kita, sepertinya beberapa proyek sudah menggunakan SonarQube. Coba kau gunakan juga, pasti membantu."

"Hah? Apa lagi itu? Terdengar seperti menambah pekerjaan saja."

"SonarQube itu sebuah tool yang membantumu meningkatkan software quality. Namun, perlu diingat bahwa SonarQube tidak dapat menilai efisiensi dan design pattern yang kamu pakai, sehingga kamu perlu mencari tahu sendiri code smell pada bagian tersebut. Tapi kau coba saja dulu, hal itu akan membantumu dalam merapikan code yang masih bau."

"Hooo... begitu. Baiklah, akan kucoba. Ngomong-ngomong, ini belum di-deploy ya? Apa aku harus men-deploy-nya juga?"

"Ya, tentu saja. Aku yakin kamu sudah tahu apa yang perlu kamu lakukan dan bagaimana caranya, bukan?"

Tentu saja! Kamu adalah developer yang berpengalaman, deployment bukan lagi hal yang asing bagimu. Dengan semangat, kamu pun meyakinkan Vincent soal itu.

"Oh oke, lalu..", belum selesai kamu berbicara, rekanmu berbicara kembali dengan nada buru-buru.

"Maaf, aku tahu kamu memiliki banyak pertanyaan, namun sekarang aku dipanggil ibuku untuk berpergian kembali. Saran dariku, kamu dapat terlebih dahulu mengecek setiap dokumen tersebut. Di sana telah tersedia langkah per langkah mengenai keperluan kamu. Tidak hanya itu, terkadang klien menyisipkan beberapa hal yang perlu kamu lakukan. Coba saja dicek kembali file-nya. Sampai disini saja ya. Byee!"

Bunyi telepon telah terputus. Kamu pun segera kembali fokus ke hal-hal yang perlu kamu kerjakan.

Checklist

  • Refactor code di PlaylistServiceImpl.java untuk mengurangi code duplication
  • Refactor (dipisah) template HTML sebelumnya yang digabung (keindahan frontend tidak dinilai).
  • Menjalankan analisis kode menggunakan SonarQube
  • Memperbaiki code smell berdasarkan hasil SonarQube
  • Men-deploy aplikasi ke Heroku
  • Menambahkan link aplikasi di readme.md

Bonus

  • Memakai checkstyle. Kalian bisa menginstall plugin checkstyle di Intellij untuk membantu pengecekan di lokal.
  • Install checkstyle di gradle dan ditambahkan sebagai stage dengan allow_failure: true di .gitlab-ci.yml.

Notes

  • Pastikan telah terinstall PostgreSQL untuk menjalankan program di localhost dan application.properties sudah diubah sesuai kebutuhan
  • Tidak perlu menambahkan test

Referensi

Tutorial SonarQube
Tutorial Deployment Menggunakan Heroku
Tutorial Gitlab Runner (Opsional)


Last update: 2022-04-12 23:06:51
Created: 2022-04-12 23:06:51
Back to top