2008-09-30 9 views
9

Gần đây tôi đã cài đặt Plugin số liệu Eclipse và đã xuất dữ liệu cho một trong các dự án của chúng tôi.Hiểu các chỉ số mã

Đó là tất cả rất tốt có những đồ thị đẹp, nhưng tôi thực sự muốn hiểu sâu hơn tất cả những gì họ có ý nghĩa. Các định nghĩa về số liệu chỉ đi xa để cho bạn biết ý nghĩa của nó.

Có ai biết về bất kỳ tài nguyên, sách, trang web nào, v.v. có thể giúp tôi hiểu rõ hơn về tất cả dữ liệu có nghĩa là gì và hiểu cách cải thiện mã khi cần thiết?

Tôi quan tâm đến những thứ như Khớp nối Efferent và Độ phức tạp của Cyclomatic, v.v., thay vì dòng mã hoặc dòng trên mỗi phương thức.

Trả lời

4

Tôi không nghĩ rằng chỉ số mã (đôi khi được gọi là software metrics) cung cấp dữ liệu có giá trị về những nơi bạn có thể cải thiện.

Với các chỉ số mã, bạn có thể xem bạn viết bao nhiêu mã trong một giờ, nhưng ngoài ra chúng còn cho bạn biết về chất lượng của mã được viết, tài liệu và phạm vi mã của nó. Chúng là một nỗ lực đáng kể trong một tuần để đo lường nơi bạn không thể đo lường thực sự.

Các chỉ số mã cũng phân biệt đối xử với các lập trình viên giải quyết các vấn đề khó khăn hơn vì họ rõ ràng là được quản lý để viết mã ít hơn. Tuy nhiên, họ đã giải quyết được các vấn đề khó khăn và một lập trình viên cơ sở đào tạo rất nhiều mã số crap có vẻ tốt.

Ví dụ khác về việc sử dụng chỉ số là rất phổ biến Ohloh. Họ sử dụng các số liệu để đặt một thẻ giá vào một dự án mã nguồn mở (sử dụng số dòng, vv), mà chính nó là một nỗ lực mà là thiếu sót là địa ngục - như bạn có thể tưởng tượng.

Có nói rằng tất cả các mục Wikipedia cung cấp một cái nhìn tổng thể về chủ đề, xin lỗi để không trả lời câu hỏi của bạn một cách hỗ trợ hơn với một trang web hoặc cuốn sách thực sự tuyệt vời, nhưng tôi đặt cược bạn có trôi dạt mà tôi không phải là một fan khổng lồ. :)

Một cái gì đó để sử dụng để giúp bạn cải thiện sẽ được tích hợp liên tục và tôn trọng một số loại tiêu chuẩn khi nói đến mã, tài liệu, v.v. Đó là cách bạn có thể cải thiện. Số liệu chỉ là kẹo mắt cho các cuộc họp - "nhìn chúng tôi đã mã hóa rất nhiều".

Cập nhật

Ok, cũng quan điểm của tôi là ly tâm khớp nối hoặc thậm chí cyclomatic phức tạp có thể chỉ ra một cái gì đó là sai - nó không phải là sai mặc dù. Nó có thể là một chỉ số để cấu trúc lại một lớp nhưng không có quy tắc nào cho bạn biết khi nào.

IMHO quy tắc như 500 + dòng mã, trình tái cấu trúc hoặc DRY principal được áp dụng nhiều hơn trong hầu hết các trường hợp. Đôi khi nó đơn giản như vậy.

Tôi cung cấp cho bạn nhiều điều đó vì độ phức tạp của chu trình được vẽ thành biểu đồ lưu lượng, nó có thể là một công cụ mở mắt. Nhưng một lần nữa, hãy cẩn thận.

+0

tôi có thể đã sử dụng một thuật ngữ không chính xác của "số liệu". Tôi không quan tâm đến các dòng mã hoặc mã cho mỗi loại phương pháp đo lường mà là một số phép đo phức tạp hơn mà nó có. Cyclomatic Complexity, Efferent Coupling, vv Tuy nhiên, điểm của bạn được ghi nhận hợp lệ. – Feet

+0

Tôi đã mở rộng câu trả lời của tôi và trả lời các điểm của bạn. :) Hy vọng! – Till

1

Trong số liệu quan điểm của tôi là một cách tuyệt vời để tìm điểm đau trong codebase của bạn. Họ rất hữu ích cũng để cho người quản lý của bạn biết lý do tại sao bạn nên dành thời gian để cải thiện nó.

Đây là một bài tôi đã viết về nó: http://blog.jorgef.net/2011/12/metrics-in-brownfield-applications.html

Tôi hy vọng nó giúp