10 reasons to love CoffeeScript

Post on 21-Jun-2015

701 views 2 download

Tags:

transcript

10 razões para você usar CoffeeScript

e se apaixonar...

Lukas AlexandreSaturday, January 19, 13

1-Sintaxe limpa• Inspirada em Ruby e Python;

• Parênteses opcionais;

message = 'Hello World'sayHello message

Saturday, January 19, 13

2-Impõe boas práticas de JS• Escopos fechados;

• Previne “global namespace flooding”;

(function() { var sayHello; sayHello = function(message) { return console.log(message); }; sayHello('Hello World'); }).call(this);

sayHello = (message) -> console.log message sayHello 'Hello World'

Saturday, January 19, 13

3-Fat Arrow• Workarounds imbutidos;

var coffee = { isFull: true, watchDrink: function(){ var that = this; $('.drink a').on('click', function(){ that.isFull = false; }); }}

coffee = isFull: true watchDrink: -> $('.drink a').on 'click', => @isFull = false

Saturday, January 19, 13

4-Interpolação de strings• Chega de + + + +

name = 'John Doe'console.log "Hi, my name is #{name}"

var name = 'John Doe';console.log("Hi, my name is " + "name")

Saturday, January 19, 13

5-List Comprehensions

var names = ['Foo', 'Bar', 'Baz']; for(var i=0; i < names.length; i++){ console.log(names[i]);}

names = ['Foo', 'Bar', 'Baz']console.log(name) for name in names

Saturday, January 19, 13

6-Modificadores Condicionais

allowEntrance() unless age < 21allowEntrance() if age >= 21

if(age > 21) { allowEntrance()}if(age >= 21) { allowEntrance()}

Saturday, January 19, 13

7-Classes

class Coffee constructor: (@name) -> brew: -> console.log 'Brewing' description: -> console.log "Coffee is #{@name}"

frenchCoffee = new Coffee('French')frenchCoffee.description # Coffee is French

Saturday, January 19, 13

8-Uma visão do futuro

• Suporte de Brendan Eich;

• @ e => no JS;

Saturday, January 19, 13

9-Aceitação da comunidade

• Rails >= 3.1;

• Python & PHP;

• Unit Testing frameworks;

Saturday, January 19, 13

Contato

• pessoal: lukasalexandre@me.com

• profissional: lukas@codelogic.me

• http://github.com/lukasalexandre

Saturday, January 19, 13

Perguntas?

Saturday, January 19, 13