Noah Kawaguchi


Project maintained by noahkawaguchi Hosted on GitHub Pages — Theme by mattgraham

Project Post Week 3

Last week, I made good progress in the areas of design and testing. I was able to implement a new design that has better separation of concerns between domain logic and infrastructure and between domains. I wrote tests for most of the handler layer, including request validation logic, middleware, and most handler functions. I left two handlers untested due to design issues I will be addressing this week.

This week, I will make the domains of users and auth more in line with the redesigned friendship and post domains, essentially completing the redesign. This process is already well underway, and will allow me to complete the testing of the handler layer, which I plan to do this week as well.

The main impediment I’m facing surrounds the relationship between redesigning and testing. Almost all of the backend has tests at this point, so when I change the design, I have to adapt or even completely remove and rewrite the tests, which often takes much longer than writing the main code itself. This week, I plan to reach a more stable design and basically full test coverage for the backend. Hopefully, changes in the future will be more about adding on to what I have rather than rewriting what already exists.

I would say that my process last week was positive overall. I used branches with Git and GitHub in a way that emulates collaborative work. If there is anything to improve upon, I’d say it’s the size of my commits. For tasks like writing tests, I think my commits were of good size, usually one per module (file). However, for redesign tasks, everything kind of breaks at once, so my commits ended up being quite large. I initially tried to keep the previous implementations working while I built the new ones, but that didn’t end up working very well, because the new implementations inevitably need to connect to an existing part of the app in a way that wouldn’t make sense to duplicate temporarily. Perhaps this tension is somewhat inevitable. I think moving forward, I won’t be doing much more significant redesigning, so this may not be an issue.