Cevabım, gerçek dünya işi ve her geliştirme ekibinin karşılaştığı zorluklar açısından olacaktır. Bu soruda ve cevapların çoğunda gördüğüm şey gerçekten kusurları kontrol etmekle ilgili.
Kod hatasız olabilir. Herhangi bir programlama dili için "Hello World" kod örneklerinden herhangi birini alın ve bunu platformda tasarlandığı şekilde çalıştırın ve tutarlı bir şekilde çalışacak ve istenen sonuçları üretecektir. Kodun hatasız olmasının imkansızlığı konusunda herhangi bir teori sona ermektedir.
Mantık daha karmaşık hale geldikçe potansiyel hatalar ortaya çıkar. Basit Hello World örneğinde mantık yoktur ve her seferinde aynı statik şeyi yapar. Siz mantık güdümlü dinamik davranış ekler eklemez hatalara yol açan karmaşıklığı getiren şeydir. Mantığın kendisi kusurlu olabilir veya mantığa girilen veriler mantığın işlemeyeceği şekilde değişebilir.
Modern bir uygulama ayrıca çalışma zamanı kütüphanelerine, CLR, ara katman yazılımı, veritabanı vb. Katmanlara da bağlıdır.
Son olarak, uygulamanın mantığını besleyen verileri tükettiği uygulamalar / sistemler zinciri, mantıklarında veya yazılım içindeki tüm potansiyel hata kaynaklarıdır; mantık sürülerini veya veri tükettiği yukarı akış sistemlerini üst üste koyar.
Geliştiriciler, uygulamalarının mantığını destekleyen her hareketli parçanın% 100 kontrolünde değildir. Aslında pek kontrolümüz altında değiliz. Bu nedenle birim testi önemlidir ve yapılandırma ve değişiklik yönetimi, görmezden gelmemiz veya tembel / özensiz olmamamız gereken önemli süreçlerdir.
Ayrıca, uygulamanız arasında, kontrolünüz dışındaki bir kaynaktan veri tüketen, aktarılan veriler için spesifik biçim ve özellikleri ve sisteminizin, çıktı sisteminin dahilinde olmasını sağlamaktan kaynak sistemin sorumlu olduğunu varsaydığı herhangi bir sınırlama veya kısıtlamayı tanımlayan belgelenmiş anlaşmalar bu sınırlar.
Yazılım mühendisliğinin gerçek dünya uygulamasında, teorik olarak uygulamaların neden hatasız olamayacağını işinize açıklayarak onu uçuramazsınız. Teknoloji ve iş arasındaki bu nitelikteki tartışmalar, işletmenin para kazanma, para kaybetmeyi önleme ve / veya insanları canlı tutma yeteneğini etkileyen teknolojik bir arızadan sonra asla gerçekleşmeyecektir. "Bu nasıl olabilir" cevabı "bu teoriyi açıklayayım, böylece anlasın" olamaz.
Teorik olarak hesaplamayı gerçekleştirmek ve bir sonuç almak için sonsuza dek sürebilecek devasa hesaplamalar açısından, bir sonuçla bitip sonuç veremeyen bir uygulama - bu bir hatadır. Hesaplamanın doğası çok zaman alıcı ve yoğun hesaplama yapacak şekilde yapılıyorsa, bu talebi alırsınız ve sonucu nasıl / ne zaman alabileceklerini kullanıcıya geri bildirir ve parazit yapmak için paralel iplikleri başlatırsınız. Bunun tek bir sunucuda yapılabileceğinden daha hızlı olması gerekiyorsa ve iş yeterince önemliyse, gerektiği kadar sistemde ölçeklendirirsiniz. Bu yüzden bulut çok caziptir ve iş yapmak için düğümleri döndürme ve bittiğinde onları döndürme yeteneği.
Herhangi bir hesaplama gücünün tamamlanamayacağı yönünde bir talepte bulunma olasılığı varsa, işin sonlu bir sorun olduğunu düşündüğünün cevabını bekleyen bir iş süreci ile sonsuzluğa kaçmamalı.
print "Hello, World!"
... biraz daha açık olabilir misiniz?