Software Mistakes and Tradeoffs (Manning)

Author: Tomasz Lelek and Jon Skeet
Publisher: Manning
Date: June 2022
Pages: 426
ISBN: 978-1617299209
Print: 1617299200
Audience: C# developers
Rating: 4
Reviewer: Mike James
We all make mistakes - do you want to read about them?

With Jon Skeet being one of the authors you would expect this book to be about C# and indeed it is. Some of the ideas translate well to other languages, but you do need to be able to read the examples if you want to get the point. This is not a methodology book as such. It isn't pushing a general approach to all things, but it is firmly object-oriented with a small concession to some functional programming.


The topics covered also have no particular adgenda. They ramble from idea to idea. There are 13 chapters which range from detailed code-level observations to some managment-type concerns:

  1. Introduction
  2. Code duplication is not always bad
  3. Exceptions v other patterns of handling
  4. Balancing flexibitity and complexity
  5. Premature optimization v optimizing the hot path
  6. Simplicity v cost of maintenance for you API
  7. Working effectively with date and time data
  8. Leveraging data locality and memory of you machines
  9. Third-party libraries.
  10. Consistency and atomicity in distributed systems
  11. Delivery semantics in distributed systems
  12. Managing versioning and compatibility
  13. Keeping up to data with trends v cost of mainenance.



On the whole I found the book easy to read and while there were parts that didn't really interest me because they were outside of my normal range of problems, it was all basically relevant. I found myself irritated by the way some aspects of a design were used in ways that didn't seem entirely natural to me. For example, the singleton pattern was used as an example of how code duplication is not always a bad thing, but to do this we had to move to a multiprocess environment where locking became essential. The issue presented was about how to generalize the singleton, whereas for me the issue is about asynchronous operation and locking. Yes, simple paradigms become more complicated when taken out of context.

Of all the chapters I have to say that Chapter 7 on dates and times was the most practically useful. I thought I'd solved my date and time problems by always using UTC  - it seems I haven't!


This is not an essential book. Most of the ideas you will have encountered elsewhere, assuming you read about programming, but it was quite fun. It is more a text to exercise your brain than train it into some straight-jacket methodology. If you have the time, program in C# and want to engage in a discussion of a very wide range of ideas then go for it.


To keep up with our coverage of books for programmers, follow @bookwatchiprog on Twitter or subscribe to I Programmer's Books RSS feed for each day's new addition to Book Watch and for new reviews.


SQL Server 2022 Administration Inside Out

Author: Randolph West et al
Publisher: Microsoft Press
Pages: 992
Print: 0137899882
ISBN: 978-0137899883
Kindle: B0C4VKVP27
Audience: DBAs and developers
Rating: 5.0
Reviewer: Ian Stirk

This book aims to update your DBA skills to cover SQL Server 2022, how does it fare?

Computer Graphics from Scratch (No Starch Press)

Author: Gabriel Gambetta
Publisher: No Starch Press
Pages: 248
ISBN: 978-1718500761
Print: 1718500769
Kindle: B085BVJG5B
Audience: People interested in creating 3D graphics
Rating: 5
Reviewer: Kay Ewbank

This is a well written book that explains the topic of 3D rendering, and tries its hardest to mi [ ... ]

More Reviews

Last Updated ( Saturday, 17 September 2022 )