Khái niệm cơ bản về Data Driven Programming

Định nghĩa data-driven programming – lập trình hướng dữ liệu

Trong phát triển phần mềm, data-driven programming là mô hình lập trình mà ở đó mã nguồn của chương trình không hoặc chứa rất ít xử lý nghiệp vụ (business logic) mà chỉ chứa logic chung, cho phép xử lý các tập data khác nhau. Có thể coi các chương trình viết theo data-driven chỉ là các tools dùng để đọc và xử lý data sau đó cho ra kết quả tương ứng với data. Thay vì các câu lệnh xử lý logic được viết một cách cứng nhắc trong mã nguồn chương trình thì ở đây bản thân data chính là các câu lệnh, data chứa các thông tin về control flow, sequence cần được thực thi. Hay nói cách khác thì data chính là nghiệp vụ.

Data-driven program được thiết kế để có thể thay đổi logic của chương trình bằng cách thay đổi data mà không phải thay đổi mã nguồn chương trình. Chương trình lúc này đóng vai trò là một pipeline (đường ống) xử lý các command dựa trên data đầu vào và cho ra kết quả tương ứng.

Một số ví dụ phổ biến về ngôn ngữ lập trình chuyên dụng dành cho data-driven đó chính là ngôn ngữ xử lý text (text-processing languages) như sedAWK, ở đó data là một tập các dòng lệnh chứa trong một luồng dữ liệu đầu vào (input stream).

Ứng dụng của data-driven programming

Data-driven programming thường được áp dụng cho các luồng dữ liệu có cấu trúc, để lọc, chuyển đổi, tổng hợp thông tin. Các input stream bao gồm các log files, các dữ liệu phân tách hoặc email…

Ví dụ: Sử dụng Data-driven program để vận hành hệ thống kiểm thử. Data đầu vào là các kịch bản kiểm thử (test scripts), nó cho chương trình biết công cụ nào cần được thiết lập và cần đọc các thông số để kiểm tra, đánh giá. Output sẽ là tạo ra một file tổng hợp kết quả test theo định dạng phân tách, có thể dễ dàng load vào excel để hiển thị và vẽ đồ thị.

Một số ngôn ngữ lập trình hướng dữ liệu (Data-driven programming languages) phổ biến 

  • AWK
  • sed
  • Perl
  • Lua
  • Oz
  • Clojure

— Author: Phạm Minh Tuấn —

DEV quèn có tâm

Xem thêm:

Khái niệm cơ bản về Event Driven Programming