Dust.js, the client-side templating engine, is used to serve LinkedIn webpages with common UI code for different web-apps products. These web-apps products are created using varied technology stack including Java/Grails/JRuby etc. With Dust.js, LinkedIn moved from having the need to create UIs using different technology stack ((Java, Grails, JRuby) to processing of JSON data coming from different applications merged with javascript templates (Dust.js) coming from CDN to generate HTML pages. Following diagram depicts the same:
Read more about Dust.js on following page or slideshare page. Let’s take a quick look at some of the LinkedIn webpages that are served with JSON and Dust JS templates:
LinkedIn mobile apps (iPhone, Android, Mobile Web) makes request to Node.js using RESTful requests to node.js mobile server, which then makes RESTful requests to LinkedIn platform to serve the requests. You could read the detail on this page or on this page. Look at the diagram below to understand how Node.js used in mobile apps.
Faced by the challenges of testing the UI with selenium integration tests and not being able to catch the JS related unit tests earlier in the game, Linkedin engineering team created this JS unit testing framework called as Venus.js. With Venus.js, they were able to achieve some of the following objectives:
Before Venus.js got created, various different LinkedIn teams had been using some of the following JS unit testing frameworks:
For details on Venus.js and why it got used, check out this page from LinkedIn engineering team.
For browsers that do not support Javascript, Google V8 JS engine on server-side is used to process JSON data with Dust.js templates and generate HTML pages on the server side before sending the same to client side.
Backbone.js is primarily used to deliver LinkedIn on iPad device. The views are rendered using underscore templates that are bound to backbone views and populated with data from backbone models or collections. Backbone models retrieve the JSON data from the server in a structured format.
Underscore is used as client-side templating engine to serve the different pages on Linkedin iPad apps. As mentioned in above section, underscore.js templates are used/bound with backbone.js views and populated with data from backbone models.
Last updated: 09th May, 2024 In the world of generative AI models, autoencoders (AE) and…
Last updated: 7th May, 2024 Linear regression is a popular statistical method used to model…
Last updated: 3rd May, 2024 Have you ever wondered why some machine learning models perform…
Last updated: 2nd May, 2024 The success of machine learning models often depends on the…
When working on a machine learning project, one of the key challenges faced by data…
Last updated: 1st May, 2024 The bias-variance trade-off is a fundamental concept in machine learning…