Garbage in, garbage out là gì?

Phrase None
Rác vào, rác ra

"Garbage in, garbage out" có nghĩa là đầu vào không tốt sẽ tạo ra kết quả không tốt. Nếu dữ liệu không hợp lệ được nhập vào hệ thống, kết quả đầu ra cũng sẽ không hợp lệ. Nếu một người viết một chương trình bị lỗi, người ta sẽ không nhận được kết quả mà người ta mong đợi. Nếu một người bắt đầu bằng vật liệu kém chất lượng, sản phẩm của một người sẽ không có chất lượng cao. Nói cách khác chất lượng của đầu vào quyết định chất lượng của đầu ra. Trong một hệ thống xử lý, chất lượng dữ liệu xuất ra không thể tốt hơn chất lượng dữ liệu đi vào. Do đó, một chương trình sẽ chỉ mang lại kết quả sai lệch nếu nó đang hoạt động trên dữ liệu bị lỗi.

Bởi vì máy tính hoạt động bằng cách sử dụng logic chặt chẽ, đầu vào không hợp lệ có thể tạo ra đầu ra không thể nhận dạng được hoặc "rác" (garbage). Ví dụ: Nếu một chương trình yêu cầu một số nguyên (integer) và bạn nhập một chuỗi (string), bạn có thể nhận được một kết quả không mong muốn. Tương tự, nếu bạn cố gắng mở một tệp nhị phân (binary file) trong trình soạn thảo văn bản (text editor), nó có thể hiển thị nội dung không đọc được. Một chương trình được viết tốt sẽ tránh tạo ra rác bằng cách không chấp nhận nó ngay từ đầu. Yêu cầu đầu vào hợp lệ cũng giúp các chương trình tránh được các lỗi có thể gây ra sự cố (crash) và các hành vi thất thường khác.

Với lập trình máy tính, "garbage in, garbage out" nghĩa là chương trình không có khả năng diễn giải bất kỳ dữ liệu xấu nào nhận được, dẫn đến kết quả không chính xác hoặc sự cố. Ví dụ: Nếu một chương trình cố gắng truy cập vào một phần bộ nhớ (memory) không thích hợp, thì kernel không cho phép nó. Kết quả là chương trình sẽ bị sập (kết thúc bất thường).

Các lập trình viên cố gắng nhận thức được nguyên tắc "garbage in, garbage out" và trên thực tế nhiều máy tính có khả năng kiểm tra mã (code) cho các lỗi cơ bản. Tuy nhiên, hầu hết dữ liệu đầu vào vẫn cần được hiệu đính, đặc biệt nếu nó phức tạp và chứa nhiều đối số.

Nguyên tắc "garbage in, garbage out" có thể áp dụng cho nhiều việc trong cuộc sống. Nấu ăn với các nguyên liệu kém chất lượng, thường dẫn đến một bữa ăn thất vọng. Tương tự như vậy và ở mức độ nghiêm trọng hơn, những học sinh có trình độ học vấn kém thường phải vật lộn để thành công trong cuộc sống. Bài học là hãy đảm bảo rằng thứ gì đó có chất lượng tốt trước khi bạn sử dụng, cho dù đó là mã hay hệ thống sưởi mới.

Thuật ngữ này cũng được sử dụng rộng rãi trong các ngành công nghiệp khác, đáng chú ý nhất là trong ngành công nghiệp ghi âm, nơi mọi người nhấn mạnh nhu cầu về thiết bị tốt. Trong trường hợp này, bản thu ban đầu không tốt sẽ dẫn đến chất lượng album thấp.

Một biến thể của thuật ngữ này là "garbage in, gospel out" đề cập đến xu hướng đặt niềm tin không chính đáng vào tính chính xác của dữ liệu do máy tính tạo ra.

Cụm từ "garbage in, garbage out" được lập trình viên và giảng viên máy tính của IBM là George Fuechsel đặt ra vào những năm 1960 để để nhắc nhở các sinh viên của mình rằng khi dữ liệu bị lỗi đi vào máy tính chắc chắn sẽ dẫn đến kết quả bị lỗi. "Garbage in, garbage out" đôi khi được viết tắt là GIGO, đặc biệt là trong giới máy tính. Thuật ngữ này hiện được sử dụng rộng rãi trong các lớp khoa học máy tính (computer science), dịch vụ CNTT (IT service). Trên thực tế, "garbage in, garbage out" đôi khi được dùng để chỉ các tình huống trong thế giới tương tự, chẳng hạn như một quyết định sai lầm do thông tin không đầy đủ.

Learning English Everyday