Do Not Learn Frameworks. Learn the Architecture.

So since you touched on NIH syndrome I'm going to hijack your comment.

NIH syndrome is what is commonly used by people who use FOSS frameworks in order to never evolve as a team or as a company. For example I am currently writing a large Restful API using Hapi. Hapi is great but Hapi relies heavily on context rebinding, which is shitty when you're trying to keep up with nodeunit tests for great test coverage, documentation for functions classes modules process chains, and keeping the code organized and consistent.

So if I wrote my code like the Hapi tutorial I would quickly end up with an intangible mess of functions some of which would take very long because the tutorial doesn't have the best practices in mind for callbacks.

For example I define internal classes for plugins, and on top of those i compose internal classes for defining API services. I also have some base classes for specialized API services composed from my general API service classes. Likewise the initialization of the server is abstracted out as well to keep the init code clean.

Likewise I need to document and explain the context rebinding that goes on in Hapi and bootstrap certain function contexts sometimes to keep consistency.

If I wrote it like the tutorial I would have a mess of functions and objects.

That is where the architecture counts, if you don't understand Hapi's use of context rebinding and it's strong adherence to the event loop, you're not going to be able to contiguously organize your services and you won't be able to compose the right objects for Hapi. You also won't be able to design a long lasting organized design.

This is where architecture counts. It also counts when you're trying to compose new features that don't exist in your libraries. For example I wrote a complex querying interface on top of MyBatis/Oracle in Java. Which would generate queries on the fly to be able to reach near SQL functionality within the API. Without knowing architecture and the internals of the frameworks I am using and be able to make educated guesses about their layout there was no way to do it, which is why it was never done in my company.

/r/javascript Thread Parent Link - kukuruku.co