2008-10-09 39 views
5

Tỷ lệ tốt cho các Lớp số đối với các dòng mã cho một ngôn ngữ hướng đối tượng (nói C++, C#, Java và các thích của chúng) là gì?Tỷ lệ tốt của Lớp với các dòng mã cho ngôn ngữ hướng đối tượng là gì?

Nhiều người, kể cả người quản lý, giống như chỉ số LOC (mã vạch) truyền thống để đo lường độ phức tạp của phần mềm, trong khi nhiều nhà phát triển hướng đối tượng cứng sẽ nói LOC vô giá trị số lượng của nó. Và cá nhân tôi tin rằng Lớp học có thể là một số liệu phức tạp hơn về mặt phức tạp, nhưng không có số liệu LOC thì độ phức tạp thực sự của các lớp đó (số lượng các poltergeists và các vị thần trong đó) là khó ước tính.

Vì vậy, không ai biết tỷ lệ có thể là một tỷ lệ lành mạnh đối với một số phần mềm được mã hóa khá tốt?

Chỉnh sửa: Trong trường hợp cụ thể này, tôi đang tìm một tỷ lệ để xác định ước tính công viên bóng có thể yêu cầu tái cấu trúc bao nhiêu để làm sạch mã.

Chỉnh sửa: Có ai biết tỷ lệ cho một số dự án PMNM lớn như Firefox, Apache, Webkit, v.v ... không?

+0

Số liệu tốt hơn cho LOC là tổng số khối và tổng cung và mỗi lớp. Điều này cho phép ước tính tốt hơn về độ phức tạp của mã. Tuy nhiên, bạn cần các công cụ bảo vệ mã tốt để đo lường những công cụ này. –

Trả lời

7

LOCs hoặc NLOC không thực sự là thước đo tốt về chất lượng hoặc sức khỏe của mã của bạn. Tôi khuyên bạn nên sử dụng phân tích mã tĩnh của NDepend (cho bạn. Peeps trên mạng) để xem giải pháp của bạn được kiến ​​trúc tốt như thế nào.

Tôi thấy rằng LOC chỉ là phép đo tốt ở cấp phương thức. Đó là, tôi thường thích phương pháp của tôi để phù hợp trên một màn hình (không có phông chữ nhỏ). Các số liệu khác như Độ phức tạp của Cyclomatic và Mã số Bảo hiểm (cho bạn TDDers) ngoài các bài kiểm tra đơn vị của bạn có thể cho cảm giác tốt hơn về mức độ mạnh mẽ của codebase của bạn.

+0

Tuyệt vời! Công cụ đó một mình thay đổi sự cân bằng để. Net rất nhiều! Tuy nhiên tiếc là không có. Net cho trường hợp tôi đang xem xét. –

2

Không thực sự là câu trả lời hay, dứt khoát hoặc thỏa mãn cho câu hỏi này. Tuy nhiên, tôi sẽ nói rằng theo kinh nghiệm của tôi, các dòng mã trên mỗi lớp giảm với kinh nghiệm gia tăng trong lập trình hướng đối tượng.

Hầu hết những người chưa nghiên cứu nguyên tắc thiết kế hướng đối tượng sẽ có xu hướng có nhiều lớp học và nhiều dòng mã. Những người có nhiều kinh nghiệm hướng đối tượng sẽ có xu hướng có ít dòng mã hơn cho mỗi lớp, nhưng sẽ có nhiều lớp hơn. Và tất nhiên, cả hai sẽ phàn nàn về nhau :-).

+0

Tôi hoàn toàn đồng ý với quan sát của bạn, đó là lý do tại sao tôi đang tìm kiếm một số tỷ lệ tốt tốt cho một dự án lành mạnh –

2

Nếu bạn thực sự đang tìm kiếm quy tắc chung thì tôi sẽ nói rằng bất kỳ lớp nào không thể in ra trên một tờ giấy ở độ phân giải có thể đọc được có thể quá dài và nên được cấu trúc lại. Sau đó, nhãn mục tiêu của bạn có thể theo thứ tự 100-200 dòng nhưng, theo ý tôi, số lượng các yếu tố trang có thể dễ dàng hơn để đối phó.

Tôi cũng tin chắc rằng số lượng số liệu trang nên được coi là thước đo giai thừa của tính xấu hơn là tuyến tính. Nếu có một lớp mười trang trong cơ sở mã, điều đó có vẻ như ít nhất là ba triệu lần tệ hơn tôi so với một lớp nhỏ được kiến ​​trúc tốt.

Các vấn đề liên quan