‘Debug là gì?’ và ‘Vì sao lập trình viên cần phải biết Debug?’ – Hiếu Nguyễn Minh

1. BUG là gì?

  • Bugs là các con bọ, bọ này ám chỉ các lỗi xảy ra trong logic, hay bất kỳ vấn đề gì gây ra việc làm cho ứng dụng không thực thi được hoặc thực thi sai. 
  • Bugs luôn tiềm ẩn ở mọi nơi, và ta không thể lường trước được mọi tình huống có thể xảy ra mà chỉ có thể cố gắng làm giảm nó đến mức thấp nhất có thể tùy vào khả năng của ta tại thời điểm phát triển và bảo trì ứng dụng.

2. DEBUG là gì?

  • Debug là quá trình tìm kiếm ra lỗi hay nguyên nhân gây ra lỗi (bug ở đâu) để có hướng sửa lỗi (fix bug). 
  • Programmers chính là các công cụ sinh ra Bugs nhiều nhất vì họ lập trình. Và chính vì vậy, công cụ tốt nhất để gỡ bỏ bớt Bugs cũng chính là các Programmers
  • Những lý thuyết, những thiết kế phần mềm được tạo ra rất lý tưởng. Nhưng lập trình viên thì lại không làm việc trong thế giới lý tưởng đó. Khi phần mềm được hiện thực thì rất nhiều bug (lỗi) bắt đầu phát sinh. Bug đó có thể là từ chương trình của bạn viết ra hoặc là từ chương trình mà bạn kế thừa từ người khác. Khi chương trình chạy và kết quả không phải là những gì mà bạn mong đợi, tức là đã có lỗi. Vậy là những dự đoán của bạn đã bị sai hoặc là có gì đó phát sinh khi chương trình được thực thi mà bạn không lường trước được. Đôi khi chỉ cần nhìn vào source code là bạn tìm ra ngay nguyên nhân nhưng khi cách đó không mang lại kết quả thì lúc này bạn cần phải Debug.

3. Mục đích của việc Debug

  • Mục đích của Debug không chỉ là để loại bỏ lỗi (error) khỏi chương trình mà quan trọng hơn còn để giúp lập trình viên hiểu rõ hơn sự thực thi của chương trình. Một lập trình viên không có khả năng Debug hiệu quả thì cũng giống như bị mù vậy.

4. Các phương pháp debug

  • Debugging Tool – dùng công cụ để Debug – là phương pháp Debug đi sâu vào source code nhất. Thường thì chúng ta gọi những Debugging Tool này là Debugger. Những Debugger phần mềm thông dụng là Microsoft Visual Studio Debugger, GNU Debugger. Ngoài ra còn có những Debugger phần cứng được thiết kế kèm cho các hệ thống nhúng (Embedded System) bởi các thiết kế nhúng không phải là những thiết kế mang tính mục đích chung (General-purpose) mà thường được thiết kế trên các platform riêng biệt phục vụ các ứng ứng dụng riêng biệt nên cũng cần những Debugger đặc thù đi kèm. 
  • Printlining: đơn giản là bạn thêm vào source code của bạn những dòng lệnh để in ra những thông tin mà bạn cần theo dõi trong quá trình thực thi. Chẳng hạn nếu bạn dùng Arduino IDE thì bạn sẽ không có Debugger và cách Debug phù hợp nhất là bạn dùng Serial.print(). 
  • Logging: tạo ra một biểu mẫu để ghi (log) lại những thông tin sau khi chương trình thực thi. Phân tích nguyên nhân lỗi dựa trên những thông tin này. 
  • Ngoài ra thì còn một phương pháp mà cá nhân mình cho là rất hiệu quả đó là phương pháp – Nhờ người khác debug – là việc bạn vác đoạn code ra nhờ người có kinh nghiệm hơn debug dùm.

Tạm Kết.

Một vài mẹo viết code kiểm soát lỗi nhanh:

  • Dùng comment(chú thích) sau khi viết xong 1 đoạn code về 1 phần nào đó để sau này dễ tìm và sửa. 
  • Đặt tên các hàm các biến…… có ý nghĩa để dễ kiểm soát và tìm lỗi. 
  • Hoặc có thể sử dụng Breakpoints để rà soát xem program của bạn chạy đến vị trí nào của code và đến đó có đúng không. 
  • Đừng bỏ qua các Error Message nó sẽ giúp chúng ta có thể tìm ra số dòng code và sửa rất nhanh.

Chúc các bạn có thể học lập trình một cách tốt nhất !

Source: https://dpbb.vn
Category: Hỏi đáp

Hãy bình luận đầu tiên

Để lại một phản hồi

Thư điện tử của bạn sẽ không được hiện thị công khai.


*