5

Software Mistakes and Tradeoffs

 3 years ago
source link: https://www.manning.com/books/software-mistakes-and-tradeoffs
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Software Mistakes and Tradeoffs

How to make good programming decisions
1,216  views in the last week
Tomasz Lelek and Jon Skeet
  • MEAP began June 2021
  • Publication in Fall 2021 (estimated)
  • ISBN 9781617299209
  • 300 pages (estimated)
  • printed in black & white

placing your order...

Don't refresh or navigate away from the page.

print book $28.99 $49.99 pBook + eBook + liveBook
Additional shipping charges may apply

eBook $23.19 $39.99 3 formats + liveBook

Helps you think more about the trade offs of every programming decision.

Alex Saez

Optimize the decisions that define your code by exploring the common mistakes and intentional tradeoffs made by expert developers

In Software Mistakes and Tradeoffs you will learn how to:
  • Reason about your systems to make intuitive and better design decisions
  • Understand consequences and how to balance tradeoffs
  • Pick a proper library for your problem
  • Thoroughly analyze all of your service’s dependencies
  • Understand delivery semantics and how they influence distributed architecture
  • Design and execute performance tests to detect code hot paths and validate a system’s SLA
  • Optimize code hot paths to get the most improvement efficiently
  • Understand tight/loose coupling and how it influences coordination of work between teams
  • Clarify requirements until they are precise, easily implemented, and easily tested
  • Optimize your APIs for friendly user experience

In Software Mistakes and Tradeoffs you’ll learn from costly mistakes that Tomasz Lelek and Jon Skeet have encountered over their impressive careers. You’ll explore real-world scenarios where poor understanding of tradeoffs lead to major problems down the road, to help you make better design decisions. Plus, with a little practice, you’ll be able to avoid the pitfalls that trip up even the most experienced developers.

about the technology

Code performance versus simplicity. Delivery speed versus duplication. Flexibility versus maintainability—every decision you make in software engineering involves balancing tradeoffs. Often, decisions that look good at the design stage can prove problematic in practice. This book reveals the questions you need to be asking to make the right decisions for your own software tradeoffs.

about the book

Software Mistakes and Tradeoffs teaches you how to make better decisions about designing, planning, and implementing applications. You’ll analyze real-world scenarios where the wrong tradeoff decisions were made, and discover what could have been done differently. The book lays out the pros and cons of different approaches and explores evergreen patterns that will always be relevant to software design.

You’ll understand the consequences of certain decisions, like how code duplication impacts the coupling and evolution speed of your systems and how simple-sounding requirements can have hidden nuances with respect to date and time information. Discover how to efficiently narrow your optimization scope according to 80/20 Pareto principles and ensure consistency in your distributed systems. You’ll soon be able to apply the author’s hard-won experience to your own projects to pre-empt mistakes and take a more thoughtful approach to decision making.

about the reader

From mid-level developers to senior architects who make everyday decisions about software.

about the author

Tomasz Lelek has years of experience working with various production services, architectures, and programming languages. He has designed systems that handle tens of millions of unique users and hundreds of thousands of operations per second. Currently, he designs developer tools for DataStax, a company that builds products around Cassandra Database.

Jon Skeet is a staff developer relations engineer at Google, currently working on the Google Cloud Client Libraries for .NET. His contributions to open source include the NodaTime date and time library for .NET, and he's famous for his contributions to Stack Overflow. Jon is also the author of Manning’s C# in Depth, currently in its fourth edition.
you might also like

Microservices Patterns teaches you how to develop and deploy production-quality microservices-based applications. This invaluable set of design patterns builds on decades of distributed system experience, adding new patterns for writing services and composing them into systems that scale and perform reliably under real-world conditions. More than just a patterns catalog, this practical guide offers experience-driven advice to help you design, implement, test, and deploy your microservices-based application.

more
Microservices Patterns

Microservices Patterns teaches you how to develop and deploy production-quality microservices-based applications. This invaluable set of design patterns builds on decades of distributed system experience, adding new patterns for writing services and composing them into systems that scale and perform reliably under real-world conditions. More than just a patterns catalog, this practical guide offers experience-driven advice to help you design, implement, test, and deploy your microservices-based application.

Camel in Action, Second Edition is the definitive guide to the Camel framework. It starts with core concepts like sending, receiving, routing, and transforming data. It then goes in depth on many topics such as how to develop, debug, test, deal with errors, secure, scale, cluster, deploy, and monitor your Camel applications. The book also discusses how to run Camel with microservices, reactive systems, containers, and in the cloud.

more
Camel in Action, Second Edition

Camel in Action, Second Edition is the definitive guide to the Camel framework. It starts with core concepts like sending, receiving, routing, and transforming data. It then goes in depth on many topics such as how to develop, debug, test, deal with errors, secure, scale, cluster, deploy, and monitor your Camel applications. The book also discusses how to run Camel with microservices, reactive systems, containers, and in the cloud.

Flutter in Action teaches you to build professional-quality mobile applications using the Flutter SDK and the Dart programming language. You’ll begin with a quick tour of Dart essentials and then dive into engaging, well-described techniques for building beautiful user interfaces using Flutter’s huge collection of built-in widgets. The combination of diagrams, code examples, and annotations makes learning a snap. As you go, you’ll appreciate how the author makes easy reading of complex topics like routing, state management, and async programming.
more
Flutter in Action
Flutter in Action teaches you to build professional-quality mobile applications using the Flutter SDK and the Dart programming language. You’ll begin with a quick tour of Dart essentials and then dive into engaging, well-described techniques for building beautiful user interfaces using Flutter’s huge collection of built-in widgets. The combination of diagrams, code examples, and annotations makes learning a snap. As you go, you’ll appreciate how the author makes easy reading of complex topics like routing, state management, and async programming.
Rust is a new systems programming language that gives you the low-level power of C with the elegance and ease of languages like Ruby and Python. Rust is thread safe, enabling "fearless concurrency". Threads are guaranteed not to overwrite each others' data, but it doesn't impose a garbage collector on you, keeping runtime performance predictable. It incorporates features from functional programming such as higher-order functions that allow for compact, readable programs. Rust is perfect for developers who want to fearlessly explore systems programming with a more ergonomic, less intimidating alternative to C or C++.
more
Rust in Action
Rust is a new systems programming language that gives you the low-level power of C with the elegance and ease of languages like Ruby and Python. Rust is thread safe, enabling "fearless concurrency". Threads are guaranteed not to overwrite each others' data, but it doesn't impose a garbage collector on you, keeping runtime performance predictable. It incorporates features from functional programming such as higher-order functions that allow for compact, readable programs. Rust is perfect for developers who want to fearlessly explore systems programming with a more ergonomic, less intimidating alternative to C or C++.

FREE domestic shipping on orders of three or more print books

The code examples are good enough that even if you don't have experience with Java—you can still understand what the authors are trying to convey.

John Henry Galino

Tomasz Lelek and Jon Skeet are here to guide developers through the minefield of software engineering.

Gilles Iachelini

This book should be read by any software developer aiming for a successful software project.

Nelson González

If you need a book to learn how to think like a better programmer...then this is the book.

Alex Saez

This book is vital for every developer, from beginner to advanced, to improve your code quality and resolve common problems.

Andres Sacco


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK