Saplama programlamanın anlamı nedir?


Yanıtlar:


30

Saplama yöntemi, yalnızca basit ancak geçerli (zorunlu olarak doğru olmasa da) sonuç veren bir yöntemdir.

Altyapı oluştururken genellikle yapılırlar ve şu anda gereken her yöntem için zaman harcamak istemezsiniz. Bunun yerine saplamalar yaratırsınız, böylece her şey derlenir ve IDE'nizin otomatik tamamlaması kullanmayı planladığınız yöntemleri bilir.

Saplamaların kullanıldığı bir başka yer test yaparken alaycıdır, Sabit sonuçlar veren bağımlılık enjeksiyonu ile normal bağımlılık yerine saplama yöntemleri sunarsınız ve sonra kodun bunlarla doğru olanı yapmasını sağlarsınız. Bu, test etmeye çalıştığınız koda yapılan testleri yalıtır ve yalnızca bu testleri çalıştırmak için bir veritabanını döndürmeniz gerekmediği anlamına gelir.


3
Nitpick: inatçılık yapılırken taslak kullanılır, alay yapılırken kullanılmaz. Alay ederken, alay kullanırsın. martinfowler.com/articles/mocksArentStubs.html
Jörg W Mittag

Yukarıdakiler için +1, ancak henüz eklenmiş yöntemlerin kullanılmasını beklemiyorsanız, taslakların bir istisna atması ya da bir hatayla sonuçlanması faydalı olabilir. Örnek "NotImplementedException": msdn.microsoft.com/en-us/library/… commons.apache.org/proper/commons-lang/javadocs/api-release/org/…
Dan Armstrong

6

Belki de bu en iyi somut bir örnekle cevaplanmıştır. Bir masaüstü uygulaması oluşturduğunuz durumu düşünelim. Sen adında bir işlevi olması karar verdik createMenubar, createToolbarve createMainböylece uygulama yapıcı temiz ve düzenli olduğunu.

Ana kodunuz buna benzer bir şekilde görünecektir (bu örnek python'dadır):

class ExampleApp():
    def __init__(self):
        self.createMenubar()
        self.createToolbar()
        self.createMain()

Çalışan her şey elinize geçinceye kadar ana fonksiyonunuz başarısız olur, peki geliştirme sırasında uygulamanızı nasıl test edebilirsiniz? Örneğin, üzerinde çalışmaya başlarsanız createMenubar, GUI'nin araç çubuğunu veya ana alanını uygulamadığınız için menubar oluşturduktan sonra başlatma başarısız olur.

Bu koçanları devreye girerler Sen adında bir işlev oluşturabilirsiniz. Olduğunu createToolbarve createMainbu tatmin aslında bunları uygulamak zorunda kalmadan uygulama yapıcısı (bu işlevler mevcut yani o), bir gereklilik. Bu işlevler taslaklardır:

def createToolbar():
    pass

def createMain():
    pass

Bu taslaklar sayesinde, ana program ve menü çubuğunu, araç çubuğunun veya programın ana bölümünün ayrıntıları hakkında endişelenmenize gerek kalmadan uygulamaya başlayabilirsiniz. Sonunda araç çubuğuna gidersiniz ve saplamayı gerçek fonksiyonla değiştirirsiniz. Ve son olarak, saplamayı çıkaracak createMainve buna gerçek bir uygulama yapacaksınız .

Taslakların mutlaka hiçbir şey yapmak zorunda olmadıklarını unutmayın. Bu saplama, örneğin, uygulama kurucusunun yerleştirebileceği boş bir kap widget'ı oluşturabilir. Mesele şu ki , geliştirirken diğer kodun çalışmasına izin verecek kadar kukla işlevler veya nesneler yaratıyorsunuz . Zamanla, uygulamalarınızı tamamlayana kadar saplamaları birer birer değiştirin.


2

"Yukarıdan aşağıya" programlamada bir "saplama" kullanılır. Uygulamanızı genelden özele doğru oluşturduğunuzda. Bunu yaparken, inşa etmek için zamanınız olmayan belirli uygulamalar için "taslakları" "yer tutucular" olarak kullanacaksınız. Genellikle kukla veya rastgele değerler gibi şeyleri programın daha genel kısmına döndürürler. Sorun değil, saplama, programın daha “kıdemli” kısmını çalıştıracak kadar değerli bir değer besliyor. Saplamanın değiştirilme veya gerçek hesaplama veya değere sahip olma zamanı gelene kadar.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.