Yazılımda Gotcha Nedir?
Gotcha, bir kodun, beklenenden oldukça farklı bir çıktıyla sonuçlanan bir durum veya senaryodur.
Gayriresmi olarak “Got You” ’dan türetildiği söylenmektedir.
Programlamada, bir gotcha, belgelendiği gibi çalışan ancak sezgilere aykırı olan ve hem çağırması kolay hem de sonucunda beklenmedik veya mantıksız olduğu için neredeyse hataları davet eden bir sistem, program veya programlama dilinde geçerli bir yapıdır.
Gayriresmi olarak “Got You” ’dan türetildiği söylenmektedir.
Örnek
C/C++’daki klasik gotcha yapıdır
IF (a = b) …. kod;
Söz dizimsel olarak geçerlidir: b değerini a’ya koyar ve ardından a sıfır değilse kodu çalıştırır. Bazen bu bile amaçlanmış olabilir. Ancak en yaygın olarak bir yazım hatasıdır:
Yazılımcı muhtemelen;
IF (a == b) …. kod; yazmak istemiştir.
Burada a ve b eşitse kodu çalışır.
Modern derleyiciler, derleyici seçeneklerine (örneğin, gcc için -Wall seçeneği) bağlı olarak, önceki yapıyla karşılaşıldığında genellikle bir uyarı oluşturur. Bu durumu önlemek için, sabitlerin karşılaştırmanın sol tarafında tutulması tavsiye edilir.
”42 == x” yerine ”x == 42” bu şekilde, == yerine = kullanılması derleyici hatasına neden olur.
Bununla birlikte, birçok türde sonuç derleyiciler tarafından tespit edilmez.
Gotcha, bir kodun, beklenenden oldukça farklı bir çıktıyla sonuçlanan bir durum veya senaryodur. Ayrıca bir gotcha‘nın hata veya istisna olmadığı unutulmamalıdır.
Biraz açarsak Gotcha, programımızı yazarken küçük bir gerçeği veya noktayı kaçırdığımız için yanlış bir çıktıyla sonuçlanan bir koddur. Bu nedenle, gotchas’ı “kodlama yaparken yaygın olarak yapılan hatalar” olarak da düşünebiliriz.
Örneğin: Parantez yanlış veya gereksiz kullanıldığında ortaya çıkan birkaç gotcha vardır.
Python3
Print (5>2 == True)
Çıktı: False
Bu ”False”ile sonuçlanır çünkü yukarıdaki ifade etkili bir şekilde “5>2” ve ”2==True” anlamına gelir.
Bu da, True ve False anlamına gelir. Bu nedenle, nihai sonuç “False” tur.
Parantez kullanılarak düzeltilebilir.
Python3
Print((5>2) == True)
Çıktı:
True