Take a look at our Systems Analysis & Design books. Shulph carries a great selection of Systems Analysis & Design books, and we are always adding more.
A strategy and implementation guide for building, deploying, and managing APIs Key Features Comprehensive, end-to-end guide to business-driven enterprise APIs Distills years of experience with API and microservice strategies Provides detailed guidance on implementing API-led architectures in any business Book Description APIs are the cornerstone of modern, agile enterprise systems. They enable access to enterprise services from a wide variety of devices, act as a platform for innovation, and open completely new revenue streams. Enterprise API Management shows how to define the right architecture, implement the right patterns, and define the right organization model for business-driven APIs. Drawing on his experience of developing API and microservice strategies for some of the world's largest companies, Luis Weir explains how APIs deliver value across an enterprise. The book explores the architectural decisions, implementation patterns, and management practices for successful enterprise APIs, as well as providing clear, actionable advice on choosing and executing the right API strategy in your enterprise. With a relentless focus on creating business value, Luis Weir reveals an effective method for planning, building, and running business products and services with APIs. What you will learn Create API strategies to deliver business value Monetize APIs, promoting them through public marketplaces and directories Develop API-led architectures, applying best practice architecture patterns Choose between REST, GraphQL, and gRPC-style API architectures Manage APIs and microservices through the complete life cycle Deploy APIs and business products, as well as Target Operating Models Lead product-based organizations to embrace DevOps and focus on delivering business capabilities Who this book is for Architects, developers, and technology executives who want to deliver successful API strategies that bring business value.
Apply design patterns to solve problems in software architecture and programming using C# 7.x and .NET Core 2 Key Features Enhance your programming skills by implementing efficient design patterns for C# and .NET Explore design patterns for functional and reactive programming to build robust and scalable applications Discover how to work effectively with microservice and serverless architectures Book Description Design patterns are essentially reusable solutions to common programming problems. When used correctly, they meet crucial software requirements with ease and reduce costs. This book will uncover effective ways to use design patterns and demonstrate their implementation with executable code specific to both C# and .NET Core. Hands-On Design Patterns with C# and .NET Core begins with an overview of object-oriented programming (OOP) and SOLID principles. It provides an in-depth explanation of the Gang of Four (GoF) design patterns such as creational, structural, and behavioral. The book then takes you through functional, reactive, and concurrent patterns, helping you write better code with streams, threads, and coroutines. Toward the end of the book, you'll learn about the latest trends in architecture, exploring design patterns for microservices, serverless, and cloud native applications. You'll even understand the considerations that need to be taken into account when choosing between different architectures such as microservices and MVC. By the end of the book, you will be able to write efficient and clear code and be comfortable working on scalable and maintainable projects of any size. What you will learn Make your code more flexible by applying SOLID principles Follow the Test-driven development (TDD) approach in your .NET Core projects Get to grips with efficient database migration, data persistence, and testing techniques Convert a console application to a web application using the right MVP Write asynchronous, multithreaded, and parallel code Implement MVVM and work with RxJS and AngularJS to deal with changes in databases Explore the features of microservices, serverless programming, and cloud computing Who this book is for If you have a basic understanding of C# and the .NET Core framework, this book will help you write code that is easy to reuse and maintain with the help of proven design patterns that you can implement in your code.
From learning about the most sought-after design patterns to a comprehensive coverage of architectural patterns and code testing, this book is all you need to write clean, reusable code Key Features Write clean, reusable and maintainable code, and make the most of the latest Swift version. Analyze case studies of some of the popular open source projects and give your workflow a huge boost Choose patterns such as MVP, MVC, and MVVM depending on the application being built Book Description Swift keeps gaining traction not only amongst Apple developers but also as a server-side language. This book demonstrates how to apply design patterns and best practices in real-life situations, whether that's for new or already existing projects. You'll begin with a quick refresher on Swift, the compiler, the standard library, and the foundation, followed by the Cocoa design patterns – the ones at the core of many cocoa libraries – to follow up with the creational, structural, and behavioral patterns as defined by the GoF. You'll get acquainted with application architecture, as well as the most popular architectural design patterns, such as MVC and MVVM, and learn to use them in the context of Swift. In addition, you'll walk through dependency injection and functional reactive programming. Special emphasis will be given to techniques to handle concurrency, including callbacks, futures and promises, and reactive programming. These techniques will help you adopt a test-driven approach to your workflow in order to use Swift Package Manager and integrate the framework into the original code base, along with Unit and UI testing. By the end of the book, you'll be able to build applications that are scalable, faster, and easier to maintain. What you will learn Work efficiently with Foundation and Swift Standard library Understand the most critical GoF patterns and use them efficiently Use Swift 4.2 and its unique capabilities (and limitations) to implement and improve GoF patterns Improve your application architecture and optimize for maintainability and performance Write efficient and clean concurrent programs using futures and promises, or reactive programming techniques Use Swift Package Manager to refactor your program into reusable components Leverage testing and other techniques for writing robust code Who this book is for This book is for intermediate developers who want to apply design patterns with Swift to structure and scale their applications. You are expected to have basic knowledge of iOS and Swift.
Apply microservices patterns to build resilient and scalable distributed systems Key Features Understand the challenges of building large-scale microservice landscapes Build cloud-native production-ready microservices with this comprehensive guide Discover how to get the best out of Spring Cloud, Kubernetes, and Istio when used together Book Description Microservices architecture allows developers to build and maintain applications with ease, and enterprises are rapidly adopting it to build software using Spring Boot as their default framework. With this book, you'll learn how to efficiently build and deploy microservices using Spring Boot. This microservices book will take you through tried and tested approaches to building distributed systems and implementing microservices architecture in your organization. Starting with a set of simple cooperating microservices developed using Spring Boot, you'll learn how you can add functionalities such as persistence, make your microservices reactive, and describe their APIs using Swagger/OpenAPI. As you advance, you'll understand how to add different services from Spring Cloud to your microservice system. The book also demonstrates how to deploy your microservices using Kubernetes and manage them with Istio for improved security and traffic management. Finally, you'll explore centralized log management using the EFK stack and monitor microservices using Prometheus and Grafana. By the end of this book, you'll be able to build microservices that are scalable and robust using Spring Boot and Spring Cloud. What you will learn Build reactive microservices using Spring Boot Develop resilient and scalable microservices using Spring Cloud Use OAuth 2.0/OIDC and Spring Security to protect public APIs Implement Docker to bridge the gap between development, testing, and production Deploy and manage microservices using Kubernetes Apply Istio for improved security, observability, and traffic management Who this book is for This book is for Java and Spring developers and architects who want to learn how to break up their existing monoliths into microservices and deploy them either on-premises or in the cloud using Kubernetes as a container orchestrator and Istio as a service Mesh. No familiarity with microservices architecture is required to get started with this book.
Enhance your enterprise application development skills by mastering parallel programming techniques in .NET and C# Key Features Write efficient, fine-grained, and scalable parallel code with C# and .NET Core Experience how parallel programming works by building a powerful application Learn the fundamentals of multithreading by working with IIS and Kestrel Book Description In today's world, every CPU has a multi-core processor. However, unless your application has implemented parallel programming, it will fail to utilize the hardware's full processing capacity. This book will show you how to write modern software on the optimized and high-performing .NET Core 3 framework using C# 8. Hands-On Parallel Programming with C# 8 and .NET Core 3 covers how to build multithreaded, concurrent, and optimized applications that harness the power of multi-core processors. Once you've understood the fundamentals of threading and concurrency, you'll gain insights into the data structure in .NET Core that supports parallelism. The book will then help you perform asynchronous programming in C# and diagnose and debug parallel code effectively. You'll also get to grips with the new Kestrel server and understand the difference between the IIS and Kestrel operating models. Finally, you'll learn best practices such as test-driven development, and run unit tests on your parallel code. By the end of the book, you'll have developed a deep understanding of the core concepts of concurrency and asynchrony to create responsive applications that are not CPU-intensive. What you will learn Analyze and break down a problem statement for parallelism Explore the APM and EAP patterns and how to move legacy code to Task Apply reduction techniques to get aggregated results Create PLINQ queries and study the factors that impact their performance Solve concurrency problems caused by producer-consumer race conditions Discover the synchronization primitives available in .NET Core Understand how the threading model works with IIS and Kestrel Find out how you can make the most of server resources Who this book is for If you want to learn how task parallelism is used to build robust and scalable enterprise architecture, this book is for you. Whether you are a beginner to parallelism in C# or an experienced architect, you'll find this book useful to gain insights into the different threading models supported in .NET Standard and .NET Core. Prior knowledge of C# is required to understand the concepts covered in this book.
A hands-on guide to making system programming with C++ easy Key Features Write system-level code leveraging C++17 Learn the internals of the Linux Application Binary Interface (ABI) and apply it to system programming Explore C++ concurrency to take advantage of server-level constructs Book Description C++ is a general-purpose programming language with a bias toward system programming as it provides ready access to hardware-level resources, efficient compilation, and a versatile approach to higher-level abstractions. This book will help you understand the benefits of system programming with C++17. You will gain a firm understanding of various C, C++, and POSIX standards, as well as their respective system types for both C++ and POSIX. After a brief refresher on C++, Resource Acquisition Is Initialization (RAII), and the new C++ Guideline Support Library (GSL), you will learn to program Linux and Unix systems along with process management. As you progress through the chapters, you will become acquainted with C++'s support for IO. You will then study various memory management methods, including a chapter on allocators and how they benefit system programming. You will also explore how to program file input and output and learn about POSIX sockets. This book will help you get to grips with safely setting up a UDP and TCP server/client. Finally, you will be guided through Unix time interfaces, multithreading, and error handling with C++ exceptions. By the end of this book, you will be comfortable with using C++ to program high-quality systems. What you will learn Understand the benefits of using C++ for system programming Program Linux/Unix systems using C++ Discover the advantages of Resource Acquisition Is Initialization (RAII) Program both console and file input and output Uncover the POSIX socket APIs and understand how to program them Explore advanced system programming topics, such as C++ allocators Use POSIX and C++ threads to program concurrent systems Grasp how C++ can be used to create performant system applications Who this book is for If you are a fresh developer with intermediate knowledge of C++ but little or no knowledge of Unix and Linux system programming, this book will help you learn system programming with C++ in a practical way.
Learn end-to-end automation testing techniques for web and mobile browsers using Selenium WebDriver, AppiumDriver, Java, and TestNG Key Features Explore the Selenium grid architecture and build your own grid for browser and mobile devices Use ExtentReports for processing results and SauceLabs for cloud-based test services Unlock the full potential of Selenium to test your web applications. Book Description Selenium WebDriver 3.x is an open source API for testing both browser and mobile applications. With the help of this book, you can build a solid foundation and can easily perform end-to-end testing on web and mobile browsers.You'll begin by being introduced to the Selenium Page Object Model for software development. You'll architect your own framework with a scalable driver class, Java utility classes, and support for third-party tools and plugins. You'll design and build a Selenium grid from scratch to enable the framework to scale and support different browsers, mobile devices, and platforms.You'll strategize and handle a rich web UI using the advanced WebDriver API and learn techniques to handle real-time challenges in WebDriver. You'll perform different types of testing, such as cross-browser testing, load testing, and mobile testing. Finally, you will also be introduced to data-driven testing, using TestNG to create your own automation framework.By the end of this Learning Path, you'll be able to design your own automation testing framework and perform data-driven testing with Selenium WebDriver. This Learning Path includes content from the following Packt products: Selenium WebDriver 3 Practical Guide - Second Edition by Unmesh Gundecha Selenium Framework Design in Data-Driven Testing by Carl Cocchiaro What you will learn Use different mobile and desktop browser platforms with Selenium 3 Use the Actions API for performing various keyboard and mouse actions Design the Selenium Driver Class for local, remote, and third-party grid support Build page object classes with the Selenium Page Object Model Develop data-driven test classes using the TestNG framework Encapsulate data using the JSON protocol Build a Selenium Grid for RemoteWebDriver testing Build and use utility classes in synchronization, file I/O, reporting and test listener classes Who this book is for This Learning Path is ideal for software quality assurance/testing professionals, software project managers, or software developers interested in using Selenium for testing their applications. Professionals responsible for designing and building enterprise-based testing frameworks will also find this Learning Path useful. Prior programming experience in Java are TestNG is necessary.
Unreal Engine 4 for virtual reality game design, development, User Experience design techniques and Blueprint programming to create virtual reality gameplay for HTC Vive, Oculus Rift, PSVR, and Windows Mixed Reality headsets. Key Features - Build VR games from scratch with the power of Unreal Engine 4. - Learn User Experience design practices to take your VR game to the next level. - Understand the best practices to creating art for games on HTC Vive, Oculus Rift, and PSVR. Book Description With the ability to put players directly in the game, virtual reality gives users the chance to experience digital worlds directly. Nevertheless, many designers are unsure where to start when working with this amazing technology. With this book, you will learn user experience design processes and create immersive gameplay experiences designed for entertainment and player comfort. Using the power of Unreal Engine 4's Blueprint visual scripting language, you will build player interaction and locomotion systems from scratch and use these flexible systems to create a sample game, as well as develop functional 2D and 3D user interfaces for players to interact with. And also learn the best practices for creating game art for virtual reality. Finally, you will learn how to test your application with your target audience and finalize your game for distribution. By the end of this book, you will have the knowledge to be able to make the leap from traditional game development to creating immersive virtual reality experiences using Unreal Engine 4. What you will learn - Understand how to get started with VR development in Unreal Engine 4. - Design and create interaction and locomotion systems from scratch. - Plan and program a sample game for VR. - Understand how VR affects user experience and user interfaces. - Discuss what is needed to create optimized art for VR. - Test your game with users and prepare for distribution. Who this book is for The audience for this book is intermediate or advanced users of Unreal Engine 4 who have not begun working with VR technology. These users are familiar with the game engine and have an interest in VR technology. They are just beginning to explore the VR features that the game engine has to offer.