İnsanlar genellikle hızlı bir şekilde belirtmek için hızlı olduklarından, yazılımın yararlarından biri, donanıma kıyasla değiştirmenin kolay ve nispeten ucuz olması gerektiğidir. Bu, özellikle geç bir şeyin yanlış gittiğini fark ettiğinizde önemlidir. Aynı şeyi donanımla da yapın ve bir milyon dolar kaybedersiniz, dediğiniz gibi, simülatörlerinizi vb. Kullanırsınız ve bazingayı test edersiniz. Sanırım bu, paradigmanın, yazılıma geçtiğinizde bir şekilde başarısız olduğu yerdir.
Ortalama bir yazılım geliştiricisinin başının içine girin ve sahip olduğunuz şey inanılmaz derecede sıkı bir son teslim tarihi olan çok meşgul bir insan. Onun menajeri, birkaç hata bırakmanın sorun olmadığını söylüyor çünkü daha sonra düzeltebilirsiniz. Testler genellikle bir düşüncedir, ancak teste dayalı bir senaryoda bile, testler minimum düzeyde tutulur ve testlerin minimumunda yazılı olan kod ve çoğu durumda kısayollar alınabilir, böylece çoğu sınır vakası kaçırılabilir. Sistem tamamen ünite testine tabi tutulabilir, ancak nadiren bir bütün olarak titizlikle test edilir ve nadiren herhangi bir derecede stres testi yapılır. Buna sıfırdan bir yazılım yazdığınızı ve yazmayı taahhüt etmeden önce yazılımı simüle etmek için çok az fırsat bulunduğunu, çünkü donanımda bulabileceğiniz aynı tür ince taneli yapı taşlarından nadiren yazılım yazdığımız için ekledik.
OP'nin sorusuna geri dönün. Tüm yazılımlarınızı türetmek için bir yapı taşları sistemi tanımlayabilir misiniz ? Muhtemelen. Çok uygun maliyetli mi? Muhtemelen hayır, çünkü zaman zaman bu ideali destekleyecek kadar sağlam bir bileşen, test ve diğer gereçler sistemi geliştirmeye başladınız.Programlama sisteminde, rekabetinizin sizi zaten piyasaya sürdüğünü ve hatta daha da kötüsü, ortalama programcının bakış açısına göre muhtemelen çok sınırlayıcı ve daha muhtemel bir "çerez kesici" tarzı bir sistem bulacağınızı keşfedeceksiniz. sıkıcı. Şahsen, modül kodunun büyük bölümünün tamamen tamamen standartlaştırıldığı ve standartlaştırıldığı bir API üzerinde çalışıyorum, şu an yaptığım tek şey bir kod şablonu oluşturmak ve boşlukları doldurmak. Benim zamanımın çoğu basit bir bağlayıcı kod yazarak ve modülleri mümkün olduğunca hızlı bir şekilde kapıdan çıkarmakla geçirilebilir. Cidden akılda uyuşma. Aynı şeyleri tekrar tekrar kodlamaktan daha fazlasını yapmak için çok az fırsat var, bu yüzden başka bir proje fırsatı ortaya çıktığında, başka bir şey yapma şansına atlarım.
Öyleyse, yüksek kaliteli ve iyi faktörlü yazılımlar sunmayı nasıl başarırsınız, ancak aslında bunu yapmaktan zevk alırsınız? Bunun sizin seçtiğiniz araç ve metodoloji ile ilgili olduğuna inanıyorum. Benim için cevap iyi bir BDD API kullanımıydı, çünkü okuması çok kolay, fakat çok ayrıntılı bir kod oluşturmamı sağladı. Çok az sayıda yeniden kullanılabilir yöntemden bir test takımı oluşturabilir ve testlerimi şartnamelerin dilinde açıklayabilirim. Bu şekilde, yapı taşlarının tasarlanmasından ve kontrol edilmesinden sorumlu olduğum gerçeği dışında, daha bileşenlere dayalı bir geliştirme yaklaşımına yaklaşıyorum. Ek olarak, test çıktısı, hatanın oluştuğu yerde testin tam bölümünü belirtir, böylece hataların kurulumda mı yoksa iddiada mı olduğunu tahmin etmeme gerek kalmaz.
Metodolojinizi ayarlamak da yardımcı olur. Yalın kalkınma ilkelerini uygulamak ve bunları Çevik hareketin yıllardır patladığı birçok teknik ve ilkeyle birleştirmek için büyük bir savunucuyum. Bu kadar sinir bozucu bulmaya çalıştığım savurgan uygulamaların çoğunu elimine almak, gelişimi daha eğlenceli bir faaliyet haline getirmek için çok yardımcı oldu. Hala kodumda hatalar ortaya çıkacak - ancak umarım çok sık değil - hatalar ortaya çıkıyor, ancak şimdi kendimi daha fazla zaman ve daha sağlam testler yazmak ve 100'ü hedeflemek için daha fazla zaman harcamak için daha fazla teşvik buluyorum. % test kapsamı. Daha da iyisi, bütün bu yeşil ışıkların günümün sonunda göründüğünü görmek gerçekten güzel hissettiriyor.