Để debug tốt hơn mỗi ngày!
Senior hay Junior thì gặp bug vẫn là "chuyện thường ngày ở huyện", không thể tránh khỏi. Nhưng một lập trình viên giỏi sẽ biết cách cải thiện kỹ năng debug của mình, để việc đối mặt với bug bớt "đáng sợ” hơn.
Làm thế nào để đối phó với bug?
3 cách phổ biến hiện nay là:
- Prebugging: giảm thiểu khả năng xảy ra lỗi
- Debugging: xác định, khắc phục và loại bỏ lỗi khi tìm thấy chúng.
- Post-debugging: có lỗi không mong muốn hoặc không xác định.
Chúng ta hãy xem xét từng phương pháp.
.jpg)
1. Prebugging
Nếu chúng ta hay gặp bug khi lập trình, chúng ta cần tìm cách giảm thiểu khả năng chúng xuất hiện. Tôi gọi quá trình này là “Prebugging”. Đây là một kỹ năng debug khá cơ bản.
1.1. Lỗi cú pháp
Mỗi ngôn ngữ lập trình đều có các quy tắc riêng, dev có trách nhiệm tuân theo các quy tắc đó.
Ví dụ, bạn bỏ qua dấu ngoặc đơn của hàm function {}
, bug sẽ lập tức xuất hiện.
Làm quen với thông báo bug rất có lợi cho việc debug. Hầu hết các thông báo sẽ chứa từ khóa giúp bạn tìm ra phần code nào đang có bug.
let school = {
name: "Harvard",
location: "Heaven On Earth", admit: function() { return "weeew! You are admitted" }
}
console.log(school.names); // undefined
Theo bạn, lỗi trên là lỗi gì và phần code nào đang có lỗi?

1.2. Lỗi logic
Các lỗi logic rất khó xử lý vì não của bạn không nhận ra chúng. Do đó bạn nên lập kế hoạch trước khi code và hiểu những điều cơ bản về ngôn ngữ lập trình đang sử dụng, đặc biệt bạn phải hiểu các yêu cầu mà dự án đưa ra.
1.3. Lỗi biên dịch
Có thể bạn đã vi phạm một số quy tắc mà trình biên dịch đề ra.
Ví dụ: viết một chuỗi mà không có dấu ngoặc kép thông thường
const name = Ayobami
sẽ dẫn đến lỗi biên dịch vì một chuỗi phải được trích dẫn.
Tương tự như lỗi cú pháp, càng viết nhiều code bạn càng xử lý các lỗi biên dịch tốt hơn. Bạn nên thường xuyên biên dịch hoặc kiểm tra code để giảm những lỗi này và làm việc hiệu quả hơn.
.jpg)
1.4. Lỗi resources
Đôi khi, chương trình của bạn vượt quá giới hạn bộ nhớ hoặc sử dụng hết tài nguyên có sẵn. Điều đó có thể khiến ứng dụng của bạn ngừng hoạt động hoặc hoạt động sai.
1.5. Lỗi giao diện
Chúng ta thiết kế các API nhưng người dùng sử dụng sai cách và gây ra lỗi. Những lỗi như vậy được gọi là lỗi giao diện.
Ví dụ, go(string)
dành cho một chuỗi chứ không phải một số, nhưng người dùng không nhận ra. Điều đó sẽ dẫn đến lỗi nếu coder không dự phòng rủi ro này và quản lý cách chương trình sẽ phản hồi.
Nếu các tiêu chuẩn của bạn không được tuân thủ, bạn cần thông báo lỗi hoặc hướng dẫn người dùng cách làm đúng. Việc ghi lại các API của bạn có thể giúp ích rất nhiều.

2. Debugging
2.1. Cách tìm bug
Tìm bug bắt đầu bằng việc hiểu các thông báo lỗi mà bạn thấy. Nếu bạn hiểu thông báo lỗi, bạn có thể theo dõi chính xác vị trí của lỗi.
2.2. Tìm nguyên nhân xảy ra lỗi
Sau khi thấy bug, bạn cần phải tìm ra lý do nó xuất hiện. Điều này giúp bạn xây dựng một hệ thống hiệu quả thay vì search Google và copy từ StackOverflow như nhiều dev khác.
Tất nhiên trong một số trường hợp bạn vẫn có thể search, nhưng tốt hơn hết bạn hãy hiểu nguyên nhân và giải pháp cho vấn đề. Đây là một bước quan trọng trên con đường fix bug/debug.
2.3. Cách fix bug/debug
Sau khi tìm và hiểu được nguyên nhân gây ra lỗi, bước tiếp theo chúng ta phải sửa lỗi. Khi đã hiểu rõ vấn đề, bạn sẽ tìm ra giải pháp một cách đơn giản không áp lực.
Tuy nhiên, đôi lúc sự hiểu biết không mang lại giải pháp nào dù chúng ta có cố gắng đến đâu. Để tiết kiệm thời gian, bạn có thể search Google, copy từ StackOverflow hoặc bất cứ điều gì bạn cảm thấy phù hợp.
Bạn cũng có thể hỏi người khác để có một góc nhìn mới. Họ trung lập và nhiều khi sự trung lập đó giúp fix bug/debug khá hiệu quả.

3. Post-debugging
“Post-debugging” là dự đoán các bug không mong muốn trong các chương trình bạn đã viết. Bạn có thể làm mọi cách để theo dõi hoặc quản lý các bug tiềm ẩn này trước khi chúng gây hại cho hệ thống hoặc công ty.
Một hệ thống theo dõi sẽ giúp bạn dễ dàng phát hiện bug sau khi ứng dụng đi vào hoạt động. Có rất nhiều công cụ, nhưng đây là một số web nên tham khảo:
- www.sentry.io
- www.honeybadger.io
- www.pypi.org
- www.airbrake.io
- www.logrocket.com
Bạn phải nghiên cứu để tìm ra công cụ phù hợp nhất cho riêng bạn.
.jpg)
Kết luận
Kỹ năng debug là một kỹ năng quan trọng mà tất cả các software developer phải trau dồi. Nó là cốt lõi của việc viết code, và nếu bạn làm tốt bạn sẽ lập trình giỏi hơn.
Bachkhoa-Aptech là đơn vị trực thuộc Aptech Ấn Độ - tập đoàn Công nghệ thông tin (CNTT) hàng đầu trên thế giới. Thương hiệu Aptech đã liên tục 19 năm nhận giải thưởng TOP ICT cho đơn vị đào tạo CNTT xuất sắc nhất Việt Nam.
-
Địa chỉ: 250 Hoàng Quốc Việt, Bắc Từ Liêm, Hà Nội
-
Hotline: 0968 27 6996
-
Email: tuyensinh@bachkhoa-aptech.edu.vn
Bachkhoa-Aptech - Tự hào 19 năm Kiến tạo IT chất lượng cao
#BachkhoaAptech #Làmtrướchọcsau #ITleader