I spend a
lot of time trying to get copilot and cursor to help me solve tedious problems. I can never get it to give me code that is anything remotely correct (in the "correctness" sense of the word.)
I think my problem is that I am "lazy", but I honestly have no idea how to prompt in a non-lazy way. I feel like if I had a specific algorithm in mind, for example, then I could just code it myself. Here is an example:
> i am building a distributed queue. i am using hashicorp memberlist to know when new nodes are added or removed. each node has a shard and replica number in its memberlist metadata. i am using hashicorp raft to set up replication.
> Currently, my memberlist only has a single member and raft is set up to bootstrap with itself as the only node. What logic do I need to write in the memberlist delegate to ensure nodes are correctly added to their shard? this should be reliable - the cluster should never be left in an unstable state, or a state where we attempt to process membership changes while a node is still in a candidate state.
What should I be doing instead?
I will say that Copilot is sometimes embarrassingly wrong. It’s strange how brilliant it can be at times and how incredibly dumb it can be other times. I think that just comes as part of the technology right now, but I have made it write quite complex code using the above approach. This approach does, however, require you to understand how the problem should be solved as to have Copilot understand enough to take over.