Designing Elixir Systems with OTP
You know how to code in Elixir; now learn to think in it. Learn to design libraries with intelligent layers that shape the right data structures, flow from one function into the next, and present the right APIs. Embrace the same OTP that's kept our telephone systems reliable and fast for over 30 years. Move beyond understanding the OTP functions to knowing what's happening under the hood, and why that matters. Using that knowledge, instinctively know how to design systems that deliver fast and resilient services to your users, all with an Elixir focus.
Elixir is gaining mindshare as the programming language you can use to keep your software running forever, even in the face of unexpected errors and an ever growing need to use more processors. This power comes from an effective programming language, an excellent foundation for concurrency and its inheritance of a battle-tested framework called the OTP.
If you're using frameworks like Phoenix or Nerves, you're already experi ...
Small, Sharp Software Tools
The command-line interface is making a comeback. That's because developers know that all the best features of your operating system are hidden behind a user interface designed to help average people use the computer. But you're not the average user, and the CLI is the most efficient way to get work done fast. Turn tedious chores into quick tasks: read and write files, manage complex directory hierarchies, perform network diagnostics, download files, work with APIs, and combine individual programs to create your own workflows. Put down that mouse, open the CLI, and take control of your software development environment.
No matter what language or platform you're using, you can use the CLI to create projects, run servers, and manage files. You can even create new tools that fit right in with grep, sed, awk, and xargs. You'll work with the Bash shell and the most common command-line utilities available on macOS, Windows 10, and many flavors of Linux.
Create files without openi ...
The Successful Software Manager
The Successful Software Manager is a comprehensive and practical guide to managing software developers, software customers, and the process of deciding what software needs to be built. It explains in detail how to develop a management mindset, lead a high-performing developer team, and meet all the expectations of a good manager.
The book will help you whether you've chosen to pursue a career in management or have been asked to "act up" as a manager. Whether you're a Development Manager, Product Manager, Team Leader, Solution Architect, or IT Director, this is your indispensable guide to all aspects of running your team and working within an organization and dealing with colleagues, customers, potential customers, and technologists, to ensure you build the product your organization needs.
This book is the must-have authoritative guide to managing projects, managing people, and preparing yourself to be an effective manager. The intuitive real-life examp ...
Design Patterns in .NET
Implement design patterns in .NET using the latest versions of the C# and F# languages. This book provides a comprehensive overview of the field of design patterns as they are used in today's developer toolbox.
Using the C# programming language, Design Patterns in .NET explores the classic design pattern implementation and discusses the applicability and relevance of specific language features for the purpose of implementing patterns. You will learn by example, reviewing scenarios where patterns are applicable. MVP and patterns expert Dmitri Nesteruk demonstrates possible implementations of patterns, discusses alternatives and pattern inter-relationships, and illustrates the way that a dedicated refactoring tool (ReSharper) can be used to implement design patterns with ease.
Know the latest pattern implementations available in C# and F#; Refer to researched and proven variations of patterns; Study complete, self-contained examples including many that cover advanced scenarios; Use ...
Cloud Native Patterns
Cloud Native Patterns is your guide to developing strong applications that thrive in the dynamic, distributed, virtual world of the cloud. This book presents a mental model for cloud-native applications, along with the patterns, practices, and tooling that set them apart.
Cloud platforms promise the holy grail: near-zero downtime, infinite scalability, short feedback cycles, fault-tolerance, and cost control. But how do you get there? By applying cloudnative designs, developers can build resilient, easily adaptable, web-scale distributed applications that handle massive user traffic and data loads. Learn these fundamental patterns and practices, and you'll be ready to thrive in the dynamic, distributed, virtual world of the cloud.
With 25 years of experience under her belt, Cornelia Davis teaches you the practices and patterns that set cloud-native applications apart. With realistic examples and expert advice for working with apps, data, services, routing, and more, she shows you ...
An Executive's Guide to Software Quality in an Agile Organization
Utilize a set of practical guidelines to help your Agile organization elevate software design quality as an important business driver to achieve customer satisfaction and, ultimately, higher revenue for your company. This is the first book to focus on a holistic quality view—what it is and how it links to overall business enhancements.
The real-world examples used in this book allow you to learn and apply similar strategies and guidelines to help create a quality blueprint for your organization. Five pillars of quality are defined that can be used for any industry and, once internalized, can serve as a set of tools to continuously improve and measure the key factors impacting quality.
Be aware of the key elements in any transformation that involves culture; Link quality and business outcomes; Understand quality and its holistic definition and why continuous improvement is still a relevant approach in enhancing quality; Follow guidelines with specific examples that can be ...
Node.js Complete Reference Guide
You will begin by learning how to use the HTTP Server and Client objects, store data with both SQL and MongoDB databases, and unit test applications with Mocha 5.x, and functionally test them with Puppeteer 1.1.x. Then, you will learn to create scalable and rich RESTful applications on the Node.js platform and write a simple HTTP request handler with self-descriptive URLs. You will learn to set accurate HTTP status codes, study how to keep your applications backward-compatible and explore some authentication techniques to secure your application. Then, you will study how Node.js has emerged as a strong candidate for developing microservices. ...
Hands-On Software Architecture with Golang
Building software requires careful planning and architectural considerations; Golang was developed with a fresh perspective on building next-generation applications on the cloud with distributed and concurrent computing concerns.
Hands-On Software Architecture with Golang starts with a brief introduction to architectural elements, Go, and a case study to demonstrate architectural principles. You'll then move on to look at code-level aspects such as modularity, class design, and constructs specific to Golang and implementation of design patterns. As you make your way through the chapters, you'll explore the core objectives of architecture such as effectively managing complexity, scalability, and reliability of software systems. You'll also work through creating distributed systems and their communication before moving on to modeling and scaling of data. In the concluding chapters, you'll learn to deploy architectures and plan the migration of applications from ot ...
Learn Clip Studio Paint, 2nd Edition
Clip Studio Paint, the successor to Manga Studio, is used by over four million illustrators and comic creators around the world. This book will guide you through every step of learning this software from system requirements and installation, all the way through to exporting your work for print or the web. Learn how to create new documents, customize tools to fit your working style, use ruler tools to create anything from straight lines to intricate backgrounds, add 3D elements, create comic panels using the specialized panel tools, utilize screentones and materials, add text and word balloons to your comics, create sound effects, easily flat and color your comics using reference layers, and bring your drawings to life using the animation features.
By the end of this book, you will be able to navigate the Clip Studio Interface and program preferences, customize the various tools, and be able to create your own black-and-white and color illustrations and comics from start to fi ...
Robotic Process Automation with Blue Prism Quick Start Guide
Robotic process automation is a form of business process automation where user-configured robots can emulate the actions of users. Blue Prism is a pioneer of robotic process automation software and this book gives you a solid foundation to programming robots with Blue Prism. If you've been tasked with automating work processes, but don't know where to start, this is the book for you!
You begin with the business case for robotic process automation, and then move to implementation techniques with the leading software for enterprise automation, Blue Prism. You will become familiar with the Blue Prism Studio by creating your first process. You will build upon this by adding pages, data items, blocks, collections, and loops. You will build more complex processes by learning about actions, decisions, choices, and calculations. You will move on to teach your robot to interact with applications such as Internet Explorer. This can be used for spying elements that identify what ...
Vim is a ubiquitous text editor that can be used for all programming languages. It has an extensive plugin system and integrates with many tools. Vim offers an extensible and customizable development environment for programmers, making it one of the most popular text editors in the world.
Mastering Vim begins with explaining how the Vim editor will help you build applications efficiently. With the fundamentals of Vim, you will be taken through the Vim philosophy. As you make your way through the chapters, you will learn about advanced movement, text operations, and how Vim can be used as a Python (or any other language for that matter) IDE. The book will then cover essential tasks, such as refactoring, debugging, building, testing, and working with a version control system, as well as plugin configuration and management. In the concluding chapters, you will be introduced to additional mindset guidelines, learn to personalize your Vim experience, and go above and beyond with Vimscrip ...