My approach to building large technical projects (2023)
1–10 of 56 posts
Re: My approach to building large technical projects (2023)
#2My approach to building large technical projects - https://news.ycombinator.com/item?id=36161397 - June 2023 (27 comments)
Re: My approach to building large technical projects (2023)
#3I agree with all the points of this article and would like to add one: Have a quick feedback loop. For me, it's really motivating to be able to make a change and quickly see the results. Many problems just vanish or become tangible to solve when you playfully modify your source code and observe the effect.
Re: My approach to building large technical projects (2023)
#4Re: My approach to building large technical projects (2023)
#5I have huge respect for Mitchell, it's impressive what he achieved. I agree with all the points of this article and would like to add one: Have a quick feedback loop. For me, it's really motivating to be able to make a change and quickly see the results. Many problems just vanish or become tangible to solve when you playfully modify your source code and observe the effect.
Re: My approach to building large technical projects (2023)
#6I think this is where the choice of language makes a big difference. In Clojure, the difference between a "component" and a separate library/application is literally just adding a `deps.edn` file and then pointing to the directory from the parent project.
I think breaking the project in to small achievable goals is very sensible. But if you take the extra time to make the component stand on its own as a mini-lib .. it's very satisfying. For instance I had to write a "component" that would read some GeoJSON and segment it (it's took me a couple of days and was mostly a wrapped around GDAL or something). I could have hacked together a solution to rush to a demo - but instead I made a small little library out of it. When I was done with it, I had a sense of "I made a thing". To be clear.. it's still kind of ugly and I would be horrified if someone else tried to use it and submitted PRs.. but it's also not a coupled tangle of code in my larger codebase.
as he says "Build for yourself" - the library/application should only do what you need
By contrast, if I was working in C++ making an API and decoupled library would be such a chore that'd never bother
The most important aspect is that this all ends up not just much more satisfying at every step - but it makes your code incredibly decoupled and refactorable. The more you rush to a demo the more your code is coupled and hard to refactor.
Re: My approach to building large technical projects (2023)
#7Re: My approach to building large technical projects (2023)
#8Re: My approach to building large technical projects (2023)
#9Re: My approach to building large technical projects (2023)
#10I have huge respect for Mitchell, it's impressive what he achieved. I agree with all the points of this article and would like to add one: Have a quick feedback loop. For me, it's really motivating to be able to make a change and quickly see the results. Many problems just vanish or become tangible to solve when you playfully modify your source code and observe the effect.