InfoQ Homepage Presentations Evolution of Code Design at Facebook
Evolution of Code Design at Facebook
Summary
Nick Schrock presents how Facebook’s code evolved over time, explaining some new constructs – fbobjects, Preparables, Ents - introduced to address the complexities of a large social graph.
Bio
Nick Schrock is an engineer at Facebook, working on the Pages, Profile, Privacy, and the general product architecture of Facebook. Nick studied Computer Engineering at the University of Michigan, and Economics at the London School of Economics. Prior to joining Facebook, Nick worked at Microsoft, CareEvolution, and co-founded BitYield, a financial technology start-up.
About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community.QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
Community comments
DTO?
by Robert Sullivan,
Re: DTO?
by Jaron Schut,
DTO?
by Robert Sullivan,
Your message is awaiting moderation. Thank you for participating in the discussion.
Nick is a good speaker, thanks for the presentation. Some of the objects, like Preparables, remind me of J2EE patterns like Data Transfer Objects, although I'm sure these patterns are also in the GOF book. Interesting to see their implementation at facebook, and the unique constraints and requirements they face due to the, (in best Carl Sagan impression) "billions and billions" of page views.
Re: DTO?
by Jaron Schut,
Your message is awaiting moderation. Thank you for participating in the discussion.
Well if I understand correctly there is a succinct difference. The multi-pass framework is specifically designed to make use of multi-get capabilities of key-value stores. The multiple 'components' of a webpage can request data from their memcache layer in parallel over the same data request. I think this is quit original. There are frameworks that allow multiple page components to render in parallel with multi threading. But there is no other framework that allows multiple page components retrieve data in paralel.