Skip to main content

2 posts tagged with "review"

View All Tags

2025 Spring SWE Reading Summary

· 6 min read

SWE Reading

I started catching up on some reading in the first quarter of 2025, likely fueled by some New Year’s resolution motivation. Reading books—mostly on software engineering and mostly from O’Reilly—has been more enjoyable than I expected. While it does sometimes take extra effort to find quiet moments to focus and work through a few chapters, I usually feel that it’s time well spent.

Of course, not all books (or chapters) hit the mark—some are too shallow, some hard to follow, and some more intense than expected, requiring re-reading or hands-on coding to fully grasp the concepts. I finished about three books this spring, with a fourth one paused due to some work and life distractions. I’m jotting down the reviews I had after reading them here—not only to leave a short record for my future self, but also to motivate myself to finish a few more books I have in mind for the upcoming quarter.

One tangential thought about reading: audiobooks help lower the barrier to getting started—they remove some of the stress or friction of grabbing a physical book (or ebook reader) and sitting down. That said, my mind tends to drift when I consume books (especially software engineering ones) in audio form. I do enjoy audiobooks, but I’ve learned I need to be cautious with them. Case in point: I’ve listened to Clean Code by Robert C. Martin a few times while commuting, running, or biking. Unsurprisingly, the book itself warns that you need to concentrate and work through the examples to really benefit from it—and going against the advice- it’s one of the books I remember the least.

Okay, let’s get to the books I read.

Refactoring JavaScript - Book Review

· 2 min read

Refactoring JavaScript is a book by Evan Burchard, about turning bad code into good code. Since I am going to delve a little deeper into JavaScript in the upcoming months, I thought I could learn from books that actively use JavaScript examples so that I get more familiar with the language. I am about halfway through the book and would like to give some summary and thoughts before I forget them.

The first few chapters lay out the foundation that refactoring is about improving code quality while preserving existing behavior. The author empathized on the importance of testing and having tools to help verify that the code works as intended. He went on to explain some intricacies of JavaScript and the fundamentals of testing. Though the content could be common knowledge to people who aren't beginner coders, I thought that the intense focus was on point. Quite significant efforts were given to drill the following concept into a reader's mind:

Avoid refactoring without tests!

Here is a flow chart that the author used to illustrate decisions about test, refactor or implement. You can tell from this diagram that refactoring is a small part of the decision process and it relies heavily on having testing in place. coding.png

Another major discussion in the first part of the book is on understanding functions as six basic components and the author provided some general advice for each of them:

  • Bulk
    • keep lines of code and complexity low in each function
  • Inputs
    • could be explicit, implicit or non-local, but prefer explicit over non-local
  • Outputs
    • avoid returning a null or undefined, or returning different types of values
  • Side effects
    • keep to a minimal or nonexistent
  • this: the implicit input to functions
    • have it well-defined when possible
  • Privacy
    • it necessarily impacts access in JavaScript

Author: Evan Burchard Author's interesting personal site

Link: Book pdf