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


Mathematics for Computer Graphics and Game Programming

Author: D. P. Kothari, G. Awar, D. Shrimankar and A. Bhende
Publisher:  Mercury Learning
Pages: 400
ISBN: 978-1683923565
Print: 1683923561
Kindle: B07N1V7YXS
Audience: Graphics beginners
Rating: 2
Reviewer: David Conrad
Graphics is based on math so you need to learn some.



Embracing Modern C++ Safely

Author: Dr. John Lakos, Vittorio Romeo, Dr. Rostislav Khlebnikov and  Alisdair Meredith
Publisher: Addison-Wesley
Date: December 2021
Pages: 1376
ISBN: 978-0137380350
Print: 0137380356
Kindle: B09HTFQB92
Audience: C++ developers
Rating: 4
Reviewer: Harry Fairhead
Writing safe C++ - sounds essential

 [ ... ]


More Reviews

Last Updated ( Saturday, 17 September 2022 )