Java Design Patterns, 2nd Edition
Get hands-on experience implementing 26 of the most common design patterns using Java and Eclipse. In addition to Gang of Four (GoF) design patterns, you will also learn about alternative design patterns, and understand the criticisms of design patterns with an overview of anti-patterns. For each pattern you will see at least one real-world scenario, a computer-world example, and a complete implementation including output.
This book has three parts. The first part covers 23 Gang of Four (GoF) design patterns. The second part includes three alternative design patterns. The third part presents criticisms of design patterns with an overview of anti-patterns. You will work through easy-to-follow examples to understand the concepts in depth and you will have a collection of programs to port over to your own projects.
A Q&A session is included in each chapter and covers the pros and cons of each pattern. The last chapter presents FAQs ab ...
UX for Developers
Become more mindful of the user when building digital products, and learn how to integrate a user-centered approach into your thinking as a web or app developer. This book shows you how the user experience is the responsibility of everyone involved in creating the product and how to redefine development principles when building user-centered digital products.
There are still many organizations that are not design driven, and the gap between stereotypical design and development teams needs to be bridged in order to build digital products that cater to the needs of real people. We are at a point where we see organizations that cannot bring the user experience into their core thinking falling behind their competitors. You'll see how to increase the level of UX maturity within any organization by tackling what is possibly the biggest stumbling block that stands between design and development: putting user needs ahead of system efficiency.
UX for Developers shows ...
Practical Internet of Things Security, 2nd Edition
With the advent of the Internet of Things (IoT),businesses have to defend against new types of threat. The business ecosystem now includes the cloud computing infrastructure, mobile and fixed endpoints that open up new attack surfaces, a desire to share information with many stakeholders, and a need to take action quickly based on large quantities of collected data. It therefore becomes critical to ensure that cybersecurity threats are contained to a minimum when implementing new IoT services and solutions. The interconnectivity of people, devices, and companies raises the stakes to a new level; as computing becomes ever more mobile, everything becomes connected to the cloud,and its infrastructure is hard put to it to securely manage the billions of devices that will connect us all to the IoT.
This book shows you how to implement cybersecurity solutions, IoT design best practices, and risk mitigation methodologies to address device and infrastructure threats to IoT solutions. ...
Voice User Interface Design
Design and implement voice user interfaces. This guide to VUI helps you make decisions as you deal with the challenges of moving from a GUI world to mixed-modal interactions with GUI and VUI. The way we interact with devices is changing rapidly and this book gives you a close view across major companies via real-world applications and case studies.
Voice User Interface Design provides an explanation of the principles of VUI design. The book covers the design phase, with clear explanations and demonstrations of each design principle through examples of multi-modal interactions (GUI plus VUI) and how they differ from pure VUI. The book also differentiates principles of VUI related to chat-based bot interaction models. By the end of the book you will have a vision of the future, imagining new user-oriented scenarios and new avenues, which until now were untouched.
Implement and adhere to each design principle; Understand how VUI differs from other ...
Hands-On Big Data Modeling
Modeling and managing data is a central focus of all big data projects. In fact, a database is considered to be effective only if you have a logical and sophisticated data model. This book will help you develop practical skills in modeling your own big data projects and improve the performance of analytical queries for your specific business requirements.
To start with, you'll get a quick introduction to big data and understand the different data modeling and data management platforms for big data. Then you'll work with structured and semi-structured data with the help of real-life examples. Once you've got to grips with the basics, you'll use the SQL Developer Data Modeler to create your own data models containing different file types such as CSV, XML, and JSON. You'll also learn to create graph data models and explore data modeling with streaming data using real-world datasets.
By the end of this book, you'll be able to design and develop efficient data models for varyin ...
Microservices for the Enterprise
Understand the key challenges and solutions around building microservices in the enterprise application environment. This book provides a comprehensive understanding of microservices architectural principles and how to use microservices in real-world scenarios.
Architectural challenges using microservices with service integration and API management are presented and you learn how to eliminate the use of centralized integration products such as the enterprise service bus (ESB) through the use of composite/integration microservices. Concepts in the book are supported with use cases, and emphasis is put on the reality that most of you are implementing in a "brownfield" environment in which you must implement microservices alongside legacy applications with minimal disruption to your business.
Microservices for the Enterprise covers state-of-the-art techniques around microservices messaging, service development and description, service discovery, governance, and data management techno ...
Principles of Package Design
Apply design principles to your classes, preparing them for reuse. You will use package design principles to create packages that are just right in terms of cohesion and coupling, and are user- and maintainer-friendly at the same time.
The first part of this book walks you through the five SOLID principles that will help you improve the design of your classes. The second part introduces you to the best practices of package design and covers both package cohesion principles and package coupling principles. Cohesion principles show you which classes should be put together in a package, when to split packages, and if a combination of classes may be considered a "package" in the first place. Package coupling principles help you choose the right dependencies and prevent wrong directions in the dependency graph of your packages.
Apply the SOLID principles of class design; Determine if classes belong in the same package; Know whether it is safe for packages t ...
Machine Learning in Java, 2nd Edition
As the amount of data in the world continues to grow at an almost incomprehensible rate, being able to understand and process data is becoming a key differentiator for competitive organizations. Machine learning applications are everywhere, from self-driving cars, spam detection, document search, and trading strategies, to speech recognition. This makes machine learning well-suited to the present-day era of big data and Data Science. The main challenge is how to transform data into actionable knowledge.
Machine Learning in Java will provide you with the techniques and tools you need. You will start by learning how to apply machine learning methods to a variety of common tasks including classification, prediction, forecasting, market basket analysis, and clustering. The code in this book works for JDK 8 and above, the code is tested on JDK 11.
Moving on, you will discover how to detect anomalies and fraud, and ways to perform activity recognition, image recognition, and text analy ...
The Game Designer's Playlist
In The Game Designers Playlist, top game design instructor Zack Hiwiller introduces more than 70 remarkable games, revealing how they work, why they're great, and how to apply their breakthrough techniques in your own games.
Ranging from Go to Texas Hold'em and Magic: The Gathering to Dishonored 2, Hiwiller teaches indispensable lessons about game decision-making, playability, narrative, mechanics, chance, winning, originality, cheats, and a whole lot more. He gleans powerful insights from virtually every type of game: console, mobile, PC, board, card, and beyond.
Every game is presented in full color, with a single purpose: to show you what makes it exceptional, so you can create legendary games of your own.
Discover how game designers use randomness and luck; Make the most of narrative and the narrator's role; Place the game challenge front and center; Optimize game mechanics, and place mechanics in a broader context; Uncover deep dynamic play in games with the simple ...
Practical Object-Oriented Design, 2nd Edition
Object-oriented programming languages exist to help you create beautiful, straightforward applications that are easy to change and simple to extend. Unfortunately, the world is awash with object-oriented (OO) applications that are difficult to understand and expensive to change. Practical Object-Oriented Design Second Edition, immerses you in an OO mindset and teaches you powerful, real-world, object-oriented design techniques with simple and practical examples.
Sandi Metz demonstrates how to build new applications that can "survive success" and repair existing applications that have become impossible to change.
Decide what belongs in a single class; Avoid entangling objects that should be kept separate; Define flexible interfaces among objects; Reduce programming overhead costs with duck typing; Successfully apply inheritance; Build objects via composition. ...
Refactoring, 2nd Edition
For more than twenty years, experienced programmers worldwide have relied on Martin Fowler's Refactoring to improve the design of existing code and to enhance software maintainability, as well as to make existing code easier to understand.
Like the original, this edition explains what refactoring is; why you should refactor; how to recognize code that needs refactoring; and how to actually do it successfully, no matter what language you use.
Understand the process and general principles of refactoring; Quickly apply useful refactorings to make a program easier to comprehend and change; Recognize “bad smells” in code that signal opportunities to refactor; Explore the ...