3 ms·
The better you can describe the interdependencies between the components, the more chances the selective approaches have. However, often if you knew about a gi
by ay 2y ago
The better you can describe the interdependencies between the components, the more chances the selective approaches have.
However, often if you knew about a given dependency, you might have avoided bugs in the first place!
A simple scenario to illustrate what I have in mind: a system with two plugins, A and B. They provide completely independent functionality, and are otherwise entirely unrelated.
Plugin A adds a new function which allocates a large amount of memory. All tests for A pass. All tests for B pass. The tests for B when A is loaded fail.
Turns out A has done two things:
1) the new memory allocation together with the existing memory allocations in B causes an OOM when both are used.
2) the new function addition offset the function table in the main program, and the plugin B was relying on a haedcoded function index, which didn’t change, by sheer chance, for years.
Those are the the tales based on the real world experience, which made me abandon the idea for the project I am working on (VPP) - the trade offs didn’t seem to be worth it. For some other scenario they may be different though, so thanks for looking into this issue!