Có bất kỳ công cụ nào có sẵn sẽ tính toán số liệu mã (ví dụ: số dòng mã, độ phức tạp theo chu kỳ, khớp nối, liên kết) cho dự án của bạn và theo thời gian tạo ra một biểu đồ hiển thị xu hướng không?
Có bất kỳ công cụ nào có sẵn sẽ tính toán số liệu mã (ví dụ: số dòng mã, độ phức tạp theo chu kỳ, khớp nối, liên kết) cho dự án của bạn và theo thời gian tạo ra một biểu đồ hiển thị xu hướng không?
Câu trả lời:
Trong dự án mới nhất của mình, tôi đã sử dụng SourceMonitor . Đó là một công cụ miễn phí tốt để phân tích số liệu mã.
Đây là một đoạn trích từ trang web chính thức của SourceMonitor:
- Thu thập các chỉ số trong một lần chuyển nhanh, qua các tệp nguồn.
- Đo lường các chỉ số cho mã nguồn được viết bằng C ++, C, C #, VB.NET, Java, Delphi, Visual Basic (VB6) hoặc HTML.
- Bao gồm các chỉ số cấp phương pháp và hàm cho C ++, C, C #, VB.NET, Java và Delphi.
- Lưu số liệu trong các trạm kiểm soát để so sánh trong các dự án phát triển phần mềm.
- Hiển thị và in các số liệu trong bảng và biểu đồ.
- Hoạt động trong Windows GUI tiêu chuẩn hoặc bên trong các tập lệnh của bạn bằng cách sử dụng các tệp lệnh XML.
- Xuất chỉ số sang tệp XML hoặc CSV (giá trị được phân tách bằng dấu phẩy) để xử lý thêm bằng các công cụ khác.
Đối với .NET bên cạnh NDepend đơn giản là công cụ tốt nhất, tôi có thể giới thiệu vil .
Các công cụ sau có thể thực hiện phân tích xu hướng:
Sonar chắc chắn là một công cụ mà bạn phải xem xét, đặc biệt là đối với các dự án Java. Tuy nhiên, nó cũng sẽ xử lý mã PHP hoặc C / C ++, Flex và Cobol.
Đây là ảnh chụp màn hình hiển thị một số chỉ số về một dự án:
văn bản thay thế http://sonar.codehaus.org/wp-content/uploads/2009/05/squid-metrics.png
Lưu ý rằng bạn có thể thử công cụ này bằng cách sử dụng trang web demo của họ tại http://nemo.sonarsource.org
Chi tiêu cho .net
Tôi cũng đang tìm kiếm một công cụ / plugin đo lường mã cho IDE của mình nhưng theo tôi biết thì không có công cụ nào (đối với nhật thực) cũng hiển thị biểu đồ về độ phức tạp trong một khoảng thời gian cụ thể. Tuy nhiên, tôi đã tìm thấy plugin đo lường nhật thực , nó có thể xử lý:
Và trong khi sử dụng nó, tôi cũng không bỏ lỡ tùy chọn vẽ đồ thị mà bạn đang tìm kiếm.
Tôi nghĩ rằng, nếu bạn không tìm thấy bất kỳ plugin / công cụ nào có thể xử lý việc vẽ đồ thị theo thời gian, bạn nên xem xét công cụ phù hợp với bạn nhất và cung cấp cho bạn tất cả thông tin bạn cần; ngay cả khi thông tin đã cho chỉ dành cho bản dựng hiện tại của dự án của bạn.
Xin lưu ý thêm, plugin chỉ số eclipse cho phép bạn xuất dữ liệu sang tệp bên ngoài (liên kết dẫn đến ví dụ), vì vậy nếu bạn sử dụng công cụ kiểm soát nguồn và bạn nên làm như vậy !, bạn luôn có thể xuất dữ liệu cho các xây dựng và lưu trữ tệp cùng với mã nguồn, theo cách đó bạn vẫn có cách (cơ bản) để quay ngược thời gian và kiểm tra sự khác biệt.
hãy nhớ rằng, những gì bạn đo lường là những gì bạn nhận được. loc không nói gì về năng suất hoặc hiệu quả.
đánh giá một lập trình viên theo các dòng mã và bạn sẽ nhận được .. dòng mã. đối số tương tự cũng áp dụng cho các chỉ số khác.
otoh .. http://www.crap4j.org/ là một số liệu rất thận trọng và hữu ích. nó đặt ra sự phức tạp liên quan đến phạm vi bảo hiểm.
NDepend, tôi đang sử dụng nó và tốt nhất cho mục đích này. Kiểm tra cái này: http://www.codeproject.com/KB/dotnet/NDepend.aspx
Liên quan đến công cụ NDepend, nó đi kèm với 82 số liệu mã khác nhau, từ Số dòng mã, đến Xếp hạng phương pháp (mức độ phổ biến), Độ phức tạp theo chu kỳ, Thiếu sự gắn kết của các phương pháp, Tỷ lệ bao phủ (trích xuất từ NCover hoặc VSTS), Độ sâu kế thừa .. .
Với hệ thống quy tắc của mình, NDepend cũng có thể tìm ra các vấn đề và ước tính nợ kỹ thuật , đây là một chỉ số mã thú vị (số lượng nhà phát triển nỗ lực để khắc phục sự cố so với lượng thời gian dành cho nhà phát triển bị hỏng mỗi năm để khắc phục sự cố ).
Tất cả các số liệu này được tách ra ở đây .
Nếu bạn đang ở trong không gian .NET, CodeRush của Developer Express cung cấp LOC, Cyclomatic Complexity và phân tích độ phức tạp bảo trì (khá tuyệt vời, IMHO) của mã trong thời gian thực.
(Xin lỗi về liên kết Độ phức tạp Bảo trì; liên kết này sẽ được chuyển vào bộ nhớ cache của Google. Bản gốc có vẻ là ATM ngoại tuyến).
Atlassian FishEye là một công cụ tuyệt vời khác cho công việc này. Nó tích hợp với hệ thống kiểm soát nguồn của bạn (hiện hỗ trợ CVS, SVN và Perforce), và phân tích tất cả các tệp của bạn theo cách đó. Mặc dù vậy, phân tích khá cơ bản và bản thân sản phẩm là thương mại (nhưng giá rất hợp lý, IMO).
Bạn cũng có thể nhận được một tiện ích bổ sung có tên là Crucible để tạo điều kiện cho việc đánh giá mã ngang hàng.
Đối với Visual Studio .NET (ít nhất là C # và VB.NET), tôi thấy StudioTools miễn phí cực kỳ hữu ích cho các số liệu. Nó cũng bổ sung một số tính năng được tìm thấy trong các công cụ thương mại như ReSharper .
Code Analyzer là công cụ đơn giản tạo ra loại số liệu này.
(nguồn: teel.ws )
Ngoài ra còn có một plugin số liệu mã cho phản xạ , trong trường hợp bạn đang sử dụng .NET.
Tôi muốn giới thiệu Code Metrics Viewer Exention cho studio trực quan.
Rất dễ dàng để phân tích giải pháp cùng một lúc, cũng có thể so sánh nếu bạn đạt được tiến bộ ;-)
Về mặt PHP, tôi tin rằng ví dụ phpUnderControl bao gồm các số liệu thông qua phpUnit (nếu tôi không nhầm).
Hãy nhớ rằng các số liệu thường có sai sót. Ví dụ: một lập trình viên đang giải quyết các vấn đề nhỏ nhặt sẽ tạo ra nhiều mã hơn và ở đó, đồ thị của bạn trông đẹp hơn, hơn là một lập trình viên đang giải quyết các vấn đề phức tạp.
Nếu bạn đang theo đuổi một số phân tích xu hướng, thì việc đo lường ngoài SLOC có thực sự có ý nghĩa gì không?
Ngay cả khi bạn chỉ thực hiện grep để tìm dấu chấm phẩy ở cuối và đếm số dòng được trả về, điều bạn cần là sự nhất quán trong kỹ thuật đo SLOC. Bằng cách này, số đo của ngày hôm nay có thể được so sánh với số đo của tháng trước một cách có ý nghĩa.
Tôi thực sự không thể thấy xu hướng của Độ phức tạp Cyclometric McCabe sẽ mang lại điều gì? Tôi nghĩ rằng CC nên được sử dụng nhiều hơn để có ảnh chụp nhanh về chất lượng nhằm cung cấp phản hồi cho các nhà phát triển.
Chỉnh sửa: Ooh. Chỉ nghĩ về một vài phép đo khác có thể hữu ích. Nhận xét dưới dạng phần trăm SLOC và phạm vi kiểm tra. Không cái nào bạn muốn để tuột. Quay trở lại để trang bị thêm một trong hai thứ này không bao giờ tốt bằng việc làm chúng "trong thời điểm nóng bức!"
HTH.
chúc mừng,
Rob
Scitools 'Hiểu có khả năng tạo ra rất nhiều số liệu mã cho bạn. Tôi không có nhiều kinh nghiệm với các tính năng đo lường mã, nhưng các tính năng phân tích tĩnh nói chung rất đẹp và giá cả rất hợp lý. Sự hỗ trợ là tuyệt vời.
Project Code Meter cung cấp báo cáo lịch sử phát triển khác biệt (ở định dạng Excel), hiển thị số liệu tiến độ mã hóa của bạn theo SLOC, phần trăm thời gian và năng suất (ước tính thời gian dựa trên độ phức tạp của chu kỳ và các số liệu khác). Sau đó, trong Excel, bạn có thể dễ dàng tạo ra biểu đồ bạn muốn.
xem bài viết này mô tả từng bước: http://www.projectcodemeter.com/cost_estimation/help/FN_monsizing.htm
Đối với Java, bạn có thể thử công cụ của chúng tôi, QualityGate , tính toán hơn 60 số liệu mã nguồn, theo dõi tất cả các thay đổi theo thời gian và cũng đưa ra đánh giá tổng thể về khả năng bảo trì của mã nguồn.