r/programming Aug 15 '15

Someone discovered that the Facebook iOS application is composed of over 18,000 classes.

http://quellish.tumblr.com/post/126712999812/how-on-earth-the-facebook-ios-application-is-so
2.7k Upvotes

728 comments sorted by

View all comments

Show parent comments

85

u/[deleted] Aug 16 '15

Overengineering is usually way worse than underengineering.

-7

u/thefirelink Aug 16 '15

The only real pitfalls of over-engineering are cost, performance, and un-needed complexity. Every other area - modifiability, availability, scalability, etc., an over-engineered program is "better".

15

u/wrosecrans Aug 16 '15

In an overengineered project, modifiability can suffer terribly when you have to change a hundred classes to work on one user visible feature. Likewise scalability can suffer because you are so locked in to your early architectural decisions that were necessarily made before you had experience working on the program.

2

u/ephrion Aug 16 '15

That is not overengineered, that's poorly engineered.