Thêm mã = ​​nhiều lỗi hơn


10

Hồi học đại học, tôi nhớ một giáo sư dạy lớp một trong những định luật khoa học máy tính. Anh ta nói một cái gì đó như "Nhiều mã tương đương với nhiều lỗi hơn" và đặt tên cho nó (Luật của Whatchamacallit) và gán cho ai đó.

Có ai biết "luật" này đến từ đâu không, ai nói nó hay nguyên văn ban đầu của nó là gì?


6
Nhắc nhở tôi, "Một nhà thiết kế biết rằng anh ta đã đạt được sự hoàn hảo không phải khi không còn gì để thêm, nhưng khi không còn gì để lấy đi." -Antoine de Saint-Exupery
Kirk Woll

4
Nhắc nhở tôi về 'Không có mã nào nhanh hơn không có mã' (Hướng dẫn thiết kế chương trình của Taligent).
Luke Woodward

1
Chà, vì bạn đã đề cập đến nó ở đây và không ai biết nó được gọi là gì, hãy gọi nó là "Luật của Jeff".
Thất vọngWithFormsDesigner

@Kirk, một câu trích dẫn tương tự của Arthur William Radford (về hội họa): "Một nửa nghệ thuật là biết khi nào nên dừng lại". Rất thích hợp trong bối cảnh này là tốt.
Berin Loritsch

Tôi thích "Luật của Jeff". Tiếp đến là thỏa thuận về sách. Ai sẽ giúp tôi tìm một nhà xuất bản? :)
Jeff

Câu trả lời:


7

Ngoài ra, một số lượng đáng kể các sự cố do phần mềm bị lỗi gây ra do các nhà cung cấp tiếp tục bổ sung ngày càng nhiều tính năng cho chương trình của họ, điều này chắc chắn có nghĩa là nhiều mã hơn và do đó có nhiều lỗi hơn.

Bởi Andrew Tannenbaum


2
Liên kết đến các tìm kiếm Google không đặc biệt hữu ích. Bạn có thể trích xuất thông tin liên quan và gửi nó trong câu trả lời của bạn.
ChrisF

1
@ChrisF đó là kết quả đầu tiên trong tìm kiếm sách. Đó là tài liệu có bản quyền và tôi không muốn trích dẫn bằng văn bản. Cám ơn bạn đã góp ý.
Tiến sĩ belisarius

2
Tôi tưởng tượng sử dụng hợp lý sẽ bao gồm một trích dẫn.
Orble

1
Bạn dường như không muốn thực hiện các chỉnh sửa vì vậy tôi đã làm cho bạn.
Josh K

Điều này nghe có vẻ đúng. cảm ơn! ive đã cố gắng nhớ lại điều này trong nhiều năm.
Jeff

4

Cuốn sách của Boehm, Kinh tế Kỹ thuật phần mềm có nó như là một công thức cơ bản.

Nỗ lực = k * S ^ a

Trong đó S là dòng mã nguồn.

Và hàm năng lượng, a là> = 1.0.


4

@ Belisarius: Phát hiện tốt với Tannenbaum.

@Jeff: Nếu Tannenbaum không rung chuông, giáo sư của bạn có thể đã đề cập đến Occam và luật kinh tế / sự chống đối. (Xem Dao cạo của Occam .)

@ S.Lott: Dijkstra đã từng tranh luận khá mạnh mẽ chống lại việc sử dụng các dòng mã làm thước đo công việc hữu ích. Về cơ bản, ông nói rằng nó tối đa hóa các biến sai. Tất nhiên, Boehm cố gắng mô hình hóa nỗ lực và các dòng mã ở đó nên bao gồm các dòng mã bị xóa.

Biên tập:

Tôi nghĩ tôi muốn nói thêm rằng Dijkstra cũng nói rằng "sự đơn giản là điều kiện tiên quyết cho độ tin cậy".


7
Sử dụng "thêm nhận xét" dưới câu trả lời để thêm nhận xét thay vì viết chúng trong câu trả lời.

1
@ Thorbjørn Ravn Andersen - không may là người dùng <50 rep, anh ta không thể thêm nhận xét.
ChrisF

1
@ Thorbjørn: Bạn cần 50 rep để có thể để lại bình luận. @Kevin: Nếu bạn liên kết tài khoản SO và Lập trình viên của mình, bạn sẽ nhận được 100 đại diện, ngay lập tức cho phép bạn để lại nhận xét.
Anon.

1
@Kevin - Lập trình viên không phải là một diễn đàn mà là một trang Hỏi và Đáp. Bạn được chào đón để gửi một câu trả lời có nhiều thông tin hơn các câu trả lời hiện tại được cung cấp, nhưng bạn không nên đăng bình luận dưới dạng câu trả lời. Nếu bạn kiểm tra Câu hỏi thường gặp, bạn sẽ thấy rằng bạn cần 50 danh tiếng để có thể nhận xét, nhưng điều này khá dễ dàng để đạt được.
ChrisF

1
@Anon - bạn cần> 200 đại diện trên ít nhất một trang web để nhận tiền thưởng. Thật không may Kevin chỉ là 160 trên SO tại thời điểm này. Nhưng bạn có thể liên kết lại tài khoản của mình bất cứ lúc nào để khi bạn đạt được 200 trên một trang web, bạn sẽ có thể nhận được tiền thưởng trên tất cả.
ChrisF
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.