Test Driven Development featuring Spartan Programming

In the spacecraft business no design can survive the review process, without first answering the question—how are we going to test this thing? – Glen B. Alleman

Jeff Atwood memberikan posting menarik mengenai Spartan Programming, sebuah praktek pemrograman yang mengedepankan konsep minimalis. Hal ini tentu akan membuat beberapa orang yang menyukai membaca code yang verbose jadi ‘mati kutu’.

Setelah saya melihat seperti apa Spartan Programming ini diterapkan di Java, sebenarnya praktek ini sangat cocok sekali jika digabungkan dengan praktek Test Driven Development (TDD) dan ini ternyata sering saya praktekan secara tidak sadar selama menganut ajaran TDD. Oke mari kita bahas dahulu mengenai TDD.

Pepatah cina pernah mengatakan,

Experience is a hard teacher because she gives the test
first, the lesson afterward

Dari situlah konsep TDD, TDD mewajibkan kita untuk menulis code test terlebih dahulu, baru bikin code implementasinya. Siklusnya adalah Test, Code, Refactor. Misalkan, fungsi penambahan. Sebelum membuat fungsinya kita buat dulu unit testnya yang mengatakan bahwa 1 + 1 harusnya 2, 2 + 2 harusnya 4. Jalankan unit testnya pasti akan error. Kemudian baru buat implementasinya misalkan return x + y. Jalankan lagi unit testnya, hasilnya sukses. TDD tidak berhenti sampai situ, biasanya kita akan melakukan code yang penting test kita sukses tanpa mementingkan bagaimana kita memperoleh hasilnya. Sehingga di step terakhir ada yang disebut Refactor. Merubah mekanisme atau alogritma dari suatu code program tanpa mengubah fungsi program itu sendiri untuk membuat code program menjadi lebih efisien dan sederhana. Ingat sekali lagi siklusnya,  Test – Code – Refactor. Read out loud please. Again.

Kemudian dalam Spartan Programming ada beberapa hal yang harus diminimalisir misalnya jumlah variable, visibility variable, accessibility variable, keragaman variable, lifetime varible, dan penggunaan array. Silahkan lihat contohnya.

Jika digabung dengan Spartan Programming maka akan memberikan ‘taste’ tersendiri dalam praktek TDD. seperti iklan salah satu rokok, “lebih punya Taste!”. Minimalis.

So the new spirit of TDD,

Test – Code – and SPARTAAAAN!

*Jadi inget film 300. Leonidas: Spartans, tonight, we dine in hell!

2 comments

Leave a Reply