Câu trả lời của tôi sẽ từ góc độ kinh doanh trong thế giới thực và những thách thức mà mọi nhóm phát triển phải đối mặt. Những gì tôi thấy trong câu hỏi này và rất nhiều câu trả lời thực sự là về việc kiểm soát khuyết điểm.
Mã có thể không có lỗi. Lấy bất kỳ mẫu mã "Hello World" nào cho bất kỳ ngôn ngữ lập trình nào và chạy trên nền tảng mà nó dự định và nó sẽ hoạt động ổn định và tạo ra kết quả mong muốn. Có kết thúc bất kỳ lý thuyết về sự bất khả thi của mã là không có lỗi.
Các lỗi tiềm ẩn xuất hiện khi logic trở nên phức tạp hơn. Ví dụ Hello World đơn giản không có logic và thực hiện cùng một điều tĩnh mỗi lần. Ngay khi bạn thêm hành vi động điều khiển logic là những gì giới thiệu sự phức tạp dẫn đến các lỗi. Bản thân logic có thể bị thiếu sót hoặc dữ liệu được nhập vào logic có thể thay đổi theo cách logic không xử lý.
Một ứng dụng hiện đại cũng phụ thuộc vào các lớp thư viện thời gian chạy, CLR, phần mềm trung gian, cơ sở dữ liệu, v.v.
Cuối cùng, chuỗi ứng dụng / hệ thống mà ứng dụng tiêu thụ dữ liệu cung cấp logic của nó là tất cả các nguồn lỗi tiềm ẩn trong logic của chúng hoặc trong phần mềm ngăn chặn các logic chạy trên đầu hoặc các hệ thống ngược dòng mà nó tiêu thụ dữ liệu.
Các nhà phát triển không kiểm soát 100% mọi hoạt động chuyển động hỗ trợ logic cho ứng dụng của họ. Thật ra, chúng tôi không kiểm soát được nhiều. Đó là lý do tại sao kiểm thử đơn vị là quan trọng và quản lý cấu hình và thay đổi là các quy trình quan trọng mà chúng ta không được bỏ qua hoặc lười biếng / cẩu thả.
Ngoài ra, các thỏa thuận được ghi lại giữa ứng dụng của bạn tiêu thụ dữ liệu từ một nguồn ngoài tầm kiểm soát của bạn, xác định định dạng và thông số kỹ thuật cụ thể cho dữ liệu được truyền, cũng như mọi giới hạn hoặc ràng buộc mà hệ thống của bạn chịu trách nhiệm để đảm bảo đầu ra nằm trong những giới hạn đó.
Trong ứng dụng công nghệ phần mềm trong thế giới thực, bạn sẽ không thể làm cho nó bay được bằng cách giải thích cho doanh nghiệp tại sao các ứng dụng về mặt lý thuyết không thể không có lỗi. Các cuộc thảo luận về bản chất này giữa công nghệ và doanh nghiệp sẽ không bao giờ xảy ra ngoại trừ hậu quả của sự cố công nghệ ảnh hưởng đến khả năng kiếm tiền của doanh nghiệp, ngăn ngừa mất tiền và / hoặc giữ cho mọi người sống. Câu trả lời cho "làm thế nào điều này có thể xảy ra" không thể là "hãy để tôi giải thích lý thuyết này để bạn hiểu."
Về mặt tính toán lớn mà về mặt lý thuyết có thể mất mãi mãi để thực hiện tính toán và nhận được kết quả, một ứng dụng không thể hoàn thành và trả về với kết quả - đó là một lỗi. Nếu bản chất của tính toán là rất tốn thời gian và tính toán chuyên sâu, bạn thực hiện yêu cầu đó và cung cấp phản hồi cho người dùng về cách thức / thời điểm họ có thể truy xuất kết quả và khởi động các luồng song song để xử lý nó. Nếu điều này cần diễn ra nhanh hơn có thể được thực hiện trên một máy chủ và kinh doanh đủ quan trọng, thì bạn hãy mở rộng nó ra càng nhiều hệ thống càng cần thiết. Đây là lý do tại sao đám mây rất hấp dẫn và khả năng quay các nút để đảm nhận công việc và quay chúng xuống khi hoàn thành.
Nếu khả năng tồn tại để nhận được một yêu cầu mà không có sức mạnh tính toán nào có thể hoàn thành, thì nó không nên tồn tại ở đó với vô số quy trình kinh doanh đang chờ câu trả lời cho những gì doanh nghiệp cho là vấn đề hữu hạn.
print "Hello, World!"
... bạn có thể rõ ràng hơn một chút không?