RailsConf: Tisdag

Keynote: Rails 3 ..and the real secret to high productivity

Presentationen (PDF)

David började med en tillbakablick på de 5 år som gått och vad som sagts om ramverket och hur det kom sig att det skapades så många kloner. Han fortsatte med att berätta om några förändringar i Rails 3.0

En välkommen förändring är att output i vyerna kommer att bli escape:ad per default. För att skriva ut råformatet använder man metoden raw.

Unobtrusive JavaScript kommer att implementeras genom att använda HTML 5 attribut:

## Rails 2.x
<%= link_to_remote "Delete", :url => @comment, :method => :delete %> 
<a href="#" onclick="new Ajax.Request('/comments/1', {asynchronous:true, 
evalScripts:true, method:'delete'}); return false;">Destroy</a>

## Rails 3.x
<%= link_to "Delete", @comment, :remote => true, :method = :delete %> 
<a href="/comments/1" data-remote="true" data-method="delete">Destroy</a>

Och sen appliceras metoderna med JavaScript:

$(document.body).observe("click", function(event) { 
  var element = event.findElement("a['data-remote']"); 
  if (element) { 
    var method = element.readAttribute("data-method") || "get"; 
    new Ajax.Request(element.readAttribute("href"), { method: method }); 
    event.stop(); 
  } 
});

Han visade på hur viktigt hög produktivitet faktiskt är, hur motivation snabbt minskar vid svåra problem.

Relaterade bloggposter

The Gilt Effect: Handling 1000 Shopping Cart Updates per second in Rails

Anställda på Gilt Groupe berättade om hur deras serverarkitektur ser ut, de använder PostgreSQL, 400+ Thin servrar, 2 ZXTM’s (Zeus Extensible Traffic Manager)

Applikationen är skriven i Ruby on Rails.

De måste jobba med sharding för att klara av den höga lasten.

De använder ett internt CMS skrivet i Rails och har två “CDN”-servrar framför som serverar förgenererade sidor. (En server på östkusten och en på västkusten)

Stort antal transaktioner

Dedikerade tjänster för varje transaktion - JRuby + EC2 + SQL + Rails

EC2 (lastbalanserad genom Zeus), expanderbar kapacitet, tid/behovsbaserad ökning av tillgänglig kapacitet.

De arbetar tillsammans med Joyent för hosting.

Hög volym / Delat tillstånd

Unik ehandelsmodell, “flash sale” där alla produkter tar slut på en dag.

Inventariemodellen

Gilt hanterar varje fysiskt objekt individuellt

Varukorgsmodellen

Shoppingfasen:

Betalningsfasen