Là một lập trình viên, bạn phải làm quen với bug. Nói một cách đơn giản, một bug có thể được định nghĩa là một lỗi trong một chương trình. Trong quá trình viết code, chúng ta thường mắc một số sai lầm. Những sai lầm này được thể hiện dưới dạng bug trong code của bạn. Viết code là phần dễ dàng. Bước khó khăn là debug (tìm error hoặc bug trong chương trình). Quá trình này thường khiến các dev điên máu vì tạo thêm n bug khác thay vì sửa bug hiện tại. Dưới này là 5 loại bug điển hình mà dev nào cũng phải gặp ít nhất một lần trong đời:
Bug tí hon
Đây là loài ‘bọ’ có ‘kích thước’ nhỏ hơn rất nhiều so với đồng bạn, nhưng đối phó với chúng không phải là nhiệm vụ dễ dàng. Bạn sẽ nhận được các loại compile error, và sau đó tiêu tốn hàng giờ đồng hồ, hoặc thậm chí cả ngày trời chỉ để cố gắng tìm ra đoạn code có vấn đề. Các lỗi như vậy bao gồm quên dấu chấm phẩy ‘;’ hoặc các loại dấu ngoặc ‘( )’. Trong một vài ngôn ngữ lập trình, ví dụ như Python, bạn có thể gặp vấn đề khi thụt lề sai. Các lỗi nhỏ có thể được phát hiện khi sử dụng các IDE phù hợp. Bug tí hon là loại lỗi gây khó chịu nhất trong tất cả các loại vì bạn biết chúng có thể dễ dàng sửa chữa nhưng phải dành cả thanh xuân chỉ để xác định vị trí chúng.
Bug không tồn tại
Loại lỗi này thậm chí còn không tồn tại. Vấn đề là compile error cứ thế mà nhảy ra liên tục dù bạn đã review code lại cả trăm lần!! Việc này có thể xảy ra khi trình biên dịch bị lỗi hoặc dùng sai. Bạn sẽ có thể bị báo lỗi khi hoàn toàn không có lỗi nào. Các trình biên dịch cũ có thể không hỗ trợ các tính năng mới hiện hành. Bạn cũng nên cập nhật trình biên dịch của mình càng thường xuyên càng tốt. Lời khuyên là: Hãy chọn trình biên dịch cẩn thận hơn cả khi chọn vợ. Thỉnh thoảng, code của bạn có thể chạy hoàn hảo, nhưng bạn lại được báo lỗi sau khi cập nhật trình biên dịch. Điều này có nghĩa là trình biên dịch chỉ đơn giản hiển thị cho bạn các lỗi đang tồn tại mà trước đó không thể phát hiện được.
Bug khủng
Bạn gặp các bug này khi code có các lỗi cú pháp (syntax) hoặc chính tả. Các bug như vậy cũng bắt nguồn từ các lỗi thuật toán, logic hoặc lỗi tài nguyên. Lỗi tài nguyên có thể bao gồm việc sử dụng sai loại dữ liệu và vi phạm truy cập. Mỗi ngôn ngữ lập trình đều có cú pháp riêng, cần được theo dõi tỉ mỉ. Một sai lệch nhẹ có thể làm hỏng mọi thứ. May mắn thay, một trình biên dịch tốt có thể phát hiện ra các lỗi như vậy và cho phép bạn sửa chữa chúng.
Bug ẩn thân
Các lỗi như vậy không bao giờ tự hiển thị trong trình biên dịch. Chỉ sau khi phần mềm được cài đặt và sử dụng, bạn sẽ bắt đầu thấy các biểu hiện của chúng. Sẽ có sự cố và các hoạt động không mong muốn. Trong hầu hết các trường hợp, các bug ẩn nằm ở dạng lỗ hổng khiến cho phần mềm không an toàn và dễ bị hack.
Bug bất ngờ
Bug bất ngờ xuất hiện từ hư không. Code của bạn có thể chạy hoàn hảo ngay hôm nay. Nhưng bằng cách nào đó, nó sẽ không hoạt động tốt vào ngày hôm sau. Nó sẽ khiến cho bạn tự hỏi liệu có ai đó đã quậy code của mình trong khi mình đang ngủ.
Càng code nhiều, bạn sẽ càng dễ dàng debug. Một số lỗi chỉ cần 5 giây. Một số lỗi khác có thể phải cần tới 5 ngày. Và sẽ có vài bug mà có thể cả đời bạn cũng không bao giờ sửa được, buồn thay… Hãy nhớ rằng bạn có thể tạo thêm 5 lỗi trong khi cố sửa 2 bug. Nếu code của bạn hoạt động, có thể bạn đừng đụng gì tới nó nữa thì hơn.