มันเหมาะสมไหมที่จะใช้หลักการใน Redux กับภาษา OO?


9

Redux เป็นโปรแกรมที่ใช้งานได้เป็นหลักและมันสมเหตุสมผลดี เมื่อฉันย้ายกลับไปเป็นภาษา OOP ที่ไม่ใช่ javascript ในโครงการอื่นฉันต้องการใช้หลักการเดียวกันเช่นวัตถุสถานะเดียวตัวลดซึ่งทำหน้าที่ในส่วนของรัฐนั้นชั้นธุรกิจของการกระทำเชิงความหมายเพื่อปรับเปลี่ยนรัฐ

โครงการของฉันอยู่ใน C ++ และฉันต้องการทราบว่ามันสมเหตุสมผลหรือไม่ที่จะลองใช้วิธีการที่ใช้งานได้และมีรูปแบบของ redux เพื่อออกแบบแอปพลิเคชัน ประสิทธิภาพไม่ได้สำคัญอย่างยิ่งสำหรับแอพนี้ แต่การบำรุงรักษาก็คือ

ฉันต้องเผชิญปัญหาอะไรบ้างในการออกแบบแอพเช่นนี้


ฉันควรเพิ่มว่านี่ไม่ใช่แอป GUI และเมื่อคิดถึงมากกว่านั้น redux อาจลดประโยชน์ในแอปพลิเคชั่นที่ไม่ใช่ GUI เนื่องจากไม่มีเอฟเฟกต์ภาพโดยตรงจากการอัปเดตสถานะแอปพลิเคชัน


คนที่ทำสิ่งที่ redux บอกว่าเขามีการใช้งาน ES6 ซึ่งเป็นจาวาสคริปต์ที่เน้นวัตถุ
Robert Harvey

1
ฉันมองไปที่การทำสิ่งนี้ใน Java เมื่อไม่นานมานี้ คุณสามารถทำให้มันทำงาน Java 8 และ C ++ 11 เป็นอย่างน้อย "ทำงาน" เป็น Javascript แต่ระบบแบบสแตติกสามารถสร้างสิ่งที่น่าเกลียด ไม่ได้ จำกัด เฉพาะ GUIs แต่อย่างใด วิธีการของ Redux นั้นคล้ายกับวิธีการของ Clojure ในการจัดการรัฐภายใต้ภาวะพร้อมกันซึ่งไม่ได้เชื่อมโยงกับ GUI เลย
Torisuda

คำตอบ:


5

รูปแบบการทำงานของการเขียนโปรแกรมมักจะนำมาใช้ใหม่ได้ทุกที่ด้วยความคิดที่ถูกต้อง แนวคิดทั่วไปของการใช้กระบวนทัศน์ข้ามภาษาคือสิ่งที่ Steve McConnell อ้างถึงใน Code Complete ว่า "การเขียนโปรแกรมเป็นภาษา" ฉันต้องการชี้ให้เห็นว่าความปรารถนาที่จะใช้บทเรียนที่เรียนรู้ข้ามภาษาและกระบวนทัศน์ข้ามแดนเป็นเครื่องหมายของคนที่เห็นว่าภาษาเป็นสื่อการแสดงออกอย่างแท้จริง เป็นเรื่องที่น่าอัศจรรย์ที่นักพัฒนาซอฟต์แวร์ไม่เคยมาถึงจุดนี้

ในขณะที่คุณชี้ให้เห็นปรัชญาของ Redux มีเป้าหมายที่การพัฒนา UI เป็นการยากที่จะจินตนาการสถานการณ์มากเกินไปที่การติดตามสถานะเดลต้ามีประโยชน์ในสภาพแวดล้อมที่ไม่ใช่ UI มันขึ้นอยู่กับปัญหาของคุณจริงๆ หากวิธีการนี้ทำให้การแก้ปัญหาโดยรวมง่ายต่อการเข้าใจและบำรุงรักษาก็น่าจะเป็นวิธีที่ดี วิธีการทั่วไปที่ Redux ให้ความรู้สึกเหมือนกับธุรกรรมธุรกรรมใน RDBMS ส่วนใหญ่ดังนั้นจึงอาจเป็นเรื่องจริงที่แนวทางมีอยู่ก่อน JavaScript

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.