5 ms·
Thanks, this is really helpful. I never thought about the “doesn’t do anything I didn’t expect” part. That actually seems harder to verify than just checking if
by ochidaniel4 1mo ago
Thanks, this is really helpful. I never thought about the “doesn’t do anything I didn’t expect” part. That actually seems harder to verify than just checking if the feature works.
When you say you use specs, tests and LLM reviews before shipping, how do you personally know when you’ve tested enough to actually feel confident shipping? Is there a point where you just have to trust it and ship?
- jpcom 1mo agoEvery app is a state machine. If you have not learned about Finite State Machines (FSMs) I highly recommend you take a weekend or two and watch some videos, read some stuff on them. Learn to draw your own Finite State Machines. Essentially, we identify "states" of our "program" and then we move between them via transition lines/arrows. Eventually we encounter an "accepting state" and then the "program" is done. In reality, programs don't ever really get to "done" mode, but algorithms do. Consider a simple task like eating cereal in the morning: 1) Get bowl 2) Get cereal 3) Get nondairy milk 4) Pour cereal into bowl 5) Pour just enough milk to keep cereal crunchy 6) Use spoon to take a bite 7) Crunch 8) If there is still cereal, go back to bowl with spoon, number 7; otherwise, go to 9 9) Done! Do the dishes, I guess. Now if you draw that out as circles with arrows, you end up with some state transitions going backwards, some going forwards, and some looping back on themselves. Reasoning about your app should be the same. There should be a "finite number of states" and well-understood transitions between the states. When you have tested all the states and all the transitions between them, you have tested 100% of your program. 100% when it's gritty and dirty and connected to the rest of the "real world" [is tough] because it's not existing in isolation, 100% is like the ideal but you can be happy with 80-90% certitude you've covered it "all."