• 0 Posts
  • 42 Comments
Joined 2 years ago
cake
Cake day: June 13th, 2023

help-circle





  • I think that, in many cases, “what” and “why” are very similar to each other or are closely related.

    I’ve had an experience like this on more than one occasion - I come into an established code base for the first time. I’m working on a new feature/refactor/bug fix. I am reading through a function that is relevant to me, scratching my head a bit, and thinking “I think I see what this function is doing, but why did they do it such a screwy way?” Often there are no comments to give me any clues.

    In the past, I have foolishly changed the code, thinking that I knew better… But what often happens is that I soon discover why my predecessor did something that looked so weird to me. They weren’t stupid - there was a reason for it! And then I end up putting it back…

    Point being, in a situation like that the “what” and the “why” are going to have a lot of overlap. So, personally, I try to write comments that highlight assumptions that won’t be obvious from reading the code, external constraints that matter but don’t actually show up in the code, and so on.

    I am far from perfect at it and I probably don’t write enough comments. But when I do, I try to write comments that will be reminders to myself, or fill in gaps in context for some hypothetical new person. I try to avoid comments that literally explain the code unless it’s particularly (and unavoidably) complex.



  • “Why” comments make more sense as application complexity grows.

    You also have to consider interaction of the code with other external systems - sometimes external APIs force you to write code in ways you might not otherwise and it’s good to leave a trail for others on your team (and your future self…) about what was going on there.









  • I generally agree with the idea that code should be as simple as it can be to accomplish the goal of the code… I just haven’t been convinced that Clean Code is the way to get there, necessarily. The book does contain some good advice , to be sure, but I wouldn’t call it universal by any means.

    I also think TDD is a very optimistic strategy that just doesn’t match up with reality terribly often.

    Actually, I think that’s what confuses me the most about all of Uncle Bob’s books. I’ve read a couple of them and thought, “All this sounds great but real world development just doesn’t seem to work that way.” Like, all of his advice is for best case scenarios that I certainly haven’t encountered in my career.

    I say confusing, because surely he’s been in the profession long enough to have seen the disconnect between what he’s preaching and real life, right???




  • At work, we’re a Windows shop. So mostly Docker (desktop) via WSL2. But it depends on the project. Sometimes it’s just NodeJS in Windows itself!

    At home, mostly tools like nvm and Python venvs to handle multiple projects with potentially overlapping/problematic dependencies that I want to isolate from the base system.

    Either way, initial testing happens locally with Docker compose, sometimes minikube depending on the project.

    With Bluefin-DX it’s a lot of the same concepts but the included tools get you there a different, and honestly easier and more convenient way. But I have learn how to use those tools!