Spaghetti code
Spaghetti Code
Meaning
"Spaghetti code" là một từ miệt thị ám chỉ chương trình có luồng code rối rắm phức tạp. Dẫn đến hiện tượng chương trình khó bảo trì và phát triển. Nó xảy ra nhiều trên các chương trình cũ khi chương trình được viết ra không thể tiếp tục phát triển và chặn đứng hoàn toàn khả năng phát triển mở rộng của sản phẩm. Các tệp bị phân mảnh nặng và phân tán. Nó cũng được mô tả như là hiện tượng phản mẫu lại hướng lập trình hướng đối tượng (viết theo kiểu thủ tục).
Về tốc độ có thể tạm bỏ qua. Những chương trình này có thể đạt được tốc độ tốt đến khá tốt ở một vài khía cạnh nhưng giảm đáng kể đi tính dễ hiểu của hệ thống. Những người tiếp theo bảo trì phần mềm sẽ gặp rất nhiều rắc rối với những trường hợp phải xử lý ngoại lệ mà chương trình tạo ra.
History
Không rõ cụm từ này được bắt đầu từ khi nào nhưng lần đầu tiên nó được viết trực tiếp vào sách là cuốn "A primer on disciplined programming using PL/I, PL/CS, and PL/CT" của tác giả Guy Steele. Cuốn sách đó mô tả là "chương trình có cấu trúc logic rõ ràng như một đĩa mỳ spaghetti". Do hàng loạt những vấn đề của mã spaghetti gây ra, hội đồng chung châu Âu đã phải ra luật buộc lập trình viên phải tạo ra mã dễ hiểu thay vì mã spaghetti. Thậm chí, nếu bạn học ngôn ngữ C++ thì sẽ rất hiếm khi bắt gặp câu lệnh 'goto' mặc dù nó có trong ngôn ngữ này. Đây không phải là câu lệnh khó hiểu, thậm chí còn không hề nguy hiểm chết hệ thống hoặc thay đổi dữ liệu nhưng nó gây ra rối mã. Luật ngầm đã được đặt ra là không được phép sử dụng 'goto' trong code vì hầu hết các trường hợp sử dụng goto đều có thể được thay thế bằng cách viết khác dễ hiểu hơn. Mặc dù lần đầu thử mọi người sẽ thấy không quá khó để hiểu logic sử dụng goto nhưng ai biết được người kế thừa cảm thấy câu lệnh này mạnh mẽ và tiện dụng nên lại sử dụng lại. Từ lúc này, chương trình có thể bắt đầu trở thành một bát mỳ ống.
Một số lý do dẫn đến mã rối
- Yêu cầu dự án không ổn định.
- Thiếu quy tắc về phong cách lập trình.
- Kỹ sư phần mềm không đủ năng lực.
Nhận xét
Đăng nhận xét