small medium large xlarge

Sort by: Title | Release Date

Cover Image For The Pragmatic Programmer, 20th Anniversary Edition…

The Pragmatic Programmer, 20th Anniversary Edition: your journey to mastery

For twenty years, the lessons from The Pragmatic Programmer have helped a generation of programmers examine the very essence of software development, independent of any particular language, framework, or methodology. This classic title is regularly featured on “Top Ten” lists, and many corporations issue it to their new hires.

This new 20th Anniversary Edition offers a fresh look at the modern development landscape, cutting through the “business as usual” and tired advice from the net to help guide you through the next twenty years and beyond. Featuring new tips, new topics, and revisions throughout, you don’t want to miss this one.

Published by Addison Wesley by special arrangement with the Pragmatic Bookshelf. Ebook available here—all available ebook formats for one price, with no restrictive DRM.

Cover Image For Test-Driven React…

Test-Driven React: Find Problems Early, Fix Them Quickly, Code with Confidence

You work in a loop: write code, get feedback, iterate. The faster you get feedback, the faster you can learn and become a more effective developer. Test-Driven React helps you refine your React workflow to give you the feedback you need as quickly as possible. Write strong tests and run them continuously as you work, split complex code up into manageable pieces, and stay focused on what’s important by automating away mundane, trivial tasks. Adopt these techniques and you’ll be able to avoid productivity traps and start building React components at a stunning pace!

Cover Image For The Ray Tracer Challenge…

The Ray Tracer Challenge: A Test-Driven Guide to Your First 3D Renderer

Brace yourself for a fun challenge: build a photorealistic 3D renderer from scratch! It’s easier than you think. In just a couple of weeks, build a ray tracer that renders beautiful scenes with shadows, reflections, brilliant refraction effects, and subjects composed of various graphics primitives: spheres, cubes, cylinders, triangles, and more. With each chapter, implement another piece of the puzzle and move the renderer that much further forward. Do all of this in whichever language and environment you prefer, and do it entirely test-first, so you know it’s correct. Recharge yourself with this project’s immense potential for personal exploration, experimentation, and discovery.

Cover Image For Property-Based Testing with PropEr, Erlang, and Elixir…

Property-Based Testing with PropEr, Erlang, and Elixir: Find Bugs Before Your Users Do

Property-based testing helps you create better, more solid tests with little code. By using the PropEr framework in both Erlang and Elixir, this book teaches you how to automatically generate test cases, test stateful programs, and change how you design your software for more principled and reliable approaches. You will be able to better explore the problem space, validate the assumptions you make when coming up with program behavior, and expose unexpected weaknesses in your design. PropEr will even show you how to reproduce the bugs it found. With this book, you will be writing efficient property-based tests in no time.

Cover Image For Software Design X-Rays…

Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis

Are you working on a codebase where cost overruns, death marches, and heroic fights with legacy code monsters are the norm? Battle these adversaries with novel ways to identify and prioritize technical debt, based on behavioral data from how developers work with code. And that’s just for starters. Because good code involves social design, as well as technical design, you can find surprising dependencies between people and code to resolve coordination bottlenecks among teams. Best of all, the techniques build on behavioral data that you already have: your version-control system. Join the fight for better code!

Cover Image For Rails 5 Test Prescriptions…

Rails 5 Test Prescriptions: Build a Healthy Codebase

Does your Rails code suffer from bloat, brittleness, or inaccuracy? Cure these problems with the regular application of test-driven development. You’ll use Rails 5.2, Minitest 5, and RSpec 3.7, as well as popular testing libraries such as factory_bot and Cucumber. Updates include Rails 5.2 system tests and Webpack integration. Do what the doctor ordered to make your applications feel all better. Side effects may include better code, fewer bugs, and happier developers.

Cover Image For Release It! Second Edition…

Release It! Second Edition: Design and Deploy Production-Ready Software

A single dramatic software failure can cost a company millions of dollars—but can be avoided with simple changes to design and architecture. This new edition of the best-selling industry standard shows you how to create systems that run longer, with fewer failures, and recover better when bad things happen. New coverage includes DevOps, microservices, and cloud-native architecture. Stability antipatterns have grown to include systemic problems in large-scale systems. This is a must-have pragmatic guide to engineering for production systems.

Cover Image For Design It!…

Design It!: From Programmer to Software Architect

Don’t engineer by coincidence—design it like you mean it! Grounded by fundamentals and filled with practical design methods, this is the perfect introduction to software architecture for programmers who are ready to grow their design skills. Ask the right stakeholders the right questions, explore design options, share your design decisions, and facilitate collaborative workshops that are fast, effective, and fun. Become a better programmer, leader, and designer. Use your new skills to lead your team in implementing software with the right capabilities—and develop awesome software!

Cover Image For Python Testing with pytest…

Python Testing with pytest: Simple, Rapid, Effective, and Scalable

Do less work when testing your Python code, but be just as expressive, just as elegant, and just as readable. The pytest testing framework helps you write tests quickly and keep them readable and maintainable—with no boilerplate code. Using a robust yet simple fixture model, it’s just as easy to write small tests with pytest as it is to scale up to complex functional testing for applications, packages, and libraries. This book shows you how.

Cover Image For Effective Testing with RSpec 3…

Effective Testing with RSpec 3: Build Ruby Apps with Confidence

“Our tests are broken again!” “Why does the suite take so long to run?” “What value are we getting from these tests anyway?” Solve your testing problems by building and maintaining quality software with RSpec—the popular BDD-flavored Ruby testing framework. This definitive guide from RSpec’s lead developer shows you how to use RSpec to drive more maintainable designs, specify and document expected behavior, and prevent regressions during refactoring. Build a project using RSpec to design, describe, and test the behavior of your code. Whether you’re new to automated tests or have been using them for years, this book will help you write more effective tests.

Cover Image For Scalable Cloud Ops with Fugue…

Scalable Cloud Ops with Fugue: Declare, Deploy, and Automate the Cloud

Harness the promise of the cloud with Fugue, an operating system built for the cloud. Program cloud infrastructure in a fraction of the time it takes with current tools, debug infrastructure at design time, and centralize your change control process. Written by the Fugue development team, this is the definitive resource to scalable cloud operations with Fugue.

Cover Image For Test-Driving JavaScript Applications…

Test-Driving JavaScript Applications: Rapid, Confident, Maintainable Code

Debunk the myth that JavaScript is not easily testable. Whether you use Node.js, Express, MongoDB, jQuery, AngularJS, or directly manipulate the DOM, you can test-drive JavaScript. Learn the craft of writing meaningful, deterministic automated tests with Karma, Mocha, and Chai. Test asynchronous JavaScript, decouple and properly mock out dependencies, measure code coverage, and create lightweight modular designs of both server-side and client-side code. Your investment in writing tests will pay high dividends as you create code that’s predictable and cost-effective to change.

Cover Image For The Way of the Web Tester…

The Way of the Web Tester: A Beginner's Guide to Automating Tests

This book is for everyone who needs to test the web. As a tester, you’ll automate your tests. As a developer, you’ll build more robust solutions. And as a team, you’ll gain a vocabulary and a means to coordinate how to write and organize automated tests for the web. Follow the testing pyramid and level up your skills in user interface testing, integration testing, and unit testing. Your new skills will free you up to do other, more important things while letting the computer do the one thing it’s really good at: quickly running thousands of repetitive tasks.

Cover Image For Pragmatic Guide to Sass 3…

Pragmatic Guide to Sass 3: Tame the Modern Style Sheet

Design websites faster than ever using Sass—the most mature and popular CSS meta-language. On any platform, integrate Sass into your project, create a reusable style guide, and use maps to drastically reduce duplication in your stylesheets. You’ll see how to code the right way in Sass with short, clear examples on two-page spreads that show the explanation on one side and code examples on the other. This ultimate guide to using Sass, written by its creator, is updated and expanded with all the new features found in Sass 3.4, making you an expert in no time.

Cover Image For Serverless Single Page Apps…

Serverless Single Page Apps: Fast, Scalable, and Available

Don’t waste your time building an application server. See how to build low-cost, low-maintenance, highly available, serverless single page web applications that scale into the millions of users at the click of a button. Quickly build reliable, well-tested single page apps that stay up and running 24/7 using Amazon Web Services. Avoid messing around with middle-tier infrastructure and get right to the web app your customers want.

Cover Image For Designed for Use, Second Edition…

Designed for Use, Second Edition: Create Usable Interfaces for Applications and the Web

This book is for designers, developers, and product managers who are charged with what sometimes seems like an impossible task: making sure products work the way your users expect them to. You’ll find out how to design applications and websites that people will not only use, but will absolutely love. The second edition brings the book up to date and expands it with three completely new chapters.

Cover Image For Web Development Recipes 2nd Edition…

Web Development Recipes 2nd Edition

Modern web development is so much more than just HTML and CSS with a little JavaScript mixed in. People want faster, more usable interfaces that work on multiple devices, and you need the latest tools and techniques to make that happen. This book gives you over 40 concise solutions to today’s web development problems, and introduces new solutions that will expand your skill set – proven, practical advice from authors who use these tools and techniques every day. In this completely updated edition, you’ll find innovative new techniques and workflows, as well as reworked solutions that take advantage of new developments.

Cover Image For Your Code as a Crime Scene…

Your Code as a Crime Scene: Use Forensic Techniques to Arrest Defects, Bottlenecks, and Bad Design in Your Programs

Jack the Ripper and legacy codebases have more in common than you’d think. Inspired by forensic psychology methods, this book teaches you strategies to predict the future of your codebase, assess refactoring direction, and understand how your team influences the design. With its unique blend of forensic psychology and code analysis, this book arms you with the strategies you need, no matter what programming language you use.

Cover Image For Pragmatic Unit Testing in Java 8 with JUnit…

Pragmatic Unit Testing in Java 8 with JUnit

The Pragmatic Programmers classic is back! Freshly updated for modern software development, Pragmatic Unit Testing in Java 8 With JUnit teaches you how to write and run easily maintained unit tests in JUnit with confidence. You’ll learn mnemonics to help you know what tests to write, how to remember all the boundary conditions, and what the qualities of a good test are. You’ll see how unit tests can pay off by allowing you to keep your system code clean, and you’ll learn how to handle the stuff that seems too tough to test.

Cover Image For Modern C++ Programming with Test-Driven Development…

Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better

If you program in C++ you’ve been neglected. Test-driven development (TDD) is a modern software development practice that can dramatically reduce the number of defects in systems, produce more maintainable code, and give you the confidence to change your software to meet changing needs. But C++ programmers have been ignored by those promoting TDD—until now. In this book, Jeff Langr gives you hands-on lessons in the challenges and rewards of doing TDD in C++.

Cover Image For 101 Design Ingredients to Solve Big Tech Problems…

101 Design Ingredients to Solve Big Tech Problems

Tough technology and business challenges face you at every stage of a project. The one-page ingredients in 101 Design Ingredients show you how to solve problems using practical examples you can apply right away. Case studies explain how leading companies combined these ingredients into their own unique recipes to catapult their businesses, and how you can, too. You’ll learn how to mix and match the high-level patterns in this quick, entertaining survey to build your own solutions tailored to your projects’ requirements.

Cover Image For Explore It!…

Explore It!: Reduce Risk and Increase Confidence with Exploratory Testing

Uncover surprises, risks, and potentially serious bugs with exploratory testing. Rather than designing all tests in advance, explorers design and execute small, rapid experiments, using what they learned from the last little experiment to inform the next. Learn essential skills of a master explorer, including how to analyze software to discover key points of vulnerability, how to design experiments on the fly, how to hone your observation skills, and how to focus your efforts.

Cover Image For Test-Driven Development for Embedded C…

Test-Driven Development for Embedded C

Still chasing bugs and watching your code deteriorate? Think TDD is only for desktop or web apps? It’s not: TDD is for you, the embedded C programmer. TDD helps you prevent defects and build software with a long useful life. This is the first book to teach the hows and whys of TDD for C programmers.

Cover Image For Test Driven Development…

Test Driven Development

Test-driven development (TDD) is a programming technique that reverses the usual sequence of coding and testing. By writing tests just in advance of the code needed to satisfy them, programmers:

  • Work with confidence
  • Work on a series of achievable steps instead of tackling a big problem all at once
  • Ensure that software design meets the need of the actual code
  • Leave behind a suite of tests to help preserve the integrity of the code

Note: Although the ideas aren’t language specific the author does use Java in the examples.

Cover Image For SQL Antipatterns…

SQL Antipatterns: Avoiding the Pitfalls of Database Programming

Bill Karwin has helped thousands of people write better SQL and build stronger relational databases. Now he’s sharing his collection of antipatterns—the most common errors he’s identified in those thousands of requests for help.

Most developers aren’t SQL experts, and most of the SQL that gets used is inefficient, hard to maintain, and sometimes just plain wrong. This book shows you all the common mistakes, and then leads you through the best fixes. What’s more, it shows you what’s behind these fixes, so you’ll learn a lot about relational databases along the way.

Cover Image For Language Implementation Patterns…

Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages

Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science—ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns. Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages.

Cover Image For Debug It!…

Debug It!: Find, Repair, and Prevent Bugs in Your Code

Professional programmers develop a knack of unerringly zeroing in on the root cause of a bug. They can do that because they’ve written a lot of buggy code and then gained experience fixing it. This book captures all this experience—use it, and you’ll find you write fewer bugs, and the ones you do write will become easier to hunt down.

Cover Image For Pragmatic Unit Testing in C# with NUnit…

Pragmatic Unit Testing in C# with NUnit (2nd edition)

Pragmatic programmers use feedback to drive their development and personal processes. The most valuable feedback you can get while coding comes from unit testing. Now in it’s second edition, Pragmatic Unit Testing in C# with NUnit, 2nd Ed. will show you how to do software unit testing, of course, but more importantly will show you what to test.