I am interested in understanding the design principals to use to create the backend for a social networking site. I read up a few resources and found that facebook uses a graph as an underlying data structure where each node could be user/page/album etc. However, just that does not give me a top level view (block diagram or class diagram) on how to go about implementing a few basic features like (all using the graph data structure):
Any pointers on any resources would be great. I am also interested in finding out if a design pattern exists for a social networking site.
Please note that I am not looking for any language specific solution
Flux is the application architecture that Facebook uses for building client-side web applications. It complements React's composable view components by utilizing a unidirectional data flow. It's more of a pattern rather than a formal framework, and you can start using Flux immediately without a lot of new code.
Design Patterns are categorized mainly into three categories: Creational Design Pattern, Structural Design Pattern, and Behavioral Design Pattern.
Structural design patterns are Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Private Class Data, and Proxy.
A design pattern is a reusable software solution to a specific type of problem that occurs frequently when developing software. Over the many years of practicing software development, experts have figured out ways of solving similar problems. These solutions have been encapsulated into design patterns.
Have you looked at this StackOverflow Thread
and this and this and this?
Please do a search on SO and you will land with many more! None seem conclusive but that's more to do with the nature of your question!
EDIT: You may find this linked in architecture presentation useful!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With