Drowning in Codes: Individual Review #2

Rahmania Astrid
slovneek
Published in
3 min readMar 20, 2019

Halo semua, kembali lagi bersama saya, Aci dari Slovneek! Di individual review kali ini, saya ingin membahas 3 subjek yang tidak kalah pentingnya dari yang kita bahas di review sebelumnya. Subjek-subjek itu adalah Clean Code, Persona, dan Testing!

Clean Code

Dari pertama masuk kelas PPL sampai sekarang, kata-kata clean code sering sekali diucap. Apa itu clean code? Clean code itu adalah sebuah paradigma pemrograman atas kualitas kode yang ditulis agar lebih efisien dan memudahkan semua orang untuk memahami kode yang ditulis dengan benar.

Kenapa menerapkan clean code? Tentunya dalam proyek kelompok, terdapat kebiasaan penulisan kode yang berbeda antar anggota. Clean code dapat meminimalisir kebingungan dalam mengerti kode orang lain. Dan dengan menerapkan clean code, proses debugging akan lebih mudah dilakukan.

Karena framework frontend dari aplikasi yang kami buat adalah React, maka kami dapat menggunakan linter dengan standar penulisan dari Airbnb. Guna linter tersebut agar memunculkan error saat kode yang kami tulis tidak sesuai dengan standar penulisan dan mengurangi kode yang tidak diperlukan atau redundant.

Poin-poin clean code yang dapat diterapkan adalah:

  1. Komentar yang efisien
  2. Penamaan yang baik
  3. Penulisan fungsi yang simple dan efektif
  4. Pengkodean Error dan Exception Handling
  5. Don’t Repeat Yourself
  6. Layout Formatting

Persona

Persona! Kata yang sebenernya jarang terdengar oleh hacker (atau mungkin saya doang, he he). Jadi apa itu persona? Persona itu adalah suatu representasi dari para user yang akan menggunakan aplikasi kita. Ini dapat membantu para designer untuk mengerti kebutuhan, pengalaman, behavior, dan goals user untuk menyediakan experience yang bagus bagi mereka.

Contoh template persona. Source: https://www.truconversion.com/blog/wp-content/uploads/Key-elements-in-Buyer-Persona.png

Untuk membuat persona yang bagus, ada 10 langkah yang dijadikan patokan, yaitu:

  1. Menemukan user
  2. Membuat hipotesis
  3. Verifikasi
  4. Menemukan pattern
  5. Membuat persona
  6. Mendefinisikan suatu situasi
  7. Validasi dan buy-in
  8. Menyebarkan wawasan
  9. Membuat skenario
  10. Meng-update terus persona yang sudah dibuat
Salah satu persona yang diberi oleh clien kami.

Dari persona yang diberi, sebenarnya masih sangat kurang dari definisi persona. Data-data yang diberi tidak representatif untuk semua user yang akan menggunakan aplikasi yang kami buat. Kenapa tidak representatif? Karena data-data yang diberikan bukanlah hasil research ke berbagai user dan digolongkan menjadi satu persona, melainkan data pribadi dari beberapa calon user. Sehingga hipster kami tidak dapat menggunakan persona tersebut dan melakukan research sendiri.

Lalu apa gunanya persona untuk para hacker? Karena biasanya hacker hanya mengerjakan kodingan tanpa bertemu dengan user, dengan adanya persona hacker tidak terlalu ter-disconnected dari para user. Hal itu bisa menjadi suatu motivasi untuk membuat program yang efisien dengan menggunakan empati terhadap user.

Testing: Mock Object, Stub (Test Isolation)

Dalam menuliskan test, kadang tidak bisa hanya sekadar menguji keberadaan suatu component. Namun functionality dan event handler dari component tersebut juga perlu diuji. Bagaimanakah menguji function dan event handler tersebut tanpa benar-benar melakukannya (seperti meng-klik button dan mengambil data dari database)? Disinilah kita memerlukan mock dan stub.

Stub

Stub merupakan objek yang berisi pre-defined data dan digunakan sebagai return value sebuah test. Stub sering digunakan saat return value dari suatu test merupakan data dari database yang dapat menimbulkan celah security.

Mock

Mock merupakan objek yang perform setiap call yang diterima. Dalam testing, mock diperlukan untuk men-test ekspektasi function dari suatu component.

Testing custom button component dengan mensimulasikan onClick event.

Dari code diatas, terlihat bahwa yang ingin di-test adalah kemunculan sebuah component modal jika suatu button di-click. Click event tersebut dilakukan oleh funtion “simulate(‘click’)”, lalu di-assert (expect) props dari component modal.

Sekian dari saya, semoga bermanfaat :). Da dah!

--

--