Learning JavaScript Design Patterns (A JavaScript and React Developer's Guide)