6 ms·
Reminds me of an old Java Android project I encountered. EVERY class implemented an interface. 98% of interfaces had one implementation. Every programmer was
by mixermachine 2y ago
Reminds me of an old Java Android project I encountered.
EVERY class implemented an interface.
98% of interfaces had one implementation.
Every programmer was applying a different programming pattern.
A lot of abstractions seemed incomplete and did not work.
Proguard (mostly used for code obfuscation for Android apps) definitions were collected in the top module even though the project had multiple modules.
Half of the definitions were no longer needed and the code was badly obfuscated.
Problems were solved by continuesly adding classes and checking what sticks.
The UI was controlled by a stateful machine. State transitions were scatter everywhere in the code with lots of conditions in unforeseen places.
Legacy code was everywhere because no one wanted to risk a very long debugging session of an unforseen change.
No API definitions. Just Maps that get send via REST to URLs.
By biggest mistake was to not directly rewrite this project when I entered the team.
We did after one year.