tailieunhanh - Bài giảng Kỹ thuật lập trình - Bài 6: Lập trình phòng thủ

Bài giảng Kỹ thuật lập trình - Bài 6: Lập trình phòng thủ trình bày về khái niệm, xử lý rác, bảo đảm, xử lý lỗi, gỡ lỗi. Bên cạnh đó, những bài tập được đưa ra ở cuối bài giảng sẽ giúp cho các bạn hiểu rõ hơn về điều này. | Bài 6 LẬP TRÌNH PHÒNG THỦ Trịnh Thành Trung trungtt@ 1 KHÁI NIỆM - Khái niệm • Lập trình phòng thủ - Defensive Programming: Xuất phát từ khái niệm defensive driving. • Khi lái xe bạn luôn phải tâm niệm rằng bạn không bao giờ biết chắc được người lái xe khác sẽ làm gì. Bằng cách đó, bạn có thể chắc chắn rằng khi họ làm điều gì nguy hiểm, thì bạn sẽ không bị ảnh hưởng (tai nạn). • Bạn có trách nhiệm bảo vệ bản thân, ngay cả khi người khác có lỗi • Trong defensive programming, ý tưởng chính là nếu chương trình (con) được truyền dữ liệu tồi, nó cũng không sao, kể cả khi với chương trình khác thì sẽ bị fault. • Một cách tổng quát, lập trình phòng thủ nghĩa là: làm thế nào để tự bảo vệ mình khỏi thế giới lạnh lùng, tàn nhẫn của dữ liệu không hợp lệ, các sự kiện mà có thể "không bao giờ" xảy ra, và các lập trình viên khác ‘sai lầm’ Invalid inputs • Trong thực tiễn: “Garbage in, garbage out.” • Trong lập trình “rác rưởi vào – rác rưởi ra” là điều không chấp nhận • Một chương trình tốt không bao giờ sãn xuất ra rác rưởi, bất kể đầu vào là gì ! • Với 1 chương trình tốt thì: ”rác rưởi vào, không có gì ra”, “rác rưởi vào, có thông báo lỗi” hoặc “không cho phép rác rưởi vào”. • Theo tiêu chuẩn ngày nay, “garbage in, garbage out” là dấu hiệu của những chương trình tồi, không an toàn Ví dụ switch(value1) { case 1: value2 = 1; break; case 2: value2 = 4; break; } return(1 / value2); for (int i = 0; for (double i = khong bi thay for (double i = i != limit; i++) {.} 0; i != ; i += 1) // safe neu i doi trong than vong lap 0; i != ; i += ) // not ok .

TỪ KHÓA LIÊN QUAN