“If debugging is the process of removing bugs, then programming must be the process of putting them in.” (Theo nhà khoa học máy tính Edsger W. Dijkstra). Như vậy, lập trình không thể tránh khỏi các lỗi. Song, liệu bạn đã biết những lỗi phổ biến mà dân lập trình hay mắc phải? Bài viết dưới đây sẽ mang tới một cái nhìn tổng hợp, khái quát.
1, Lỗi cú pháp (Syntax Errors)
Cũng giống như ngôn ngữ của con người, ngôn ngữ máy tính có các quy tắc ngữ pháp. Tuy nhiên, trong khi con người, ở một số trường hợp, có thể giao tiếp với ngữ pháp linh hoạt, thì máy tính lại không thể bỏ qua các lỗi ngữ pháp. Ví dụ: cú pháp chính xác là print(‘hello’). Nếu bạn quên một trong các dấu ngoặc đơn, lỗi cú pháp sẽ xảy ra và khiến chương trình ngừng chạy. Một số trình soạn thảo văn bản hoặc môi trường phát triển tích hợp (IDE) sẽ có khả năng cảnh báo bạn về các lỗi cú pháp tại thời điểm viết code.
2, Lỗi logic
Đây có thể là lỗi khó phát hiện nhất. Trong những trường hợp này, về mặt kỹ thuật, chương trình là đúng, tuy nhiên, kết quả lại không như mong đợi. Lỗi logic xảy ra nếu bạn không kiểm tra kỹ các yêu cầu hoặc chưa hiểu rõ hoạt động của code. Trình biên dịch không thể xác định được lỗi logic, do đó lập trình viên phải là người kiểm tra toàn bộ từng dòng code.
3, Lỗi biên dịch
Một số ngôn ngữ lập trình yêu cầu một bước biên dịch. Đây là thao tác chuyển đổi ngôn ngữ bậc cao thành ngôn ngữ bậc thấp hơn để giúp máy tính dễ dàng hiểu được. Lỗi biên dịch xảy ra khi trình biên dịch không thực hiện thành công việc chuyển đổi này. Trong ví dụ về print(‘hello’), nếu thiếu một dấu ngoặc đơn, trình biên dịch sẽ dừng lại và thông báo rằng không thể chuyển đổi sang ngôn ngữ bậc thấp. Nếu xảy ra lỗi compile-time, bạn sẽ không thể kiểm tra hoặc khởi chạy phần mềm.
4, Lỗi thực thi (Runtime Errors)
Lỗi thực thi xảy ra khi code không hoạt động tốt trên các máy tính khác ngoài máy của lập trình viên. Lỗi thực thi đặc biệt khó chịu, bởi nó ảnh hưởng trực tiếp đến người dùng cuối, làm cho ứng dụng trở nên thiếu tin cậy, thậm chí hỏng hoàn toàn. Để từng bước hạn chế lỗi này, bạn có thể tham khảo các framework và code do cộng đồng bảo trì, bởi nó đã được triển khai trong nhiều dự án và khắc phục nhiều vấn đề.
5, Lỗi số học (Arithmetic Errors)
Lỗi số học là một loại lỗi logic nhưng liên quan đến toán học. Ví dụ điển hình khi thực hiện một phương trình chia là bạn không thể chia cho 0, chẳng hạn như age.max / age.min có thể trả về lỗi nếu age.max hoặc age.min bằng 0. Lỗi số học, đôi khi, sẽ tạo ra lỗi logic hoặc thậm chí là lỗi thực thi (với trường hợp kể trên khi chia cho 0). Để hạn chế lỗi số học, bạn hãy tận dụng các kiểm tra tính năng bao hàm edge-cases như số 0 hoặc số âm.
6, Lỗi tài nguyên
Máy tính sẽ phân bổ một lượng tài nguyên cố định để chạy chương trình. Trong trường hợp code yêu cầu nhiều tài nguyên hơn, lỗi tài nguyên sẽ xảy ra. Lỗi tài nguyên có thể khó khắc phục vì máy của lập trình viên thường có chất lượng cao hơn so với máy chủ chạy code. Để khắc phục lỗi này, cần sự tham gia của đội ngũ vận hành, thay vì là những người phát triển. Hiện nay, có rất nhiều ứng dụng và dịch vụ kiểm tra lưu lượng giúp bạn lường trước được kết quả khi nhiều người dùng thử và chạy code cùng một lúc. Từ những ứng dụng này, bạn có thể thực hiện một số điều chỉnh cho phù hợp với thực tế sử dụng.
7, Lỗi giao diện
Hầu hết mọi thứ trong phần mềm đều tuân theo các tiêu chuẩn. Nếu thông tin đầu vào của chương trình không đúng với tiêu chuẩn, bạn có thể gặp phải lỗi giao diện. Ví dụ: lỗi giao diện xảy ra nếu bạn có một API yêu cầu đặt các thông số cụ thể, nhưng điều này không được thực hiện.
Trên đây là 07 lỗi phổ biến nhất khi lập trình. Hãy nhớ rằng, bug/lỗi là không thể tránh khỏi, bạn cần lường trước, phát hiện sớm để có thể khắc phục một cách hiệu quả. Hy vọng bài viết này hữu ích với các bạn đang bắt đầu học lập trình.
(Nguồn tham khảo: textexpander)