Live data from Hacker News

Do Not Learn Frameworks – Learn the Architecture

kukuruku.co

21–30 of 86 posts

Re: Do Not Learn Frameworks – Learn the Architecture

#21
post #8
post #4

The problem is that job ads always say "We want experience in X, Y, Z." They never say "We want someone who can code without a framework, and could learn whatever we're using quickly."

Good companies want you to be able to code well. They don't care if you know the framework or even the language.

Not so good companies have a mess of broken systems. You end up spending more time reverse engineering random bugs in the systems than actually doing any forward progress. Knowing the bugs of a specific framework thus becomes a precious skill.

Re: Do Not Learn Frameworks – Learn the Architecture

#23
One of the best lessons I've learnt from mentors is that meaningful architecture that is even a little clever will most often make more of an impact on a project than any particular framework or language, because many are reasonably capable.

Architecture, and the approach to, and through it, is one of the most valuable (and transferable) skills as we spend our lives guaranteed to use new tools that somehow need to do the same things, more efficiently.

Looking at any problem and synthesizing it down to it's architecture before frameworks and language is a fun and useful exercise.

Re: Do Not Learn Frameworks – Learn the Architecture

#24

So this is neat and all, and I'm all about learning more about whatever... but what does it mean to learn the architecture? It's not stated in the article where this is useful to me personally (in terms of experience), and I assume for others like myself. What does it mean to write something in javascript with "module libraries" only? That doesn't mean anything to me. Does anyone have specific recommendations on how…

Javascript does not have built-in support for modules, so he is using a library to have module support. An anti-architecture (in the article's sense I think) might be people who just know jquery but do not know javascript or how the DOM, the browser api, etc.. works, some just use jquery for something that can be done with 10-15 lines of JS, but they don't know better, they lack the principles/architecture knowledge…

This is still a little vague. What does it exactly mean to learn architecture?? Should I be reading the source of the framework and understand how all the design patterns fit in?? How well should one know the language to read the source of the framework?

Re: Do Not Learn Frameworks – Learn the Architecture

#25
post #13
post #9

Let's say I'm building a web app and develop my own patterns and practices. Obviously it'll be a bad idea to have everyone working on my project create their own patterns and will make sense to mandate everyone follow one set of patterns so we don't have to keep context-switching whenever we're working on a different part of the app. To an outsider who needs to now contribute code to my web app, what's the difference…

The difference is that the framework is built to be an open source framework - it has general abstractions. Your own patterns and practices are developed to apply directly to what you're building.

But a good framework has well chosen abstractions that took many person-hours to settle upon, a community of engineers working to perfect it, and probably uncountable hours of production battle-testedness.

Re: Do Not Learn Frameworks – Learn the Architecture

#26
I think patterns are stupid idea. You bother learning a way of doing things (the pattern), and you bother all you colleagues learning that way of doing things. OK, cool, that sounds good.

But you never bother to teach it the computer! The computer should understand the pattern as well, in form of some abstraction. Because now you force yourself and others to recognize pattern every time you need to use it (either read or write it in the code). That's ridiculous.

In some languages, patterns are commonly expressed via macros. Instead of learning patterns, you learn set of macros. That way, even computer understands those patterns and it is clearly obvious from the code what pattern was used, you don't have to translate code back to patterns. But the macros are not the only way to do it.

Re: Do Not Learn Frameworks – Learn the Architecture

#27
I'm going to admit, I didn't finish the article. So, I apologize if my point is useless. I've done plenty of web development before Angular/backbone etc. The productivity that I've experienced after becoming proficient in these frameworks more then makes up for any debugging issues. My other experience is that though sometimes it may take a tediously long time to figure something out, once you get it working... it just works.

Seriously, using knockout js recently. I completed a project, and all its mile stones in 2 weeks. We had 6 months planned. I completed the whole project in 2 weeks. When I was done, there were NO bugs under priority 4. In the 7 years of development before that, I have never experienced such a pleasant development cycle. I'd kill someone if they ever took this new tool away from me.

Re: Do Not Learn Frameworks – Learn the Architecture

#28

Wondering where jQuery fits in the author's mind right about now. Yes, it's a "library" but come on, all the framework versus principles narrative applies with that too. Directly interacting with the DOM without abstraction seems way too risky, in exchange for some bloat.

Sincerely, the difference between jQuery and angular.js, imho, are obvious.

And the principal one, moving jQuery to the "library" side and angular on the framework one, regards not the "size" (in kb) of the sources, but the usage.

jQuery is a library because it up to the developer to use it. You can see it just like a light wrapper around the browsers (incompatible) DOM manipulating API.

angular is a framework because it's not you that use it, it's you that plug it in your application and that "owns" the logic. You need to adapt your application logic to fit in the framework API.

Re: Do Not Learn Frameworks – Learn the Architecture

#29
post #6

Good article, I agree with learning architecture first. No one should start learning by using framework first. But don't forget about "loosely coupled" frameworks like PhalconPHP. It allows you to code your own without using pre-built one.

What does it exactly mean to learn architecture?

And how is it relevant who is on working on backend or web services?

Re: Do Not Learn Frameworks – Learn the Architecture

#30
The author is only partway through the learning process. There is a circular progression.

The total newbie just "learns the framework" and is helpless to debug through leaking abstractions. I agree 100% that you don't want to be stuck there.

So eventually she decides to just compose her own architecture. Now she understands all the pieces. But as she matures further as a programmer and architect, she starts to see all the myriad ways that her bespoke architecture is not as good as the more standardized alternatives.

It can't be, because all the people spending their time on bespoke solutions are solving the same problems over and over again separately, whereas the people working on shared solutions keep building off each other. Over the long-run it gives a massive quality advantage to the shared solutions.

Her journey is complete when she circles back around and can pick up somebody else's framework with shared community conventions and still understand all the pieces. She's not intimidated by the prospect of debugging down through layers of abstraction. Because she's good enough to write a framework, she doesn't have to. She can just contribute to one, and benefit from everybody else who's also contributing.

Post reply on HN