Friday, February 12, 2016

Nghiên cứu lập trình phản ứng với ngôn ngữ ELM

NGHIÊN CỨU LẬP TRÌNH PHẢN ỨNG VỚI NGÔN NGỮ ELM


                     Ngày nay Internet kết nối hàng tỷ người trên khắp thế giới và ứng dụng phổ biến như các mạng xã hội, công cụ tìm kiếm, các dịch vụ blog cánhân… được sử dụng bởi hàng triệu hoặc thậm chí hàng tỷ người sử dụng trên máy tính. Điều này thể hiện một sự thay đổi cả về phạm vi và quy mô của những gì chúng ta mong đợi về máy tính có thể làm cho con người. Với lợi ích của các ứng dụng web hiện đại và các ứng dụng trên di động đều có tính tương tác cao với vô số các sự kiện liên quan đến tương tác của người dùng. Các ứng dụng ngày càng phát triển và phong phú cho phép tương tác cao với người sử dụng ở thời gian thực. Để làm được điều đó chúng ta cần phải nghiên cứu và thiết kế những ứng dụng phổ biến để thực hiện những kỹ thuật này.
                 Điều đầu tiên là khi chúng ta cung cấp cho một máy tính một nhiệm vụ chúng ta muốn nó phản ứng lại nhanh nhất có thể. Nói một cách khác các máy tính phải phản ứng với người sử dụng của nó và đáp ứng được các yêu cầu một cách chính xác. Ví dụ khi chúng ta gửi một email thông qua Gmail bạn muốn xác nhận rằng nó đã được gửi đi hoặc khi ta xóa một email thì nó sẽ biến mất khỏi danh sách hiển thị, tất cả những thao tác người sử dụng đều được hiển thị bởi các trình duyệt web. Hoặc khi chúng ta chơi một trò chơi thì các tương tác của chúng ta với các nhân vật trong trò chơi phải được phản ứng theo ý của chúng ta trong một thời gian nhất định để có thể đạt mục đích. Để có thể làm được những điều này thì lập trình phản ứng là một câu trả lời.
                    Lập trình phản ứng là sự kết hợp của hệ thống đồng thời và hệ thống hướng sự kiện và cho phép xử lý luồng dữ liệu không đồng bộ nhưng vẫn duy trì phong cách của những ngôn ngữ lập trình thông thường.
                   Lập trình phản ứng làm tăng mức độ trừu tượng mã giúp người lập trình tập trung vào các sự kiện có liên quan tới nhau giải quyết những logic phức tạp. Mã trong lập trình phản ứng thường ngắn gọn, rõ dàng và dễ duy trì hơn. Tư duy trong lập trình phản ứng thường thiên về việc truyển đổi từ các dữ liệu đầu vào tương tác với dữ liệu trong chương trình để hiện thị dữ liệu đầu ra.
Ở trên thế giới hiện nay lập trình phản ứng là một xu hướng mới nổi được dựa trên luồng chảy dữ liệu (dataflow) và giá trị của chúng sẽ được thay đổi một cách tự động nếu như có sự tác động từ môi trường bên ngoài vào. Với sự phổ biến của hướng sự kiện, khả năng mở rộng và các kiến ​​trúc tương tác trên cả máy chủ và máy trạm các khái niệm về "reactiveness" đang ngày càng được chú ý. Nó ứng dụng rất cao để viết các ứng dụng web hoặc các hệ thống liên quan tới cơ sở dữ liệu lớn và cũng là phương pháp tạo ra nhiều hệ thống đồng thời có tính hiệu quả cao.

Mục đích nghiên cứu

            Mục đích nghiên cứu trong luận văn nhằm tìm hiểu các đặc điểm của lập trình phản ứng, cụ thể ở đây là nghiên cứu về lập trình phản ứng trong ngôn ngữ Elm, một ngôn ngữ khá mới trên thế giới và đang trong quá trình phát triển. Từ đó nắm vững được các đặc điểm của lập trình phản ứng cũng như cách vận dụng chúng trong ngôn ngữ Elm để tạo ra các ứng dụng mang tích tương tác với người sử dụng có tính hiệu quả cao. Mục đích thứ 2 là hiểu rõ được các cú pháp cũng như phương thức hoạt động động của ngôn ngữ Elm từ đó áp dụng vào để xây dựng lên một chương trình cụ thể.

Đối tượng và phạm vi nghiên cứu

            Đầu tiên ta sẽ nghiên cứu các đặc điểm và phương thức hoạt động của lập trình phản ứng xem chúng có điểm tương đồng gì với luồng dữ liệu. Tiếp theo tôi tập chung nghiên cứu sâu về ngôn ngữ Elm để làm nổi bật được các đặc điểm của lập trình phản ứng. Ngôn ngữ Elm là một ngôn ngữ mới được phát triển nó hoạt động dựa trên các thao tác với các giá trị đầu vào cái được gọi là tín hiệu (Signal). Tín hiệu là các giá trị dòng chảy thay đổi theo thời gian và nó được thiết lập và xử lý để thay đổi các giá trị luồng dữ liệu trong chương trình. Các thư viện trong Elm cũng khá là đơn giản và đầy đủ cho phép tối ưu hóa mã lập trình và tạo giao diện tương tác người dùng một cách dễ dàng. Elm là hoàn toàn hướng sự kiện và việc tính toán lại giá trị chỉ trừ khi một sự kiện xảy ra và nó hỗ trợ việc xử lý các luồng dữ liệu không đồng bộ. Cuối cùng tôi sẽ xây đựng một trò chơi bằng ngôn ngữ Elm để thể hiện rõ được đặc điểm của lập trình phản ứng trong đó.

Kết cấu của luận văn

                Luận văn của tôi trình bày ngoài phần mở đầu, mục lục, danh mục tài liệu tham khảo, kết quả đạt được thì nội dung của luận văn gồm 3 chương. Chương 1 sẽ nghiên cứu về lập trình phản ứng, nội dung trong chương sẽ nêu ra những đặc điểm về lập trình phản ứng, đặc điểm về luồng dữ liệu và xem chúng có những đặc điểm gì tương đồng hay không. Chương 2 tôi sẽ nghiên cứu đôi nét về lập trình hàm từ đó đi sâu về các cú pháp cơ bản của ngôn ngữ lập trình hàm Elm và cách tạo các giao diện đồ họa và tìm hiểu các tín hiệu đầu vào tương tác với chương trình. Sau đó tôi sẽ đi sâu vào cơ chế vận hành của ngôn ngữ Elm với các tín hiệu để thấy rõ được điểm mạnh của của lập trình hàm phản ứng. Cũng trong chương này ta nghiên cứu về trình gỡ lỗi và lập trình tương tác trong Elm. Chương 3 sẽ áp dụng ngôn ngữ Elm vào để xây dựng một trò chơi nhỏ thể hiện rõ các đặc điểm của lập trình hàm phản ứng. Qua ứng dụng trò chơi cũng như các nghiên cứu thì luận văn tôi sẽ đưa ra một số nhận xét, đánh giá, thảo luận về ưu nhược điểm của lập trình phản ứng trong chương này. Nhờ những đánh giá này mà các nhà nghiên cứu và người lập trình có thể tiếp tục phát triển ngôn ngữ Elm dùng nó làm công cụ để tạo ra các ứng dụng mang tính tương tác cao với người sử dụng.

NGHIÊN CỨU LẬP TRÌNH PHẢN ỨNG VỚI NGÔN NGỮ ELM: Tải về
Slide: Tải về
Tóm tắt: Tải về


No comments:

Post a Comment

Pages - Menu