Lập trình phản ứng
Trong điện toán, lập trình phản ứng (tiếng Anh: reactive programming) là một mẫu hình lập trình khai báo liên quan đến các luồng dữ liệu và lan truyền của sự thay đổi. Với mẫu hình này, có thể dễ dàng thể hiện các luồng dữ liệu (data stream) tĩnh (ví dụ: mảng) hoặc động (ví dụ: bộ phát sự kiện) và cũng có thể truyền đạt rằng có tồn tại một sự phụ thuộc được suy ra trong mô hình thực thi liên quan, tạo điều kiện cho việc truyền tự động dữ liệu đã thay đổi lưu lượng.
Ví dụ, trong thiết lập của lập trình mệnh lệnh (imperative programming), có nghĩa là được gán cho kết quả của ngay khi biểu thức được ước tính, và sau đó, giá trị của và có thể được thay đổi mà không ảnh hưởng tới giá trị của . Ngược lại, trong lập trình phản ứng, giá trị của được tự động cập nhật mỗi khi giá trị của hay thay đổi mà không cần chương trình phải thực thi lại câu lệnh để xác định giá trị được gán hiện tại của [cần dẫn nguồn]
Một ví dụ khác là ngôn ngữ mô tả phần cứng như Verilog, trong đó lập trình phản ứng cho phép các thay đổi được mô hình hóa khi chúng lan truyền qua các mạch.
Lập trình phản ứng được đề xuất như là một cách để đơn giản hóa việc tạo giao diện người dùng tương tác và hoạt hình hệ thống gần thời gian thực.[cần dẫn nguồn]
Ví dụ, trong kiến trúc MVC (model–view–controller), lập trình phản ứng có thể tạo điều kiện cho các thay đổi trong model bên dưới để được phản ánh tự động trong view được liên kết.[1]
Cách tiếp cận để tạo ngôn ngữ lập trình phản ứng
sửaXem thêm
sửa- Reactive extensions, một API để thực hiện lập trình phản ứng với các luồng, các observable và toán tử có nhiều hiện thực ngôn ngữ bao gồm RxJs, RxJava, RxPy và RxSwift.
- Elm (ngôn ngữ lập trình) Thành phần phản ứng của giao diện người dùng web.
- Reactive Streams, một tiêu chuẩn JVM để xử lý luồng không đồng bộ với áp lực không chặn
- Observable, quan sát được trong lập trình phản ứng.
Tham khảo
sửa- ^ Model-view-controller and the observer pattern
Liên kết ngoài
sửaCó những liên kết ngoài trong bài này không tuân theo quy định hoặc nguyên tắc của Wikipedia. (August 2016) |
- A survey on reactive programming A paper by E. Bainomugisha, A. Lombide Carreton, T. Van Cutsem, S. Mostinckx, and W. De Meuter that surveys and provides a taxonomy of existing reactive programming approaches.
- MIMOSA Project of INRIA - ENSMP, a general site about reactive programming.
- Experimenting with Cells Demonstration of a simple reactive programming application in Lisp, using the Cells library
- REScala Reactive programming for OO applications.
- Deprecating the Observer Pattern A 2010 paper by Ingo Maier, Tiark Rompf and Martin Odersky outlining a reactive programming framework for the Scala programming language.
- Deprecating the Observer Pattern with Scala.React A 2012 paper by Ingo * RxJS, the Reactive Extensions library for "composing asynchronous [...] programs using observable sequences"