Liệu nó có ý nghĩa để áp dụng các nguyên tắc trong Redux cho các ngôn ngữ OO?


9

Redux về cơ bản là lập trình chức năng, và nó rất có ý nghĩa. Khi tôi quay trở lại ngôn ngữ OOP không javascript trong một dự án khác, tôi muốn áp dụng các nguyên tắc tương tự như đối tượng trạng thái đơn, bộ giảm tác động lên các phần của trạng thái đó, một lớp hành động ngữ nghĩa kinh doanh để sửa đổi trạng thái.

Dự án của tôi là trong C ++ và tôi muốn biết liệu có hợp lý không khi thử và áp dụng một cách tiếp cận phong cách chức năng, redux để thiết kế ứng dụng. Hiệu suất không quá quan trọng cho ứng dụng này, nhưng khả năng bảo trì là.

Những khó khăn tôi sẽ phải đối mặt khi thiết kế ứng dụng của tôi như thế này?


Tôi nên thêm rằng đây không phải là một ứng dụng GUI. Và nghĩ về điều đó nhiều hơn, có thể redux đã làm giảm lợi ích trong một ứng dụng GUI vì không có hiệu ứng trực quan nào của việc cập nhật trạng thái ứng dụng.


Anh chàng đã làm điều Redux nói rằng anh ta có một triển khai ES6, về cơ bản là Javascript hướng đối tượng.
Robert Harvey

1
Tôi đã xem xét việc này trong Java một thời gian trước đây. Bạn có thể làm cho nó hoạt động; Java 8 và C ++ 11 ít nhất là "chức năng" như Javascript. Nhưng hệ thống kiểu tĩnh có thể khiến mọi thứ trở nên xấu xí. Nhân tiện, không giới hạn ở GUI; Cách tiếp cận của Redux cực kỳ giống với cách Clojure quản lý trạng thái theo đồng thời, hoàn toàn không bị ràng buộc với GUI.
Torisuda

Câu trả lời:


5

Các phong cách chức năng của lập trình có xu hướng có thể tái sử dụng ở bất cứ đâu với tư duy đúng. Ý tưởng chung về việc áp dụng các mô hình ngôn ngữ chéo là những gì Steve McConnell đề cập trong Code Complete là "lập trình thành ngôn ngữ". Tôi chủ yếu muốn chỉ ra rằng mong muốn áp dụng các bài học về ngôn ngữ chéo và mô hình chéo thực sự là dấu hiệu của một người coi ngôn ngữ là phương tiện biểu đạt. Thật đáng ngạc nhiên khi nhiều nhà phát triển không bao giờ đạt đến điểm này.

Như bạn chỉ ra, triết lý của Redux nhắm vào phát triển UI. Thật khó để hình dung quá nhiều kịch bản trong đó theo dõi trạng thái delta là hữu ích trong môi trường không có UI. Nó thực sự phụ thuộc vào vấn đề của bạn, mặc dù. Nếu cách tiếp cận làm cho giải pháp tổng thể dễ hiểu và dễ bảo trì hơn, thì đó có lẽ là một giải pháp tốt. Cách tiếp cận chung mà Redux sử dụng có cảm giác rất giống với tạp chí giao dịch trong hầu hết các RDBMS, do đó, có thể đúng là cách tiếp cận tồn tại trước JavaScript.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.