I've been considering an approach to problem solving and code writing, and it's, solve in parts until you solve in full. Let me explain.
I'm currently working on a feature for code-migration-helpers and I'm stuck. I think I understand how it should work, but representing it in code seems challenging because there are several moving parts. Basically, I want to add a tool for adding/modifying index files in folders, and propagating added/modified index files to parent folders. Seems simple, but when you consider questions like,
A way to approach this complexity in code is to solve partially, like divide-and-conquer. To solve this problem, I need 3 things:
Having separated the concerns, I have 3 placeholder functions:
async function decideSymbolsToExport(filepath: string, opts: Opts): Promise<string[]> {}
async function filterExistingExportedSymbols(symbols: string[], opts: Opts): Promise<string[]> {}
async function exportSymbols(symbols: string[], filepath: string, opts: Opts): Promise<string[]> {}
Now, what it'll eventually be may be a bit more complex than this, but I can pick each part and solve it as if the rest is in place.
I'm pretty sure there's most probably a name for this technique, but let me know what you think, and possible improvements.