3 ms·
Spend a lot of planning time breaking up the design into separate components/modules/packages/whatever, where each piece exposes a small, well-documented interf
by openasocket 10y ago
Spend a lot of planning time breaking up the design into separate components/modules/packages/whatever, where each piece exposes a small, well-documented interface. Naturally these pieces will have inter-dependencies, but try to keep that to a minimum. You don't want to have a single module that every other module directly imports. It takes a lot of thought, but this makes it a lot easier to fix bugs and make improvements with minimal fuss.
Another thing that is really helpful is keeping a dev journal: a sort of stream-of-consciousness record of what you're thinking/doing. Include things you thought about trying but decided against, links to blog posts/stack overflow questions, frustrations or pain points with the design, code snippets, just anything really. This can serve as a rough draft for documentation, and forces you to articulate your thought process into words. It takes discipline to keep adding to the journal, and I've fallen out of the habit recently, but it is super helpful.