Hacker Way: Rethinking Web App Development at Facebook

Share it with your friends Like

Thanks! Share it with your friends!

Close

Delivering reliable, high-performance web experiences at Facebook’s scale has required us to challenge some long-held assumptions about software development. Join us to learn how we abandoned the traditional MVC paradigm in favor of a more functional application architecture.

Comments

thecommoner says:

Cool stuff but why something new as it's already been normalized before. MVC is a meta pattern contrived of concrete patterns. The controller in MVC is a "Behavioral pattern" (command pattern, observer patterns, state pattern and the mediator pattern). The model in MVC is a combination of the a "Structural patterns" and "Creational patterns" (Proxy , Adapter and the "Business Logic", "Domain Objects"). The view in MVC is a "Behavioural patterns" (Mediator, State).

JORGE FERNANDO CHIRIBOGA VERA says:

You can Hack Someones Facebook with ► https://twitter.com/likedhacks/status/666974310855258112?pidid=fe1b95ae-f274-4791-984b-824af663edfe
Hacker Way: Rethinking Web App Development at Facebook

Joshua Pratt says:

One direction…. left and right….

Ovidiu Badita says:

The problem was not with MVC, but with MVVM and 2 way data binding. FLUX is very much like what MVC is supposed to be. Actions from views should call a controller that would route the data in the right model that should rerender whatever needs to be rendered. Views are supposed to be dumb and not make choices to call one model or another. They should not even know that a model exists.

mohamed refaat says:

New working and free site…Free Facebook Password==>> plus.google.com/104062209975732132241/posts/br9tSVFEy16
Have fun!!

rahim alleyne says:

Free Facebook Password ==>>> plus.google.com/104062209975732132241/posts/CgccAVAt8BV Check it out now!

Tom Canham says:

Oh, thank goodness! I thought I was the only one who was so dense that he couldn't "get" this. She kept saying "the arrows only go in one direction!" when even her own diagram showed that not to be true. The core problem is that they were "doing" MVC wrong. Then they fixed it, but decided to rebrand it and say they'd invented the pattern of decoupling data, view, and event handling.

Turtle Beak says:

Anyone else hear the reapers from Mass Effect attacking the convention center at 30:50?

Kendama KR says:

This presentation is kinda weird. Though my recent web app is using React for the lighter js framework instead Angular, React is mere updated ajax. Even the newly presented flux+react pattern is just another explanation of MVC in action, Both patterns are scalable since they are far from the problems dealing with the multi-threads and non-blocking operations.

It would be better to replace the 'traditional MVC' to 'old and unmaintained fb's MVC'.

Of course React isn't bad, actually more productive and cost-effective than others like Angular or Ember. Especially the react's state function (similar to git diff) can be useful for the replacement of the well-managed Ajaxful apps. I like React for these reason, not that they dominated the MVC pattern.

Thanks facebook.

alessandro meyer says:

I don't see why you wouldn't implement things more decoupled anyway even without fancy new frameworks. Its all there in basic JS…

Eli Orellana says:

I feel like anyone can walk into Facebook and be a "Software Engineer" after watching this.

Tomás Charad says:

Sounds like blocking threads right? On contrary of node.js paradigms…

John Mensa says:

Hack Someones PASSWORD with a software called FACEBOOK PASSWORD HACKING SOFTWARE :
LINK : http://www.Passwords.help/ and the
licesse key is : FGH65

Pablo Pazos says:

My impression is they "created" a code solution for a problem that can be avoided with good design and documentation… is like "the code grew and was less manageable bla bla bla", what about considering low coupling when designing the code? Or Facebook just code and do not do software design? Just weird.

Eric N says:

Am I the only one who thought that the MVC diagram Jing showed is wrong? Where is the arrow from Controller to Model? The arrow from Model to View is not supposed to there right (Unless this is part of two-way data binding framework which I don't know about)?

Aris Alamanos says:

An excellent talk.

noherczeg says:

This is basically saying that "here is how shitty code can work, and here is how our well designed code works better". Also lets not forget that for example having a separated template system allows designers to work in co-operation with the devs way easier than doing this embedded special js gibberish. I'm having this feeling where they built something which is way better than x in N cases, but I'm not seeing this as a silver bullet. At least not yet, but oh well..

Virgilio Sanz says:

What's wrong with MVC & the Observer pattern?
I believe you were doing it wrongly in the first place.

Shien The Kid says:

Flux is just another MV* in disguise, but it sure is a well thought-out and well implemented one.

martinwork100 says:

Ok, got the point: Facebook programmers are bunch of uneducated stupid hipsters :(

Colin Roache says:

Really? "Data changing over time is the root of all evil"? You hack

Lasse Maerkedahl Larsen says:

How is this different than a for. ex. well designed Angular modular application, using directives nested like react components..? I feel like I'm either really dumb for asking, or can't see any difference other than reacts speed to update the DOM..

Nikos Mp says:

Intriguing and challenging speech,info and presentation,very good

rhino18 says:

sounds like the engine room of a battleship

Ronald Schutte says:

Now please fix the API. Document all edges properly and pleeeaaase let an app with a logged in user just get a list of that users friend. Not only for games and not only friends with same app installed. Removing that options blocks way to much possibilities.

Write a comment