Cloc là công cụ tính Lines of Code trong các dự án phát triển phần mềm, tức là nó sẽ count số lượng dòng code, comments và cả dòng trống (blank line) trong source code. Ngoài ra công cụ còn hỗ trợ phân loại source code theo ngôn ngữ lập trình, tỷ lệ comment_ratio (số dòng comment/dòng code).
Giới thiệu công cụ Cloc
Cloc được viết bằng ngôn ngữ Perl với không sử dụng 1 thư viện (dependency) ngoài, mà chỉ yêu cầu Perl 5.6 trở lên nên việc cài đặt và sử dụng rất dễ dàng. Cloc có thể chạy trên nhiều hệ điều hành Linux, Windows, Mac.
Chú ý: Để chạy Perl trên Windows, cần ActiveState Perl 5.6.1 trở lên, Strawberry Perl, … với Perl plugin.
- Tác giả: Al Danial
- Latest release: v1.76 (February 9, 2018)
- Github Source: https://github.com/AlDanial/cloc
Hướng dẫn cài đặt Cloc
Cloc được cài đặt rất đơn giản thông qua các command của HDH:
npm install -g cloc # https://www.npmjs.com/package/cloc sudo apt install cloc # Debian, Ubuntu sudo yum install cloc # Red Hat, Fedora sudo dnf install cloc # Fedora 22 or later sudo pacman -S cloc # Arch sudo emerge -av dev-util/cloc # Gentoo https://packages.gentoo.org/packages/dev-util/cloc sudo apk add cloc # Alpine Linux sudo pkg install cloc # FreeBSD sudo port install cloc # Mac OS X with MacPorts brew install cloc # Mac OS X with Homebrew choco install cloc # Windows with Chocolatey scoop install cloc # Windows with Scoop
Cloc cho Windows: Download
Hướng dẫn sử dụng cơ bản (Trên Ubuntu)
– Cú pháp lệnh (Syntax command)
cloc [options] <file(s)/dir(s)> | <set 1> <set 2> | <report files>
Danh sách các options hỗ trợ, các bạn tham khảo trên Github
– Phân tích source code của 1 file
prompt> cloc hello.c 1 text file. 1 unique file. 0 files ignored. https://github.com/AlDanial/cloc v 1.65 T=0.04 s (28.3 files/s, 340.0 lines/s) ------------------------------------------------------------------------------- Language files blank comment code ------------------------------------------------------------------------------- C 1 0 7 5 -------------------------------------------------------------------------------
– Phân tích source code của một file nén (archive)
prompt> cloc vinasupport.com.tar.gz 5605 text files. 5386 unique files. 2176 files ignored. https://github.com/AlDanial/cloc v 1.65 T=25.49 s (134.7 files/s, 51980.3 lines/s) ----------------------------------------------------------------------------------- Language files blank comment code ----------------------------------------------------------------------------------- Perl 2892 136396 184362 536445 C 130 24676 33684 155648 C/C++ Header 148 9766 16569 147858 Bourne Shell 112 4044 6796 42668 Pascal 8 458 1603 8592 XML 33 142 0 2410 YAML 49 20 15 2078 C++ 10 313 277 2033 make 4 426 488 1986 Prolog 12 438 2 1146 JSON 14 1 0 1037 yacc 1 85 76 998 Windows Message File 1 102 11 489 DOS Batch 14 92 41 389 Windows Resource File 3 10 0 85 D 1 5 7 8 Lisp 2 0 3 4 ----------------------------------------------------------------------------------- SUM: 3434 176974 243934 903874 -----------------------------------------------------------------------------------
– Lưu kết quả phân tích source code vào database SQLite
cloc --sql 1 --sql-project=vinasupport.com firstapp/ | sqlite3 vinasupport.com.db sqlite3 -header vinasupport.com.db 'select project, language, file, nCode, nComment from t;' | sqlite_formatter
Command trên có sử dụng sqlite_formatter để format dữ liệu output ra, nếu chưa cài đặt thì các bạn sử dụng command bên dưới.
cd /usr/local/bin/ sudo wget http://cloc.sourceforge.net/sqlite_formatter sudo chmod +x sqlite_formatter
Như vậy, mình đã giới thiệu xong công cụ Cloc để phân tích source và đếm số Lines of Code, một công cụ sử dụng rất đơn giản, và phổ biến. Hy vọng nó sẽ giúp các bạn tiết kiệm được thời gian trong việc viết báo cáo, estimate các dự án về lập trình.
Nguồn vinasupport.com