Live data from Hacker News

Do Not Learn Frameworks – Learn the Architecture

kukuruku.co

41–50 of 86 posts

Re: Do Not Learn Frameworks – Learn the Architecture

#41
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.

>They don't care if you know the framework or even the language.

Good luck telling that to a recruiter.

"Oh looks like you don't have 5 years of experience on a super esoteric framework released last year. Great we'll talk soon."

Re: Do Not Learn Frameworks – Learn the Architecture

#42
This is a false dichotomy but I'm not surprised, especially in the js world. JavaScript is so little opinionated that developers refuse to read each others code, because it's usually not written in the way they think js should be written. And soon it will be worse with classes,proxies and all the python like "ninja" features of ES6.

It's not about "not using framework",it's about reading the source of anything you're going to use and vet it. Obviously that's the last thing js developers like to do.

That's why I like Go by the way.The language is so limited anybody with a minimal understanding of Go can read it. No fancy stuff,just ifs,functions and for loops.

Angular is what, 10000 of codes with the comment striped at most. Well you'll learn a lot of "architecture" just by scaning it.

Don't listen people telling you not to use frameworks,where do you think their skills come from,how do you think they earn money,by spending time building their own undocumented ,sub tested ,full of cross site scripting exploits, frameworks again and again? bullshit.

But use libs and frameworks you're ready to spend time debugging. Thus something with a source code YOU can understand.

I agree however, that angularjs "check what error codes means online" instead of explaining them in the console is terrible.

I say it again, want to be a great dev? read source code.You'll learn much more about programming because the practice is right here in the source, than with crappy article like the OP.

Re: Do Not Learn Frameworks – Learn the Architecture

#43

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 re…

Richard P. Gabriel critiqued this notion of "patterns should be abstracted and instantiated" in his 1996 book Patterns of Software [1].

To summarize as briefly as possible: abstraction has costs, too. Sometimes it's better to spell out the pattern.

As you probably know, the idea of patterns came from architecture, where "reusable abstraction" translates to "modular house" – which is not obviously better.

[1]: https://www.dreamsongs.com/Files/PatternsOfSoftware.pdf

Re: Do Not Learn Frameworks – Learn the Architecture

#44
post #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 al…

We're not talking about creating the universe from scratch, here. We necessarily build near the top of a pyramid of architectures. In the browser, for example, we build on top of JavaScript and the DOM. In many situations, Unix can be seen as the underlying architecture.

Compared to those underlying architectures, most frameworks are ephemeral and indeed "bespoke." JavaScript, DOM, and Unix are specified in standards and have several implementations. They embody decades of shared solutions and conventions.

"It can't be" is a bold claim. "Massive quality advantage" as well. Which frameworks are you talking about exactly?

I think "circular" sort of gets at the point. A circle keeps going round.

Re: Do Not Learn Frameworks – Learn the Architecture

#45

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.

jQuery can't stop you from creating and using abstractions.

Re: Do Not Learn Frameworks – Learn the Architecture

#46
A lot of folks here ask how to learn architecture. I really love this intro statement from "The Architecture of Open Source Applications"[1] and higly recommend reading the book!

"Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's successes."

[1] http://aosabook.org/en/index.html

Re: Do Not Learn Frameworks – Learn the Architecture

#47

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…

I'll bite and make the argument here about using jQuery for something a decent dev should be able to implement in native JS: consistency and cross-browser support. Most of the time, I'll reach for jQ because it's so widely used that most of the weird edge-cases are ironed out, and I can be fairly confident that it'll work decently well across most modern-ish browsers. I'm sure there are exceptions, but this has been my experience. If a performance issue comes up and a jQ method is the culprit, I'll optimize that little bit. Until then, I'll use $.extend() instead of whipping it up myself, since I usually have more urgent things to do.

Re: Do Not Learn Frameworks – Learn the Architecture

#48

Earlier quoted context omitted.

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?

E.g. Learn how frameworks are built and what design patterns they implement. http://en.m.wikipedia.org/wiki/Software_design_pattern could be a good place to start, if only to get ideas on more things to learn about. You don't have to know a language amazingly well to start picking apart a framework, but it might be helpful to be tenacious enough to go look up and play with the programming concepts they're using which you don't yet understand.

The "architecture of open source applications" books are a good read to get an idea of how bigger pieces of software work, but none of it is JS IIRC.

Re: Do Not Learn Frameworks – Learn the Architecture

#49
post #19

Any recommendations for learning web app architectures for an otherwise experienced back-end dev?

I am in the same boat as you. Though web development is not my primary job, this is how I learn it in my spare time. Would love to hear from others.

a) Learn fundamentals and working of JS (right from event loop), How modern browsers works as full blown runtime, single page applications, Functional programming paradigm etc.

b) Be able to categorize and put opensource I come across frequently, into problem buckets they solve. Started with libraries, frameworks and tools and am going one level down now

c) How massive development is now possible on browser side with kind of tooling available

d) Picked up Angular and Node for "Hello World" and some small apps for learning

e) I follow related subreddits like- r/Javascript, r/AngularJS, r/webdevelopment etc and of course lurk on HN

Post reply on HN