Post on 21-Jun-2015
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
10-Ótimas fontes de aprendizado
• http://coffeescript.org
• http://coffeescriptcookbook.com
• http://www.codeschool.com/courses/coffeescript
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
Referências• http://www.netmagazine.com/features/10-
good-reasons-use-coffeescript
Saturday, January 19, 13