Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
theKarlisK888486dIt's kinda how Universities are - they are suppose to spark new ideas and innovation from teaching you the basics, tho, it would be nice if they looked more into/at industry standards than just academic standards.
The whole academic process is not to just teach but also to progress scientifically. Tho this, in my opinion is more applicable in anything above bachelors degree. Because how can you make any meaningful scientific progress if you're still learning how to conduct said scientific process.
magicMirror999786dFrom my experience, Acedemics are 10 years behind the industry.
When you understand who stays in the academy to teach it makes a lot of sense.
Think about Graph algorithems. Think about time complexity calculations. Did anything major changed in the last year? 5 years? 10 years? 20 years?
Answer - nope. nothing. the basics are that basic. They are only interested in novelty for thier academic papers.
zemaitis391885dAfter reading your rant only one idea came to my mind to explain why this structure is necessary - its because its easier to write unit tests for this kind of modular architecture.
First of all spliting your logic into smaller functions allows to isolate and test separate parts (units) of your code.
Now having interfaces allows you to abstract away the business logic from application logic.
For example I work as android dev so our codebase has lots of dependencies on Android SDK. Our unit tests are written purely for business logic so unit tests cant have dependencies on Android SDK. Having interfaces allows us to mock SDK dependencies instead of instantiating them which we dont want in unit tests.
So basically write some code, implement a few use cases and then try writing unit tests for your code. You will realize that you have to change architecture so that code would be testable and then u will realize why this at first glance overcomplicated architecture is necessary.