Node.js Design Patterns

Node.js Design Patterns

If you're a JavaScript developer interested in a deeper understanding of how to create and design Node.js applications, this is the book for you.

Learning JavaScript Design Patterns

Learning JavaScript Design Patterns

An introduction to writing code with JavaScript using classical and modern design patterns, including modules, observers, facades, and mediators.

Serverless Design Patterns and Best Practices

Build, secure, and deploy enterprise ready serverless applications with AWS to improve developer productivity

Serverless Design Patterns and Best Practices

Get started with designing your serverless application using optimum design patterns and industry standard practices Key Features Learn the details of popular software patterns and how they are applied to serverless applications Understand key concepts and components in serverless designs Walk away with a thorough understanding of architecting serverless applications Book Description Serverless applications handle many problems that developers face when running systems and servers. The serverless pay-per-invocation model can also result in drastic cost savings, contributing to its popularity. While it's simple to create a basic serverless application, it's critical to structure your software correctly to ensure it continues to succeed as it grows. Serverless Design Patterns and Best Practices presents patterns that can be adapted to run in a serverless environment. You will learn how to develop applications that are scalable, fault tolerant, and well-tested. The book begins with an introduction to the different design pattern categories available for serverless applications. You will learn the trade-offs between GraphQL and REST and how they fare regarding overall application design in a serverless ecosystem. The book will also show you how to migrate an existing API to a serverless backend using AWS API Gateway. You will learn how to build event-driven applications using queuing and streaming systems, such as AWS Simple Queuing Service (SQS) and AWS Kinesis. Patterns for data-intensive serverless application are also explained, including the lambda architecture and MapReduce. This book will equip you with the knowledge and skills you need to develop scalable and resilient serverless applications confidently. What you will learn Comprehend the popular design patterns currently being used with serverless architectures Understand the various design options and corresponding implementations for serverless web application APIs Learn multiple patterns for data-intensive serverless systems and pipelines, including MapReduce and Lambda Architecture Learn how to leverage hosted databases, queues, streams, storage services, and notification services Understand error handling and system monitoring in a serverless architecture a serverless architecture Learn how to set up a serverless application for continuous integration, continuous delivery, and continuous deployment Who this book is for If you're a software architect, engineer, or someone who wants to build serverless applications, which are non-trivial in complexity and scope, then this book is for you. Basic knowledge of programming and serverless computing concepts are assumed.

TypeScript Design Patterns

TypeScript Design Patterns

Boost your development efficiency by learning about design patterns in TypeScript About This Book This step-by-step guide will would demonstrate all the important design patterns in practice This book is the only documentation on the market focusing on design patterns in TypeScript This book is packed with rich examples that will improve your efficiency and encourage code reuse Who This Book Is For If you are a TypeScript developer, this book is for you. No knowledge of design patterns is required to read this book. What You Will Learn Understand the challenges and implications of developing an enterprise application Install and configure the necessary tools in order to start developing an application Identify the challenges when developing an application Apply GoF patterns in an application with a testing approach Use and utilize design patterns while developing a TypeScript application or during JavaScript application development Reference to SOLID principles and what their benefits do to your projects Apply various principles in a TypeScript application Improve code quality and development speed In Detail In programming, there are several problems that occur frequently. To solve these problems, there are various repeatable solutions that are known as design patterns. Design patterns are a great way to improve the efficiency of your programs and improve your productivity. This book is a collection of the most important patterns you need to improve your applications' performance and your productivity. The journey starts by explaining the current challenges when designing and developing an application and how you can solve these challenges by applying the correct design pattern and best practices. Each pattern is accompanied with rich examples that demonstrate the power of patterns for a range of tasks, from building an application to code testing. We'll introduce low-level programming concepts to help you write TypeScript code, as well as work with software architecture, best practices, and design aspects. Style and approach In this book, design patterns are explained in a step-by-step manner. All the major patterns covered will improve your understanding of TypeScript and the patterns associated with TypeScript.

Vue.js 2 Design Patterns and Best Practices

Build enterprise-ready, modular Vue.js applications with Vuex and Nuxt

Vue.js 2 Design Patterns and Best Practices

Become an expert Vue developer by understanding design patterns and the component architecture of Vue.js to write clean and maintainable code Key Features Craft highly modular applications by exploring design patterns and the component architecture of Vue.js Enforce a Flux-like application architecture in your Vue.js applications with Vuex Easy-to-follow examples that can be used to create reusable code and extensible designs Book Description Vue.js 2 Design Patterns and Best Practices starts by comparing Vue.js with other frameworks and setting up the development environment for your application, and gradually moves on to writing and styling clean, maintainable, and reusable Vue.js components that can be used across your application. Further on, you'll look at common UI patterns, Vue form submission, and various modifiers such as lazy binding, number typecasting, and string trimming to create better UIs. You will also explore best practices for integrating HTTP into Vue.js applications to create an application with dynamic data. Routing is a vitally important part of any SPA, so you will focus on the vue-router and explore routing a user between multiple pages. Next, you'll also explore state management with Vuex, write testable code for your application, and create performant, server-side rendered applications with Nuxt. Toward the end, we'll look at common antipatterns to avoid, saving you from a lot of trial and error and development headaches. By the end of this book, you'll be on your way to becoming an expert Vue developer who can leverage design patterns to efficiently architect the design of your application and write clean and maintainable code. What you will learn Understand the theory and patterns of Vue.js Build scalable and modular Vue.js applications Take advantage of Vuex for reactive state management Create single page applications with vue-router Use Nuxt for FAST server-side rendered Vue applications Convert your application to a Progressive Web App (PWA) and add ServiceWorkers and offline support Build your app with Vue.js by following best practices and explore the common anti-patterns to avoid Who this book is for This book is for Vue developers who are familiar with framework design principles and utilize commonly found design patterns in developing web applications.

TypeScript: Modern JavaScript Development

TypeScript: Modern JavaScript Development

Leverage the features of TypeScript to boost your development skills and create captivating applications About This Book Learn how to develop modular, scalable, maintainable, and adaptable web applications by taking advantage of TypeScript Explore techniques to use TypeScript alongside other leading tools such as Angular 2, React, and Node.js Focusing on design patterns in TypeScript, this step-by-step guide demonstrates all the important design patterns in practice Who This Book Is For This Learning Path is for intermediate-level JavaScript developers who want to use TypeScript to build beautiful web applications and fun projects. No prior knowledge of TypeScript is required, but a basic understanding of jQuery is expected. This Learning Path is also for experienced TypeScript developers who want to take their skills to the next level, and also for web developers who wish to make the most of TypeScript. What You Will Learn Understand the key TypeScript language features and runtime Install and configure the necessary tools in order to start developing an application Create object-oriented code that adheres to the SOLID principles Develop robust applications with testing (Mocha, Chai, and SinonJS) Apply GoF patterns in an application with a testing approach Identify the challenges when developing an application Migrate JavaScript codebases to TypeScript to improve your workflow Utilize System.JS and Webpack to load scripts and their dependencies Develop high performance server-side applications to run within Node.js In Detail TypeScript is an open source and cross-platform typed superset of JavaScript that compiles to plain JavaScript that runs in any browser or any host. TypeScript adds optional static types, classes, and modules to JavaScript, to enable great tooling and better structuring of large JavaScript applications. Through this three-module learning path, you'll learn the ins-and-outs of TypeScript for building more robust software. The first module gets you started with TypeScript and helps you understand the basics of TypeScript and automation tools. Get a detailed description of function, generics, callbacks, and promises, and discover the object-oriented features and memory management functionality of TypeScript. The next module starts by explaining the current challenges when designing and developing an application and how you can solve these challenges by applying the correct design pattern and best practices. You will be introduced to low-level programming concepts to help you write TypeScript code, as well as working with software architecture, best practices, and design aspects. The final module will help you build a complete single page app with Angular 2, create a neat mobile app using NativeScript, and even build a Pac Man game with TypeScript. As if the fun wasn't enough, you'll also find out how to migrate your legacy codebase from JavaScript to TypeScript. By the end of this Learning Path, you will be able to take your skills up a notch and develop full-fledged web applications using the latest features of the TypeScript. This Learning Path combines some of the best that Packt has to offer in one complete, curated package. It includes content from the following Packt products: Learning TypeScript by Remo H. Jansen TypeScript Design Patterns by Vilic Vane TypeScript Blueprints by Ivo Gabe de Wolff Style and approach This is a step-by-step, practical guide covering the fundamentals of TypeScript with practical examples. The end-to-end projects included in this book will give you ready-to-implement solutions for your business scenario, showcasing the depth and robustness of TypeScript.

Hands-On Microservices with Node.js

Build, test, and deploy robust microservices in JavaScript

Hands-On Microservices with Node.js

Learn essential microservices concepts while developing scalable applications with Express, Docker, Kubernetes, and Docker Swarm using Node 10 Key Features Write clean and maintainable code with JavaScript for better microservices development Dive into the Node.js ecosystem and build scalable microservices with Seneca, Hydra, and Express.js Develop smart, efficient, and fast enterprise-grade microservices implementation Book Description Microservices enable us to develop software in small pieces that work together but can be developed separately; this is one reason why enterprises have started embracing them. For the past few years, Node.js has emerged as a strong candidate for developing microservices because of its ability to increase your productivity and the performance of your applications. Hands-On Microservices with Node.js is an end-to-end guide on how to dismantle your monolithic application and embrace the microservice architecture - right from architecting your services and modeling them to integrating them into your application. We'll develop and deploy these microservices using Docker. Scalability is an important factor to consider when adding more functionality to your application, and so we delve into various solutions, such as Docker Swarm and Kubernetes, to scale our microservices. Testing and deploying these services while scaling is a real challenge; we'll overcome this challenge by setting up deployment pipelines that break up application build processes in several stages. Later on, we'll take a look at serverless architecture for our microservices and its benefits against traditional architecture. Finally, we share best practices and several design patterns for creating efficient microservices. What you will learn Learn microservice concepts Explore different service architectures, such as Hydra and Seneca Understand how to use containers and the process of testing Use Docker and Swarm for continuous deployment and scaling Learn how to geographically spread your microservices Deploy a cloud-native microservice to an online provider Keep your microservice independent of online providers Who this book is for This book is for JavaScript developers seeking to utilize their skills to build microservices and move away from the monolithic architecture. Prior knowledge of Node.js is assumed.

jQuery Design Patterns

jQuery Design Patterns

Learn the best practices on writing efficient jQuery applications to maximize performance in large-scale deployments About This Book Learn about the observer pattern and the deferred observer pattern, two of the most popular design patterns that handle custom events Advance your jQuery skills by learning about patterns such as divide and conquer, facade, and builder and factory to handle complex results This step-by-step guide to applying micro-patterns and optimizing jQuery applications will help you get the best performance in a production environment Who This Book Is For This book is for existing jQuery Developers or new developers who want to get an understanding of the “correct way” to build jQuery applications, using best practices and industry standard patterns. What You Will Learn Respond to user actions Achieve greater flexibility and code decoupling Have a central point for emitting and receiving application level events Structure the application into small independent modules Abstract complex APIs Isolate the procedure of generating complex parts of the application Efficiently orchestrate asynchronous procedures using jQuery Deferred and Promises Utilize the most widely-used client-side templating libraries for more complex use cases In Detail jQuery is a feature-rich JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a variety of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript. jQuery solves the problems of DOM manipulation, event detection, AJAX calls, element selection and document queries, element attribute and data management, as well as object management utilities. This book addresses these problems and shows you how to make the best of jQuery through the various design patterns available. The book starts off with a refresher to jQuery and will then take you through the different design patterns such as facade, observer, publisher/subscriber, and so on. We will also go into client-side templating techniques and libraries, as well as some plugin development patterns. Finally, we will look into some best practices that you can use to make the best of jQuery. Style and approach The example-oriented guide covers the best and most widely used patterns to help you improve your development with jQuery.

Meteor Design Patterns

Meteor Design Patterns

Accelerate your code writing skills with over twenty programming patterns that will make your code easier to maintain and scale About This Book Optimize your web application for production use Build views and controllers with minimal effort that will evolve with your application Learn how to maintain a MeteorJS project while it is running in production Who This Book Is For This book is for developers who have already had an introductory course with Meteor. Basic knowledge of web development is recommended. What You Will Learn Use of Jade, Stylus, and CoffeeScript to speed up web development Increase productivity by leveraging the best packages in the community Optimize your site for load speed with advanced publishers and subscribers Leverage the aggregation framework to produce results with big data Master the intricacies of front-end development using Jeet, Bootstrap, CSS animations, and more Optimize your site for search engine visibility Secure your site with Meteor's best practices Track the live status of your application, ensuring all errors have been taken care of In Detail With the increasing interest in NodeJS web applications, a new framework, Meteor, has joined the ranks to simplify developer workflows. Meteor is one of the few open source frameworks that has received funding since its early development stages. It builds on ideas from existing frameworks and libraries, offering developers an easy way to develop a prototype app. At the same time, it gives them the tools and flexibility to build a fully fledged production app. Meteor is the weapon of choice for start-ups in today's world. Meteor Design Patterns cuts through the jargon that most websites play with and gets to the point with simple solutions that will boost your development skills. We start off with a refresher on the basics of JavaScript programming such as templates, CoffeeScript, the Event Loop, and the Merge Box, amongst others. You then learn how to map real-world data and optimize the data's publishers to output data with the least amount of work done by the server with some subscribe and publish patterns. Next, using front-end patterns, you will learn how to create maintainable and trackable forms, and make our site crawlable by any search engine. Following this, you will see how to optimize and secure the web application and maintain applications without breaking other features. Finally, you will learn how to deploy a secure production-ready application while learning to set up modulus, compose with Oplog tracking and SSL certificates, as well as error tracking with Kadira. Throughout the book, you will put your skills to practice and build an online shop from scratch. By the end of the book, you will have built a feature-rich online shop. Style and approach The book is a practical handbook on how to build an e-commerce web app using Meteor. Every topic ties into the webapp to easily illustrate the concepts that you are learning about.

Pro JavaScript Development

Coding, Capabilities, and Tooling

Pro JavaScript Development

Pro JavaScript Development is a practical guide for front-end web developers who are experienced at building web pages with HTML, CSS, and JavaScript, and now wish to advance their JavaScript skills to a higher level. You will learn how to build large, well-structured, high quality, mobile-optimized web sites and apps, using the latest supported browser APIs, language features, and tools. This book teaches and shows you in practical hands-on terms how you can: Master the performance, reliability, stability, and code manageability of your JavaScript Understand and write efficient object-oriented and prototypal code, including full understanding of the ‘this’ keyword Boost the performance of your JavaScript code Architect large web applications using common design patterns Write high quality JavaScript code and avoid the pitfalls most likely to cause errors Manage code dependencies with AMD and RequireJS Develop for mobile, build games, and set up a real-time video chat using modern APIs such as Geolocation, Canvas and WebRTC Document your code as the professionals do Write command-line and web server applications in JavaScript with Node.js, Use build tools, such as Grunt and Gulp, to automate repetitive tasks and improve your development workflow Using real-world examples and applications that you'll build yourself, Pro JavaScript Development has unique, practical content that will make you a better JavaScript developer. Become a master of the latest JavaScript coding techniques and tools, and harness its best capabilities today.