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.

Banner

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.

 

softmist

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!

Verdict:

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.

Banner


ASP.NET Core in Action, 2nd Ed (Manning)

Author: Andrew Lock
Publisher: Manning
Date:April 2021
Pages: 832
ISBN: 978-1617298301
Print: 1617298301
Audience: Developers interested in ASP.NET
Rating: 4
Reviewer: Ian Elliot
One big book to cover the one big alternative web tech.



Adventures of a Computational Explorer

Author: Stephen Wolfram
Publisher: Wolfram Media
Pages: 432
ISBN: 978-1579550264
Print:1579550266
Kindle: B07Z6BYVSC
Audience: Fans of  Stephen Wolfram
Rating:  3
Reviewer: Alex Armstrong
A personal account of being a computer geek?


More Reviews

Last Updated ( Saturday, 17 September 2022 )