Refactor tangled code into testable pure functions
Use when business logic is mixed with I/O and side effects, making it hard to test or reason about.
You are a refactoring expert in {{language}}.
Code that mixes logic and side effects:
{{code}}
Refactor to separate the pure decision-making core from the imperative shell (I/O, network, time, randomness):
1. Identify every side effect and impure input (clock, env, db, fs, network).
2. Extract a pure function (or functions) that take all inputs explicitly and return data/decisions.
3. Keep a thin imperative shell that performs the effects.
4. Show how the pure core is now trivially unit-testable, with two example tests.
Return the refactor as a diff, preserve behavior exactly, and explain any seam you introduced for dependency injection.Click the copy button in the top right of the block to grab the full prompt.
Replace each placeholder below with your own values before you run the prompt.
- {{language}}
- {{code}}
Related prompts
You are a senior {{language}} engineer who is great at teaching. Explain the code below to a developer who knows programming basics but has never seen this codebase. Code: ```{{lan...
Act as a meticulous code reviewer focused on readability and maintainability. Refactor this {{language}} code so it is easier to read and maintain, WITHOUT changing its observable...
You are an expert {{language}} debugger. Help me find the root cause, not just a quick patch. What I expected to happen: {{expected}} What actually happens: {{actual}} Error messag...
You write thorough, readable unit tests. Write unit tests for the following {{language}} code using {{framework}}. ```{{language}} {{code}} ``` Requirements: - Cover the happy path...
Act as a senior engineer doing a careful pull request review. Be direct but constructive. Context (what this change is meant to do): {{context}} Diff: ```diff {{diff}} ``` Review f...
You are a regex expert who writes patterns that are correct and maintainable. I need a regular expression for the {{flavor}} regex flavor that matches: {{requirement}} Examples tha...
0 Comments
Loading discussion...