Artikel TDWTF hari ini dimulai dengan pengakuan dari penulis:
Saya tidak tahu apa anti-pola For-Case sampai relatif baru-baru ini, ketika ada serentetan artikel yang mengutuknya sebagai anti-pola. Saya yakin saya mungkin pernah menggunakannya , pada titik tertentu, tetapi saya tidak pernah tahu namanya . Ini dianggap sebagai antipattern buku teks yang umumnya menyiratkan kesalahpahaman untuk loop, pernyataan kasus, masalah yang diselesaikan, atau kombinasi dari ketiganya.
Dia kemudian melanjutkan seolah-olah pembaca, tentu saja, tahu apa pola anti-kasing tanpa penjelasan lebih lanjut diperlukan.
Tapi saya tidak melakukannya! Saya belum melihat "serentetan artikel" yang dibicarakan Remy, dan satu-satunya referensi signifikan yang dapat saya temukan di Google (selain artikel Remy) adalah posting blog oleh Raymond Chen tentang antiputern for-if , yang tampaknya terkait . Tapi dia juga tidak mendefinisikan "pola anti-pola".
Apa ini "For-Case anti-pattern" yang dibicarakan orang-orang ini, dan apa yang membuatnya menjadi anti-pola?
sumber
Jawaban:
"Pola" diperkenalkan dalam artikel WTF harian sebelumnya. Ide dasarnya adalah bahwa Anda memiliki
for
loop dengancase
bagian dalamnya yang memilih berdasarkanfor
variabel indeks loop.Dengan asumsi variabel indeks tidak dapat diubah di dalam loop, (yang tidak selalu benar, tergantung pada bahasa yang Anda gunakan), sedikit analisis menunjukkan bahwa eksekusi persis sama seperti jika Anda menghapus
for
dancase
sepenuhnya dan semua blok kasus hanya dieksekusi secara berurutan.sumber
Sederhananya, Anda menggunakan dua metode kontrol aliran yang berbeda, yang membuat kode lebih sulit untuk dipahami.
Jika Anda melihat for loop, Anda biasanya mengasumsikan bahwa kondisi loop akan mengontrol logika di dalam loop. Tetapi jika Anda kemudian membuat pernyataan seluruh kasus di dalam, dengan semua logikanya sendiri, itu keluar jendela.
sumber