Thông qua những câu chuyện ngắn gọn, mình sẽ giới thiệu và giải thích về các công cụ này nhé. Chúng lần lượt là:
- Phần 1: Unit Test và Logging
- Phần 2: Profiler và Command Line
- Tùng, một sinh viên Ép Tao Dê mới ra trường, gia nhập công ty phần mềm Ép Dê Tao với vị trí junior.
- Sơn, một anh senior dev kì cựu cao to sáu múi.
Profiler – Code chậm thành nhanh, không còn memory leak
Chuyện thứ 3: Mấy tháng sau, Tùng đã không còn là junior developer nữa mà đã… lên chức thành developer. Anh Sơn cũng từ vị trí senior developer leo lên techinical lead.Duyên trời run rủi, hai người lại bị điều vào chung 1 dự án. Đây là một dự án C#, công việc chính cũng là bảo trì và thêm chức năng mới.
Vì dự án đã được phát triển từ 5,6 năm trước nên code rất nhiều, cấu trúc vô cùng rắc rối và phức tạp. Hồi trước chỉ có khoảng 100-200 user nên không sao, bây giờ hệ thống đã lên tầm 50-100k user nên hệ thống bắt đầu bị chậm, lâu lâu lại crash vì thiếu RAM.
Nhận trọng trách mới, Tùng bắt tay vào optimize code để hệ thống chạy nhanh hơn, ít tốn RAM hơn. Tùng cắm đầu cắm cổ áp dụng đủ mọi kiến thức từ đổi thuật toán, thêm caching, thay ORM. Thế nhưng, sau một tuần, hiệu suất chỉ tăng mỗi … 5-10%.
Thấy tội nghiệp, anh Sơn liền ra tay, hướng dẫn Tùng cách dùng profiler.
Profiler là một công cụ cho phép ta đo đạc thời gian hoạt động, tài nguyên mà các đoạn code sử dụng, từ đó optimize cho hợp lý.

- Chạy code cùng với profiler một thời gian
- Dựa theo profiler tìm, các đoạn code chạy chậm nhất, tốn tài nguyên nhất
- Optimize các đoạn code đó
- Chạy lại profiler để check kết quả
Hoá ra do mỗi lần truy cập, chương trình lại đọc thông tin từ một file text vài trăm MB trên ổ cứng, sau đó không close connection nên bị memory leak.
Anh Sơn chỉ việc load toàn bộ thông tin này lên RAM làm cache, hệ thống chạy nhanh gấp… 5 lần, hết tràn RAM chỉ nhờ 10 dòng code và profiler.

Command Line – Cảnh giới “thần thánh” không cần chuột
Chuyện thứ tư: Một hôm nọ, Tùng may mắn được ngồi cạnh pair programming với anh Sơn. Tùng để ý anh rất ít khi dùng chuột mà chỉ toàn dùng bàn phím gõ gõ, trên màn hình đen thui nhấp nháy.Thắc mắc, Tùng hỏi: Sau anh không dùng giao diện cho dễ mà gõ gõ chi vậy anh?
Anh Sơn trả lời: Hở? Em vẫn còn dùng giao điện àh? Chuyển qua dùng Terminal và Vim đi! Tăng ít nhất 50% năng suất làm việc đấy!
Bán tín bán nghi, Tùng cũng bắt đầu tập sử dụng command line và Vim trong các công việc thường ngày: Sửa file, build code, chạy code.
Sau một thời gian, Tùng nhận thấy mình bắt đầu viết code nhanh hơn, thực hiện công việc nhanh hơn, năng suất tăng còn hơn 50% mà anh Sơn đã quảng cáo.
Nhờ làm việc chung với anh Sơn, Tùng cảm thấy trình độ của mình ngày một tăng, tình cảm “chong xáng” dành cho anh cũng tăng theo.

Command Line còn được những bạn làm về mạng hoặc sysadmin ưu dùng. Khi quản lý các server Ubuntu, bạn sẽ không thể dùng giao diện và click như Window mà phải SSH để kết nối tới server, sau đó dùng command line để quản lý.
Hoặc nếu bạn làm Front-end developer, command line càng là người bạn không thể thiếu. Hầu như các tool của mảng front-end (Babel, Webpack, npm) đều dựa trên nền NodeJS, chạy trên command line. Thành thạo command line là nền tảng để sử dụng các tool này.
Do đó, mình khuyến khích các bạn nên học và làm quen cách dùng command line nhé! Ví dụ như trong clip dưới, mình và Codeaholicguy có huớng dẫn cách dùng Git trên command line.
Bạn có thể cài Bash trên Windows 10, hoặc kiếm một con VPS Ubuntu để tập nghịch command line nhé. Ngoài ra, bạn có thể đọc cuốn này để nhập môn cách dùng command line: Learn Enough Command Line to Be Dangerous.
Nếu bạn có hứng thú thì cứ để lại comment nhé. Nếu có nhiều người quan tâm thì sau này mình sẽ có một series riêng về cách dùng command line nha!
No comments:
Post a Comment