Có thối phần mềm chủ yếu đề cập đến hiệu suất, hoặc mã lộn xộn?


22

Định nghĩa thối phần mềm của Wikipedia tập trung vào hiệu suất của phần mềm. Đây là một cách sử dụng khác với tôi đã từng sử dụng; Tôi đã nghĩ về nó nhiều hơn về sự sạch sẽ và thiết kế của mã, về mặt mã có tất cả các đặc tính chất lượng tiêu chuẩn: khả năng đọc, khả năng bảo trì, v.v. Bây giờ, hiệu suất có thể giảm khi mã không thể đọc được, bởi vì không ai biết chuyện gì đang xảy ra Nhưng thuật ngữ rot phần mềm có tham chiếu đặc biệt đến hiệu suất? hoặc tôi có đúng khi nghĩ rằng nó đề cập đến sự sạch sẽ của mã? hoặc đây có lẽ là một trường hợp của nhiều ý nghĩa của thuật ngữ được sử dụng phổ biến trong quan điểm của người dùng, nó có liên quan đến hiệu suất; Nhưng đối với người thợ phần mềm, nó phải làm cụ thể hơn với cách đọc mã?


1
Wikipedia liệt kê 3 nguyên nhân, 2 trong số đó không liên quan đến hiệu suất, mã không được sử dụngmã được cập nhật hiếm khi ...
Izkata

2
"Phần mềm có thể suy giảm" hiệu suất "theo thời gian và trở thành thứ thường được gọi là" di sản "khi nó chạy và tích lũy lỗi; đây thường không được coi là mục nát phần mềm, mặc dù nó có thể có một số hậu quả tương tự." Tôi nghĩ rõ ràng rằng phần mềm thối không liên quan đến hiệu suất.
zzzzBov

1
Tính năng làm lại duy nhất trong toàn bộ trang wikipidia cảnh báo thẻ không có tham chiếu đến các nguồn tin cậy.
mattnz

Câu trả lời:


39

Thuật ngữ này không liên quan đến hiệu suất, ít nhất là không phải nơi nào tôi thấy nó được sử dụng.

Nó đặc biệt về mã không được duy trì tốt và trở nên ... bẩn ... thối. Đó là về mã mà thiết kế của nó chưa được cập nhật vì những thay đổi đã được thực hiện và rất khó đọc và khó hiểu.


1
Tôi đã từng nghe nó dùng để chỉ hiệu suất: vd: "Windows rot", cảm giác rằng bạn cần định dạng lại và cài đặt lại Windows thường xuyên vì nó chậm hơn theo thời gian.
Carson63000

3
Phải ... nhưng "thối phần mềm" và "thối cửa sổ" là những thuật ngữ khác nhau.
Stephen C

4
@Oded - sự tương tự không phải là với bụi bẩn. Đó là với loại thối xảy ra trong các tòa nhà cũ khiến chúng không có cấu trúc.
Stephen C

18

Hãy đối mặt với nó. "Thối phần mềm" không phải là một khái niệm kỹ thuật được xác định rõ. Nó giống như một mô tả mang tính miệt thị về những gì xảy ra khi phần mềm được bảo trì kém.

Trang Wikipedia đại diện cho một chế độ xem, nhưng có các quan điểm thay thế rõ ràng. Và bạn có thể nói rằng các quan điểm khác nhau phản ánh các ưu tiên và mối quan tâm khác nhau của người giữ quan điểm:

  • Một người tập trung vào việc làm cho phần mềm nhanh sẽ có xu hướng tìm kiếm bằng chứng về "sự thối phần mềm" trong hiệu suất.

  • Một người tập trung vào thiết kế / kiến ​​trúc (ví dụ vì họ cần thêm chức năng mới hoặc sửa lỗi chức năng), sẽ thấy "phần mềm bị thối" từ quan điểm đó.

Và, thật không hữu ích khi nói quan điểm của ai đúng hơn. (Nó giống như tranh luận liệu màu ngọc lam có nhiều màu xanh lá cây hay nhiều màu xanh hơn.)


1
Vì bài đăng của OP là về wikipedia, tôi trình bày: Màu ngọc lam (màu) - Đó là "màu xanh lá cây", nhưng là "màu xanh lam". Vì vậy, tôi nghĩ rằng tranh luận của bạn là âm thanh :).
Ben Lee

6

Tôi muốn nói rằng thuật ngữ "thối phần mềm" nói chung là sự phù hợp cho nhiệm vụ hiện tại. Phần mềm có thể trở nên ít phù hợp hơn với nhiệm vụ dự định của nó do lớp trên lớp sửa lỗi, tính năng mới và các điều chỉnh nhỏ. Được kết hợp với nhau, những người có thể ảnh hưởng xấu đến cả khả năng bảo trì và hiệu suất. Ngoài ra, nhu cầu của tổ chức có thể sẽ thay đổi theo thời gian và phần mềm có thể bị ép buộc vào các vai trò mà nó không bao giờ thực sự được thiết kế cho. Tất cả các yếu tố này dẫn đến việc phần mềm trở nên ít phù hợp hơn với nhu cầu của tổ chức và điều đó có thể xảy ra ngay cả với nỗ lực phối hợp để duy trì phần mềm.


6

Wikipedia nói rằng thối phần mềm và thối mã là như nhau. Tôi không đồng ý.

Thối mã là mất dần khả năng đọc và khả năng bảo trì khi ngày càng có nhiều thay đổi được thực hiện đối với mã.

Thối phần mềm là sự mất dần hiệu năng khi phần mềm được chuyển từ trình giả lập môi trường này sang trình giả lập môi trường khác. Một ví dụ là tất cả các phần mềm PDP dữ liệu chung chạy trên trình giả lập. Trên thực tế, đó là môi trường mục nát, không phải phần mềm.


+1. wikipedia tương đương phần mềm thối với thối mã. Chúng ta nên chỉnh sửa điều đó. Có nhiều phần mềm thối. Một ví dụ là không thể sử dụng / khó sử dụng GUI. Hết hạn / tài liệu sai cũng đóng góp.
Jayan

3

Phần mềm không thực sự trở nên tồi tệ, cũ kỹ, hao mòn hoặc "thối rữa" theo nghĩa truyền thống.

Nếu môi trường mà phần mềm hoạt động không thay đổi, về cơ bản phần mềm sẽ tồn tại mãi mãi. Đây là lý do tại sao tôi trở nên vô cùng tức giận khi ai đó hỏi liệu thư viện nào đó đã "chết" bởi vì tác giả đã không cập nhật nó trong 5 phút cuối (chỉ phóng đại một chút để có hiệu lực).

Tuy nhiên, môi trường thường không thay đổi; hệ điều hành được vá và cập nhật, máy tính được thay thế bằng những hệ điều hành mạnh hơn và các chương trình mới được cài đặt (như phiên bản mới nhất của máy khách như Internet Explorer, trình điều khiển thiết bị hoặc thư viện khác), mà phần mềm có thể phụ thuộc. Vì vậy, phần mềm phải được cập nhật để tính đến những thay đổi đó.

Có những hệ thống phần mềm đã chạy liên tục và đáng tin cậy trong nhiều thập kỷ theo nghĩa đen mà không được cập nhật hoặc bảo trì đáng kể. Phần mềm COBOL chạy trên các máy tính lớn xử lý các giao dịch ngân hàng xuất hiện (mặc dù tất cả chúng phải được sửa đổi vào năm 1999 để xử lý Y2K).

Sự nhấn mạnh của Wikipedia về hiệu suất dường như đang thiếu điểm; nhiều ứng dụng phần mềm thực sự tăng hiệu năng khi chúng được cài đặt trong môi trường mới hơn. Bài viết Wikipedia thực sự có vẻ quan tâm nhiều hơn với sự phình to phần mềm .


Phần mềm bloat có, điểm tốt. Theo cách hiểu của tôi về thuật ngữ này khi tôi đặt câu hỏi, phần mềm bị thối phải liên quan đến thực tế là nó tiếp tục được sửa đổi bởi một nhóm các nhà phát triển có tiêu chuẩn về làm sạch mã và thiết kế là ngang bằng.
Kazark

3

"Thối phần mềm" - là thuật ngữ rất mơ hồ và có thể có ý nghĩa đa dạng đối với bất kỳ ai, tùy thuộc vào cách nhận thức của bạn về khái niệm này, cũng như góc nhìn của bạn là gì .

Định nghĩa của Wikipedia về Phần mềm thối không đặt ra một tiêu chuẩn vì nó cũng được viết bởi một số cá nhân. Tôi nghĩ thuật ngữ này có nhiều ý nghĩa và cần được chia thành các lĩnh vực cụ thể, nơi nó được giới thiệu.

  • Các lập trình viên có thể hiểu đây là một cơ sở mã không thể bảo trì với đầy đủ các kiểu chống, không có sự nhất quán trong cách đặt tên và kiểu mã hóa.
  • Quản trị viên hệ thống có thể hiểu đây là hiệu năng kém, đầy rò rỉ bộ nhớ và địa ngục. bảo trì.
  • Người dùng cuối có thể hiểu đây là phần mềm rất phức tạp, không trực quan, khó làm việc.

2

Tôi đã luôn nghĩ rằng thối phần mềm là một điều kiện xảy ra khi bạn không sử dụng phần mềm trong một khoảng thời gian. Bằng cách nào đó, phần mềm biến thành một trạng thái không thể phát triển được. Sau đó, khi bạn đưa nó đến một điểm mà bạn có thể xây dựng nó, nó không hoạt động với các đầu vào và đầu ra như trước đây. Nó gần như là mã thực sự xuống cấp về hình thức mặc dù nó được lưu trữ kỹ thuật số.


1
Bởi vì môi trường (trình biên dịch, thư viện, hoặc bất cứ điều gì) thay đổi? Wikipedia không thảo luận về điều đó.
Kazark
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.