Baq haidri j rubyifying linked in's front-end

2,661 views
2,588 views

Published on

At an event hosted at LinkedIn on November 2, 2010, Baq Haidri from LinkedIn gave us an inside look at how LinkedIn is using JRuby to iterate rapidly, re-use code, and leverage its Java-heavy codebase.

In this 20 minute presentation, you'll get:
- An inside look into LinkedIn's web application architecture
- Code examples
- Demo of a new LinkedIn product using JRuby

** check out the video from this presentation at: http://marakana.com/f/200 **

...and as always, you can find more educational videos on Ruby and open-source at http://marakana.com/techtv

Published in: Technology, Education
1 Comment
3 Likes
Statistics
Notes
No Downloads
Views
Total views
2,661
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
15
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Baq haidri j rubyifying linked in's front-end

  1. 1. JRubifying LinkedIn’s Front-end http://www.linkedin.com/in/baquera http://sna-projects/sna
  2. 2. [“iterate rapidly”, “re-use code”, “jvm”, “hire ruby people”, “have fun”].each { |important_thing| important_thing.capitalize! }
  3. 3. require ‘background’
  4. 4. homepage profile inbox service service service front-end back-end
  5. 5. JRuby Existing full-featured custom Java web application framework using Spring MVC and a custom JSP compiler deployed to Tomcat ?
  6. 6. Tomcat < Servlet API Request - production webapps deployed as wars
  7. 7. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC - security - authentication - tracking - service layer
  8. 8. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh - 3rd party open source library - header, footer control
  9. 9. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh JRuby-Rack - bridge between Servlet and Rack - customized LinkedIn Rack servlet for special case error handling - control transferred via named dispatcher SiteMesh
  10. 10. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh JRuby-Rack SiteMesh Sinatra - custom service DSL for making asynchronous backend calls (based on protobufs) - custom Sinatra extensions that wrap Java framework fxnality: ---> url generation ---> logging ---> authentication ---> resource formatting
  11. 11. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh JRuby-Rack SiteMesh Sinatra get ‘/hello’ do erb :layout end <html> <head> <title>Hi</title> </head> <body> Hello from JRuby! </body> </html>
  12. 12. Tomcat < Servlet API Request Custom LinkedIn Filters + Servlet < Spring MVC SiteMesh JRuby-Rack SiteMesh Sinatra get ‘/hello’ do erb :layout end <html> <head> <title>Hi</title> </head> <body> Hello from JRuby! </body> </html> Response
  13. 13. require ‘demo’

×