small medium large xlarge

Sort by: Title | Release Date

Cover Image For iOS Unit Testing by Example…

iOS Unit Testing by Example: XCTest Tips and Techniques Using Swift

Fearlessly change the design of your iOS code with solid unit tests. Use Xcode’s built-in test framework XCTest and Swift to get rapid feedback on all your code — including legacy code. Learn the tricks and techniques of testing all iOS code, especially view controllers (UIViewControllers), which are critical to iOS apps. Learn to isolate and replace dependencies in legacy code written without tests. Practice safe refactoring that makes these tests possible, and watch all your changes get verified quickly and automatically. Make even the boldest code changes with complete confidence.

Cover Image For A Common-Sense Guide to Data Structures and Algorithms, Second Edition…

A Common-Sense Guide to Data Structures and Algorithms, Second Edition: Level Up Your Core Programming Skills

If you thought that data structures and algorithms were all just theory, you’re missing out on what they can do for your code. Learn to use Big O Notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code’s efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. This new edition features practice exercises in every chapter, and new chapters on topics such as dynamic programming and heaps and tries. Get the hands-on info you need to master data structures and algorithms for your day-to-day work.

Cover Image For Design and Build Great Web APIs…

Design and Build Great Web APIs: Robust, Reliable, and Resilient

APIs are transforming the business world at an increasing pace. Gain the essential skills needed to quickly design, build, and deploy quality web APIs that are robust, reliable, and resilient. Go from initial design through prototyping and implementation to deployment of mission-critical APIs for your organization. Test, secure, and deploy your API with confidence and avoid the “release into production” panic. Tackle just about any API challenge with more than a dozen open-source utilities and common programming patterns you can apply right away.

Cover Image For Quantum Computing…

Quantum Computing: Program Next-Gen Computers for Hard, Real-World Applications

You’ve heard that quantum computing is going to change the world. Now you can check it out for yourself. Learn how quantum computing works, and write programs that run on the IBM Q quantum computer, one of the world’s first functioning quantum computers. Develop your intuition to apply quantum concepts for challenging computational tasks. Write programs to trigger quantum effects and speed up finding the right solution for your problem. Get your hands on the future of computing today.

Cover Image For Practical Microservices…

Practical Microservices: Build Event-Driven Architectures with Event Sourcing and CQRS

MVC and CRUD make software easier to write, but harder to change. Microservice-based architectures can help even the smallest of projects remain agile in the long term, but most tutorials meander in theory or completely miss the point of what it means to be microservice based. Roll up your sleeves with real projects and learn the most important concepts of evented architectures. You’ll have your own deployable, testable project and a direction for where to go next.

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 Practical Security…

Practical Security: Simple Practices for Defending Your Systems

Most security professionals don’t have the words “security” or “hacker” in their job title. Instead, as a developer or admin you often have to fit in security alongside your official responsibilities — building and maintaining computer systems. Implement the basics of good security now, and you’ll have a solid foundation if you bring in a dedicated security staff later. Identify the weaknesses in your system, and defend against the attacks most likely to compromise your organization, without needing to become a trained security professional.

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 Domain Modeling Made Functional…

Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you’ll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely—often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality.

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 Functional Programming: A PragPub Anthology…

Functional Programming: A PragPub Anthology: Exploring Clojure, Elixir, Haskell, Scala, and Swift

Explore functional programming and discover new ways of thinking about code. You know you need to master functional programming, but learning one functional language is only the start. In this book, through articles drawn from PragPub magazine and articles written specifically for this book, you’ll explore functional thinking and functional style and idioms across languages. Led by expert guides, you’ll discover the distinct strengths and approaches of Clojure, Elixir, Haskell, Scala, and Swift and learn which best suits your needs.

Cover Image For The Cucumber Book, Second Edition…

The Cucumber Book, Second Edition: Behaviour-Driven Development for Testers and Developers

Your customers want rock-solid, bug-free software that does exactly what they expect it to do. Yet they can’t always articulate their ideas clearly enough for you to turn them into code. You need Cucumber: a testing, communication, and requirements tool—all rolled into one. All the code in this book is updated for Cucumber 2.4, Rails 5, and RSpec 3.5.

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 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 Secure Your Node.js Web Application…

Secure Your Node.js Web Application: Keep Attackers Out and Users Happy

Cyber-criminals have your web applications in their crosshairs. They search for and exploit common security mistakes in your web application to steal user data. Learn how you can secure your Node.js applications, database and web server to avoid these security holes. Discover the primary attack vectors against web applications, and implement security best practices and effective countermeasures. Coding securely will make you a stronger web developer and analyst, and you’ll protect your users.

Cover Image For Cucumber School (Java)…

Cucumber School (Java): Learn BDD with the Cucumber core team

Cucumber is a tool for running automated tests written in plain language. Because they’re written in plain language, anyone can read them. Because anyone can read them, they have magic powers that improve communication, collaboration, and trust on your team. The magic is called Behaviour-Driven Development (BDD).

Cucumber School is created and taught by the Cucumber core team. The 10-episode series is based on a proven syllabus taught to hundreds of people in their popular in-house training classes. Through three hours of practical video content, coding exercises, and thought-provoking questions, you’ll learn the individual skills needed to excel with Cucumber and BDD.

Watch a sample or download from here:

Download mp4 Format zip

Download mp4v Format zip

Download OGV Format zip

Cover Image For Cucumber School (Ruby)…

Cucumber School (Ruby): Learn BDD with the Cucumber core team

Cucumber is a tool for running automated tests written in plain language. Because they’re written in plain language, anyone can read them. Because anyone can read them, they have magic powers that improve communication, collaboration, and trust on your team. The magic is called Behaviour-Driven Development (BDD).

Cucumber School is created and taught by the Cucumber core team. The 10-episode series is based on a proven syllabus taught to hundreds of people in their popular in-house training classes. Through three hours of practical video content, coding exercises, and thought-provoking questions, you’ll learn the individual skills needed to excel with Cucumber and BDD.

Watch a sample or download from here:

Download mp4 Format zip

Download mp4v Format zip

Download OGV Format zip

Cover Image For Beyond Legacy Code…

Beyond Legacy Code: Nine Practices to Extend the Life (and Value) of Your Software

We’re losing tens of billions of dollars a year on broken software, and great new ideas such as agile development and Scrum don’t always pay off. But there’s hope. The nine software development practices in Beyond Legacy Code are designed to solve the problems facing our industry. Discover why these practices work, not just how they work, and dramatically increase the quality and maintainability of any software project.

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 The Nature of Software Development…

The Nature of Software Development: Keep It Simple, Make It Valuable, Build It Piece by Piece

You need to get value from your software project. You need it “free, now, and perfect.” We can’t get you there, but we can help you get to “cheaper, sooner, and better.” This book leads you from the desire for value down to the specific activities that help good Agile projects deliver better software sooner, and at a lower cost. Using simple sketches and a few words, the author invites you to follow his path of learning and understanding from a half century of software development and from his engagement with Agile methods from their very beginning.

Cover Image For Seven Concurrency Models in Seven Weeks…

Seven Concurrency Models in Seven Weeks: When Threads Unravel

Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer’s GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write crystal clear, high-quality code.

Cover Image For DevOps in Practice…

DevOps in Practice

Delivering production software can often be a painful task. Long test periods and the integration between operations and development can ruin or delay a promising delivery. That’s what DevOps can fix. DevOps is a cultural change that aims to smoothly integrate development and operations procedures, breaking the barriers between them and focusing on automation, collaboration, and sharing of knowledge and tools. This book shows you how to implement DevOps and Continuous Delivery practices to raise your system’s deployment frequency, increasing your production application’s stability and robustness.

This book was translated and published by Code Crushing books. We are proud to be distributing it.

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 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 Cucumber Recipes…

Cucumber Recipes: Automate Anything with BDD Tools and Techniques

You can test just about anything with Cucumber. We certainly have, and in Cucumber Recipes we’ll show you how to apply our hard-won field experience to your own projects. Once you’ve mastered the basics, this book will show you how to get the most out of Cucumber—from specific situations to advanced test-writing advice. With over forty practical recipes, you’ll test desktop, web, mobile, and server applications across a variety of platforms. This book gives you tools that you can use today to automate any system that you encounter, and do it well.

Cover Image For The Definitive ANTLR 4 Reference…

The Definitive ANTLR 4 Reference

Programmers run into parsing problems all the time. Whether it’s a data format like JSON, a network protocol like SMTP, a server configuration file for Apache, a PostScript/PDF file, or a simple spreadsheet macro language—ANTLR v4 and this book will demystify the process. ANTLR v4 has been rewritten from scratch to make it easier than ever to build parsers and the language applications built on top. This completely rewritten new edition of the bestselling Definitive ANTLR Reference shows you how to take advantage of these new features.

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 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.

Cover Image For The Definitive ANTLR Reference…

The Definitive ANTLR Reference: Building Domain-Specific Languages

ANTLR v3 is the most powerful, easy-to-use parser generator built to date, and represents the culmination of more than 15 years of research by Terence Parr. This book is the essential reference guide to using this completely rebuilt version of ANTLR, with its amazing new LL parsing technology, tree construction facilities, StringTemplate code generation template engine, and sophisticated ANTLRWorks GUI development environment. Learn to use ANTLR directly from the author!

This book covers ANTLR 3. Please see the new edition, The Definitive ANTLR 4 Reference, which covers ANTLR 4.

Cover Image For Ship It!…

Ship It!: A Practical Guide to Successful Software Projects

Many software projects run into trouble, and many never ship at all. Others run like well-oiled machines. This book shows you the basics of how to get your project well on the road to success.

Ship It! bucks current fashion trends and marketing hype; instead, you’ll find page after page of solid advice, all tried and tested in the real world: a collection of tips that show you what tools a successful team has to use, and how to use them well. You’ll get quick, easy-to-follow advice on modern techniques and when they should be applied.