Điều đầu tiên cần làm là xác định định nghĩa của bạn về "dòng mã" (LOC). Trong cả câu hỏi của bạn
Nó tính một dòng chỉ với một} là một dòng và anh ấy không muốn điều đó được tính là "nó không phải là một dòng, nó là một lựa chọn phong cách"
và trong các câu trả lời, ví dụ:
Bạn có thể điều chỉnh số liệu Dòng mã bằng cách bỏ qua các dòng trống và dòng chỉ nhận xét hoặc loại trừ Javadoc nếu bạn muốn
bạn có thể nói rằng mọi người có ý kiến khác nhau về những gì tạo nên một dòng mã. Đặc biệt, mọi người thường không chính xác về việc họ thực sự muốn số dòng mã hay số câu lệnh. Ví dụ: nếu bạn có dòng thực sự dài sau đây chứa đầy các câu lệnh, bạn muốn báo cáo điều gì, 1 LOC hay hàng trăm câu lệnh?
{ a = 1; b = 2; if (a==c) b++; /* etc. for another 1000 characters */ }
Và khi ai đó hỏi bạn rằng bạn đang gọi LOC là gì, hãy đảm bảo rằng bạn có thể trả lời, ngay cả khi đó chỉ là "định nghĩa của tôi về LOC là định nghĩa của Metrics2". Nói chung, đối với hầu hết các mã được định dạng phổ biến (không giống như ví dụ của tôi), các công cụ phổ biến sẽ cho các con số khá giống nhau, vì vậy Metrics2, SonarQube, v.v. đều ổn, miễn là bạn sử dụng chúng một cách nhất quán. Nói cách khác, không đếm LOC của một số mã bằng một công cụ và so sánh giá trị đó với phiên bản mới hơn của mã đó được đo bằng một công cụ khác.