Monday, 12 March 2012

Debugger và giấc mơ coder

Trước hết, chỉ là giật tít thôi, ko cần vác gạch ra ném :))

Trong những tay "lập trình" quanh đây, hầu như việc dùng 1 debugger là 1 điều khá xa lạ. Ngay cả bản thân tớ cũng chưa bao giờ dùng debugger cho đến khi đi làm - mặc dù cũng biết là nó tồn tại. Câu hỏi là debugger có thật sự cần thiết không, không có có chết không, và sao hầu như "những người quanh ta" lại không dùng nó.
Dưới đây là vài câu trả lời tớ có thể đưa ra:
- Debugger là 1 công cụ hỗ trợ việc lập trình - cụ thể là việc tìm lỗi. Bởi thế không dùng nó cũng chẳng chết ai. Tớ đã viết hơn chục nghìn dòng code mà chả dùng debugger lấy 1 lần :D
- Thấy "nhiều người" không dùng nó: bởi 2 lí do chính 
không ai dạy - quen với kiểu print ra để xem giá trị  và những gì các bạn làm quá nhỏ, khiến cho debugger thật sự không đóng vai trò lớn.
- Câu hỏi cuối: có cần/nên dùng không? tất nhiên là nên dùng và thành thạo. Bởi thay vì đi print từng dòng ra để xem giá trị thì debugger sẽ giúp bạn làm điều đó. Nếu từng lập trình, bạn hẳn đã từng thử tính: khi i = 1, a[i] = ..., i = 2, a[2] = ... hay thậm chí in nó ra kiểm tra. debugger sẽ giúp bạn làm điều đó nhanh hơn rất nhiều lần.

Hầu hết các debugger có chức năng cơ bản sau:
1. Đặt breakpoint - đánh dấu dòng lệnh mà bạn muốn chương trình dừng lại để kiểm tra các giá trị.
2. Step into, step over - "chạy" vào từng hàm, qua từng dòng lệnh. Dùng 2,3 ngày là thành thạo ngay.

Các debugger phổ biến:
Với C: gdb
Với Java: các IDE phổ biến đều có debugger của riêng mình
PHP:..
Python:...
nói chung là ASM thì không biết chứ ngôn ngữ nào mà chả có debugger :))

cuối cùng, giấc mơ coder là gì???
là lương tăng và viết chương trình không có lỗi :))