Saya menemukan teknik pemrograman ini saat melakukan pemrograman berpasangan dalam sebuah wawancara dan tidak dapat menemukan namanya di google.
Idenya adalah Anda pertama-tama menulis ekspresi yang menggunakan variabel dan kemudian Anda menulis kode yang menghitung variabel di kemudian hari.
Untuk menggunakan beberapa kode contoh di sini:
private bool ValidPolicyNumber(string policyNumber)
{
var hasExpectedPrefix = policyNumber.Substring(0,5) == "POLIC";
var followedBy7Digits = Regex.IsMatch(policyNumber.Substring(6,7), "^[0-9]{7}$");
var hasLengthOf12 = policyNumber.Length == 12;
return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
}
Saat menulis fungsi ini menggunakan teknik yang saya sebutkan, Anda pertama-tama akan menulis baris terakhir return hasExpectedPrefix && followedBy7Digits && hasLengthOf12;
dan kemudian menulis 3 baris yang mendahuluinya.
Teknik terdekat yang bisa saya temukan adalah "angan-angan" dan itu dari SICP tapi itu berkaitan dengan fungsi panggilan yang akan Anda implementasikan nanti daripada menggunakan variabel yang akan Anda inisialisasi nanti.
sumber
Jawaban:
Itu hanya variasi pada komposisi fungsional.
Saksi:
Satu-satunya perbedaan nyata adalah bahwa versi Anda menggabungkan hasil yang dihitung dari fungsi yang lebih kecil ke dalam cakupan fungsional tunggal, yang adalah apa yang Anda inginkan kecuali ekspresi fungsional yang lebih kecil dimaksudkan untuk digunakan kembali di tempat lain.
sumber
Ini bisa saja saran dari Clean Code (buku), untuk digunakan ketika Dekomposisi Fungsional (seperti yang dijelaskan Robert) tidak berlaku karena fungsi yang dihasilkan tidak dapat digunakan kembali sendiri.
Namun, jika Anda ingin mendapatkan teknis tentang hal itu, buku Pola Implementasi , oleh Kent Beck, menamai teknik ini sebagai Menjelaskan Variabel Lokal (penekanan tambang):
sumber