Learning JavaScript Design Patterns: A JavaScript and jQuery Developer's Guide