REFACTORING
Refactoring adalah sebuah teknik untuk memperbaiki desain dari sebuah code yang telah dibuat. Dalam penggunaan TDD, hal yang pertama kali kita lakukan adalah membuat sebuah unit test dan membuat sebuah implementasinya agar unit test yang telah dibuat menjadi GREEN. Pada implementasi awal inilah biasanya implementasi yang dibuat masih belum optimal yang nantinya dapat menjadi sebuah technical debt.
Dengan menggunakan refactoring, maka kita dapat mengubah implementasi yang sudah dibuat agar menjadi lebih optimal dan lebih maintainable. Pada saat melakukan refactoring, kita tidak boleh khawatir jika fungsionalitas dari implementasi yang baru itu tidak berjalan, jika pada saat testing menjadi RED maka implementasi masih belum benar dan perlu diperbaiki.
Melakukan refactoring biasanya perlu menggunakan sebuah panduan, panduan tersebut dinamakan sebagai Design Pattern.
Design Pattern
Design Pattern adalah solusi general yang sering dipakai secara berulang ulang pada software design. Penggunaan design pattern dapat mempercepat proses development dengan menggunakan solusi yang sudah teruji. Penggunaan design pattern juga dapat mencegah masalah pada saat development dan juga memperjelas code readability.