"Checkstyle là một công cụ phát triển để giúp các lập trình viên viết mã Java tuân thủ các tiêu chuẩn mã hóa. Nó tự động hóa quá trình kiểm tra Java code để phụ tùng con này nhàm chán (nhưng quan trọng) các nhiệm vụ."Như đã nói bởi nhà phát triển của Checkstyle, công cụ này giúp bạn xác định và duy trì trong một cách rất chính xác và linh hoạt các tiêu chuẩn mã hóa của một dự án. Khi bạn khởi động Checkstyle, nó sẽ phân tích cú pháp mã Java của bạn và sẽ thông báo cho bạn về tất cả các lỗi được tìm thấy theo cấu hình được cung cấp.Cách GradleCác mã sau đây cho bạn thấy các cấu hình cơ bản để sử dụng Checkstyle trong dự án của bạn (như là một nhiệm vụ Gradle):+ mở rộng nguồnVì vậy, về cơ bản nhiệm vụ này sẽ phân tích mã của bạn theo checkstyle.xml và suppressions.xml. Để thực hiện nó thông qua Android Studio, chỉ cần khởi động checkstyle nhiệm vụ từ bảng gradle:checkstyleLàm thế nào để thực hiện của bạn gradle nhiệm vụ checkstyleSau khi chạy checkstyle, bạn sẽ có một báo cáo mô tả từng vấn đề được thành lập trong dự án của bạn. Đó là khá dễ dàng.Nếu bạn muốn làm các cấu hình thêm vào checkstyle, chỉ cần tham khảo các tài liệu).Thủ thuật cho checkstyleCheckstyle sẽ phát hiện một số tiền rất lớn của vấn đề, đặc biệt là nếu bạn sử dụng rất nhiều quy tắc, giống như trong trường hợp bạn muốn có một cú pháp rất chính xác. Ngay cả khi tôi sử dụng checkstyle qua Gradle, ví dụ trước của tôi trong này, tôi khuyên bạn nên bạn cũng có thể sử dụng plugin checkstyle cho IntellJ/Android Studio (bạn có thể trực tiếp cài đặt nó từ Android Studio thông qua bảng điều khiển tập tin/cài đặt/Plugins). Bằng cách này bạn sẽ có thể áp dụng checkstyle cho các dự án của bạn theo các tập tin configs tương tự như quy định đối với Gradle, nhưng hơn thế nữa, bạn sẽ có quyền truy cập vào các kết quả trực tiếp trong Android Studio, với các siêu liên kết đến các vấn đề trong mã của bạn, mà là khá hữu ích (Gradle cách vẫn là rất quan trọng kể từ khi bạn có thể sử dụng nó thông qua hệ thống tự động xây dựng như Jenkins).FindbugsTrình bàyKhông Findbugs cần một bài trình bày? Tôi đoán tên có ý nghĩa. "FindBugs sử dụng tĩnh phân tích để kiểm tra Java bytecode cho lần xuất hiện của lỗi mẫu." Findbugs về cơ bản chỉ cần bytecode của một chương trình để làm phân tích, do đó, nó rất dễ dàng sử dụng. Nó sẽ phát hiện lỗi phổ biến như toán tử boolean sai. Findbugs cũng có thể phát hiện các lỗi do hiểu lầm trong tính năng ngôn ngữ, chẳng hạn như tái bố trí các thông số trong Java (đó là không thực sự có thể kể từ khi nó tham số được truyền bởi giá trị).Cách GradleCác mã sau đây cho bạn cấu hình cơ bản để sử dụng Findbugs trong dự án của bạn (như là một nhiệm vụ Gradle):+ mở rộng nguồnVì vậy, nó trông rất giống như nhiệm vụ Checkstyle. Kể từ khi Findbugs hỗ trợ HTML và XML báo cáo, tôi chọn HTML từ báo cáo là dễ đọc hơn. Hơn nữa, bạn chỉ cần đánh dấu vị trí bản báo cáo có một truy cập nhanh tới nó. Nhiệm vụ này sẽ không thành công nếu một lỗi trong Findbgus được phát hiện (vẫn còn sản xuất một báo cáo). Để thực hiện nhiệm vụ Findbugs, đó là chính xác giống như cho nhiệm vụ Checkstyle (ngoại trừ tên của nhiệm vụ là "findbugs").Thủ thuật cho FindbugsTôi đề nghị sử dụng một bộ lọc findbugs, kể từ khi dự án Android là một chút khác nhau từ dự án Java. Bạn có thể lấy ví dụ về điều này một (một trong những dự án ví dụ). Nó về cơ bản sẽ bỏ qua tập tin R và tập tin biểu hiện của bạn. Bằng cách này, do Findbugs phân tích bytecode của bạn, bạn cần phải biên dịch ít nhất một thời gian mã của bạn để có thể kiểm tra nó.PMDTrình bàyVui thực tế của công cụ này: không phải là một tên thật cho PMD. Trên trang web của offcicial, bạn sẽ tìm thấy các đề xuất tên gọi rất thú vị như:Khá nhiều thực hiệnDự án đáp ứng hạn chótTrong các sự kiện, PMD là một công cụ rất mạnh mẽ mà làm việc một chút giống như Findbugs, nhưng kiểm tra trực tiếp mã nguồn, và không phải là bytecode (btw. PMD có thể làm việc với nhiều ngôn ngữ). Mục tiêu toàn cầu là các mô hình tìm kiếm tương tự, có thể dẫn tới lỗi sử dụng phân tích tĩnh. Vậy tại sao sử dụng Findbugs và PMD cùng một lúc? Vâng, ngay cả khi Findbugs và PMD chia sẻ trên toàn cầu cùng một mục tiêu, phương pháp inspecting của họ là khác nhau. Vì vậy, PMD đôi khi có thể tìm thấy các lỗi đó wont Findbugs, và ngược lại.Cách GradleCác mã sau đây cho bạn cấu hình cơ bản để sử dụng PMD trong dự án của bạn (như là một nhiệm vụ Gradle):+ mở rộng nguồnCho PMD, đây cũng là gần như giống như Findbugs. PMD có thể sản xuất ra HTML hoặc XML báo cáo, vì vậy một lần nữa tôi nhận định dạng HTML. Tôi mạnh mẽ khuyên bạn nên sử dụng tập tin tùy chỉnh luật riêng của bạn như tôi đang làm trong ví dụ này (kiểm tra tập tin này). Như vậy tất nhiên, hãy xem tài liệu hướng dẫn về bộ quy tắc tuỳ chỉnh. Tôi khuyên bạn nên mà vì PMD có thể gây nhiều tranh cãi hơn Findbugs. Ví dụ, nó sẽ cơ bản cảnh báo bạn nếu bạn không sụp đổ "Nếu tuyên bố", hoặc nếu bạn có sản phẩm nào "Nếu tuyên bố". Tôi thực sự nghĩ đó là công việc của bạn và đồng đội của bạn để xác định, nếu các quy tắc này là đúng, hoặc không, cho dự án của bạn. Tôi biết tôi thích không sụp đổ nếu tuyên bố kể từ, tôi nghĩ rằng điều này là rất ít có thể đọc được. Để thực hiện nhiệm vụ PMD, mà là chính xác như để kiểm tra
đang được dịch, vui lòng đợi..
