Transcript
Page 1: Coffeescript - what's good

CoffeeScript

2010.10.10Outsider����������� ������������������  at����������� ������������������  FRENDS

What’s good?

Page 2: Coffeescript - what's good

“CoffeeScript����������� ������������������  is����������� ������������������  Beautiful&����������� ������������������  I����������� ������������������  Never����������� ������������������  Want����������� ������������������  to����������� ������������������  Write����������� ������������������  Plain����������� ������������������  

JavaScript����������� ������������������  Again

”Sam����������� ������������������  Stephenson

(prototype.js����������� ������������������  creator)

Page 3: Coffeescript - what's good

좋은����������� ������������������  것과익숙하지����������� ������������������  않은����������� ������������������  것을구별하기가쉽지����������� ������������������  않다.

Page 4: Coffeescript - what's good

ComparingJavaScript����������� ������������������  &����������� ������������������  CoffeeScript

Page 5: Coffeescript - what's good

Function����������� ������������������  Syntax

Page 6: Coffeescript - what's good

$("a").click(function(event)����������� ������������������  {����������� ������������������  ����������� ������������������  $(this).addClass("busy");})

Page 7: Coffeescript - what's good

$("a").click(function(event)����������� ������������������  {����������� ������������������  ����������� ������������������  $(this).addClass����������� ������������������  "busy"})

Page 8: Coffeescript - what's good

$("a").click(function(event)����������� ������������������  {����������� ������������������  ����������� ������������������  $(@).addClass����������� ������������������  "busy"})

Page 9: Coffeescript - what's good

$("a").click����������� ������������������  (event)����������� ������������������  ->����������� ������������������  ����������� ������������������  $(@).addClass����������� ������������������  "busy"

Page 10: Coffeescript - what's good

Loop����������� ������������������  Syntax

Page 11: Coffeescript - what's good

var����������� ������������������  data����������� ������������������  =����������� ������������������  [];for����������� ������������������  (var����������� ������������������  i����������� ������������������  =����������� ������������������  0;����������� ������������������  i����������� ������������������  <����������� ������������������  84;����������� ������������������  i++)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  data.push(i����������� ������������������  *����������� ������������������  10����������� ������������������  /����������� ������������������  84);}

Page 12: Coffeescript - what's good

data����������� ������������������  =����������� ������������������  []for����������� ������������������  i����������� ������������������  in����������� ������������������  [0..83]����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  data.push(i����������� ������������������  *����������� ������������������  10����������� ������������������  /����������� ������������������  84)

Page 13: Coffeescript - what's good

data����������� ������������������  =����������� ������������������  []data����������� ������������������  =����������� ������������������  i����������� ������������������  *����������� ������������������  10����������� ������������������  /����������� ������������������  84����������� ������������������  for����������� ������������������  i����������� ������������������  in����������� ������������������  [0..83]

Page 14: Coffeescript - what's good

data����������� ������������������  =����������� ������������������  i����������� ������������������  *����������� ������������������  10����������� ������������������  /����������� ������������������  84����������� ������������������  for����������� ������������������  i����������� ������������������  in����������� ������������������  [0..83]

Page 15: Coffeescript - what's good

List����������� ������������������  Comprehensions

Page 16: Coffeescript - what's good

init_board:����������� ������������������  function()����������� ������������������  {����������� ������������������  ����������� ������������������  this.board����������� ������������������  =����������� ������������������  new����������� ������������������  Array(WIDTH);����������� ������������������  ����������� ������������������  for����������� ������������������  (var����������� ������������������  x����������� ������������������  =����������� ������������������  0;����������� ������������������  x����������� ������������������  <����������� ������������������  this.board.length;����������� ������������������  x++)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x]����������� ������������������  =����������� ������������������  new����������� ������������������  Array(HEIGHT)����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  for����������� ������������������  (var����������� ������������������  y����������� ������������������  =����������� ������������������  0;����������� ������������������  y����������� ������������������  <����������� ������������������  this.board[x].length;����������� ������������������  y++)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x][y]����������� ������������������  =����������� ������������������  false;����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  }����������� ������������������  ����������� ������������������  }}

Page 17: Coffeescript - what's good

init_board:����������� ������������������  ->����������� ������������������  ����������� ������������������  this.board����������� ������������������  =����������� ������������������  new����������� ������������������  Array(WIDTH)����������� ������������������  ����������� ������������������  for����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  x����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  in����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x]����������� ������������������  =����������� ������������������  new����������� ������������������  Array(HEIGHT)����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  for����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  y����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  in����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x]����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x][y]����������� ������������������  =����������� ������������������  false����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 18: Coffeescript - what's good

init_board:����������� ������������������  ->����������� ������������������  ����������� ������������������  @board����������� ������������������  =����������� ������������������  for����������� ������������������  x����������� ������������������  in����������� ������������������  [0...WIDTH]

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x]����������� ������������������  =����������� ������������������  new����������� ������������������  Array(HEIGHT)����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  for����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  y����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  in����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x]����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  this.board[x][y]����������� ������������������  =����������� ������������������  false����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 19: Coffeescript - what's good

init_board:����������� ������������������  ->����������� ������������������  ����������� ������������������  @board����������� ������������������  =����������� ������������������  for����������� ������������������  x����������� ������������������  in����������� ������������������  [0...WIDTH]

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  for����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  y����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  in����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  [0...HEIGHT]����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  false����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 20: Coffeescript - what's good

init_board:����������� ������������������  ->����������� ������������������  ����������� ������������������  @board����������� ������������������  =����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (false����������� ������������������  for����������� ������������������  y����������� ������������������  in����������� ������������������  [0...����������� ������������������  HEIGHT]����������� ������������������  for����������� ������������������  x����������� ������������������  in����������� ������������������  [0...WIDTH])

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 21: Coffeescript - what's good

Setting����������� ������������������  Fields

Page 22: Coffeescript - what's good

constructor:����������� ������������������  function(keys,����������� ������������������  tokens)����������� ������������������  {����������� ������������������  ����������� ������������������  this.keys����������� ������������������  =����������� ������������������  keys;����������� ������������������  ����������� ������������������  this.tokens����������� ������������������  =����������� ������������������  tokens;}

Page 23: Coffeescript - what's good

constructor:����������� ������������������  (keys,����������� ������������������  tokens)����������� ������������������  ->����������� ������������������  ����������� ������������������  this.keys����������� ������������������  =����������� ������������������  keys����������� ������������������  ����������� ������������������  this.tokens����������� ������������������  =����������� ������������������  tokens

Page 24: Coffeescript - what's good

constructor:����������� ������������������  (keys,����������� ������������������  tokens)����������� ������������������  ->����������� ������������������  ����������� ������������������  @keys����������� ������������������  =����������� ������������������  keys����������� ������������������  ����������� ������������������  @tokens����������� ������������������  =����������� ������������������  tokens

Page 25: Coffeescript - what's good

constructor:����������� ������������������  (@keys,����������� ������������������  @tokens)����������� ������������������  ->

Page 26: Coffeescript - what's good

Defensive����������� ������������������  Programming

Page 27: Coffeescript - what's good

var����������� ������������������  country����������� ������������������  =����������� ������������������  null;if����������� ������������������  (typeof����������� ������������������  model����������� ������������������  !==����������� ������������������  ����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  typeof����������� ������������������  model.profile����������� ������������������  ===����������� ������������������  'function')����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  var����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile();

����������� ������������������  ����������� ������������������  if����������� ������������������  (profile����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  profile.location����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  profile.location.country)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile.location.country.toString();����������� ������������������  ����������� ������������������  }}

Page 28: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  nullif����������� ������������������  ����������� ������������������  typeof����������� ������������������  model����������� ������������������  isnt����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  typeof����������� ������������������  model.profile����������� ������������������  is����������� ������������������  ����������� ������������������  'function'����������� ������������������  ����������� ������������������  ����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile()

����������� ������������������  ����������� ������������������  if����������� ������������������  ����������� ������������������  profile����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  profile.location����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  profile.location.country����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile.location.country.toString()����������� ������������������  ����������� ������������������  

Page 29: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  nullif����������� ������������������  ����������� ������������������  typeof����������� ������������������  model����������� ������������������  isnt����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  typeof����������� ������������������  model.profile����������� ������������������  is����������� ������������������  ����������� ������������������  'function'����������� ������������������  ����������� ������������������  ����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile()

����������� ������������������  ����������� ������������������  if����������� ������������������  ����������� ������������������  profile����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  profile.location

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile.location.country?.toString()����������� ������������������  ����������� ������������������  

Page 30: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  nullif����������� ������������������  ����������� ������������������  typeof����������� ������������������  model����������� ������������������  isnt����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  typeof����������� ������������������  model.profile����������� ������������������  is����������� ������������������  ����������� ������������������  'function'����������� ������������������  ����������� ������������������  ����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile()

����������� ������������������  ����������� ������������������  if����������� ������������������  ����������� ������������������  profile����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile.location?.country?.toString()����������� ������������������  ����������� ������������������  

Page 31: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  nullif����������� ������������������  ����������� ������������������  typeof����������� ������������������  model����������� ������������������  isnt����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  typeof����������� ������������������  model.profile����������� ������������������  is����������� ������������������  ����������� ������������������  'function'����������� ������������������  ����������� ������������������  ����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile()

����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile?.location?.country?.toString()����������� ������������������  ����������� ������������������  

Page 32: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  nullif����������� ������������������  ����������� ������������������  typeof����������� ������������������  model����������� ������������������  isnt����������� ������������������  'undefined'����������� ������������������  &&����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  model����������� ������������������  &&����������� ������������������  

����������� ������������������  ����������� ������������������  ����������� ������������������  profile����������� ������������������  =����������� ������������������  model.profile?()?

����������� ������������������  ����������� ������������������  country����������� ������������������  =����������� ������������������  profile?.location?.country?.toString()����������� ������������������  ����������� ������������������  

Page 33: Coffeescript - what's good

country����������� ������������������  =����������� ������������������  null

����������� ������������������  profile����������� ������������������  =����������� ������������������  model?.profile?()?

country����������� ������������������  =����������� ������������������  profile?.location?.country?.toString()����������� ������������������  ����������� ������������������  

Page 34: Coffeescript - what's good

����������� ������������������  profile����������� ������������������  =����������� ������������������  model?.profile?()?

country����������� ������������������  =����������� ������������������  profile?.location?.country?.toString()����������� ������������������  ����������� ������������������  

Page 35: Coffeescript - what's good

����������� ������������������  profile����������� ������������������  =����������� ������������������  model?.profile?()?

country����������� ������������������  =����������� ������������������  profile����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ?.location?.country?.toString()

Page 36: Coffeescript - what's good

����������� ������������������  

country����������� ������������������  =����������� ������������������  model?.profile?()����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ?.location?.country?.toString()

Page 37: Coffeescript - what's good

Bare����������� ������������������  Objects

Page 38: Coffeescript - what's good

$.ajax({����������� ������������������  ����������� ������������������  url:����������� ������������������  path,����������� ������������������  ����������� ������������������  timeout:����������� ������������������  5,����������� ������������������  ����������� ������������������  data:����������� ������������������  {from:����������� ������������������  "workspace"},

����������� ������������������  ����������� ������������������  dataType:����������� ������������������  "html",����������� ������������������  ����������� ������������������  success:����������� ������������������  function(data)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  return����������� ������������������  $("#result").html(data);����������� ������������������  ����������� ������������������  }});

Page 39: Coffeescript - what's good

$.ajax({����������� ������������������  ����������� ������������������  url:����������� ������������������  path,����������� ������������������  ����������� ������������������  timeout:����������� ������������������  5,����������� ������������������  ����������� ������������������  data:����������� ������������������  {from:����������� ������������������  "workspace"},

����������� ������������������  ����������� ������������������  dataType:����������� ������������������  "html",����������� ������������������  ����������� ������������������  success:����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  ->����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  return����������� ������������������  $("#result").html(data)����������� ������������������  ����������� ������������������  })

Page 40: Coffeescript - what's good

$.ajax����������� ������������������  {����������� ������������������  ����������� ������������������  url:����������� ������������������  path����������� ������������������  ����������� ������������������  timeout:����������� ������������������  5����������� ������������������  ����������� ������������������  data:����������� ������������������  {from:����������� ������������������  "workspace"}

����������� ������������������  ����������� ������������������  dataType:����������� ������������������  "html"����������� ������������������  ����������� ������������������  success:����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  ->����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $("#result").html����������� ������������������  data����������� ������������������  ����������� ������������������  }

Page 41: Coffeescript - what's good

$.ajax����������� ������������������  ����������� ������������������  ����������� ������������������  url:����������� ������������������  path����������� ������������������  ����������� ������������������  timeout:����������� ������������������  5����������� ������������������  ����������� ������������������  data:����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  from:����������� ������������������  "workspace"����������� ������������������  ����������� ������������������  dataType:����������� ������������������  "html"����������� ������������������  ����������� ������������������  success:����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  ->����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $("#result").html����������� ������������������  data����������� ������������������  ����������� ������������������  

Page 42: Coffeescript - what's good

Function����������� ������������������  Binding

Page 43: Coffeescript - what's good

function����������� ������������������  request����������� ������������������  ()����������� ������������������  {����������� ������������������  ����������� ������������������  $.get(this.person.url,����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (function(data)����������� ������������������  {����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $(this.el).html(data);����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  }).bind(this)����������� ������������������  ����������� ������������������  )}

Page 44: Coffeescript - what's good

request����������� ������������������  =����������� ������������������  ()����������� ������������������  ->����������� ������������������  ����������� ������������������  $.get(this.person.url,����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  ->����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $(this.el).html(data);����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ).bind(this)����������� ������������������  ����������� ������������������  )

Page 45: Coffeescript - what's good

request����������� ������������������  =����������� ������������������  ()����������� ������������������  ->����������� ������������������  ����������� ������������������  $.get(this.person.url,����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  ->����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $(����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  @el).html����������� ������������������  data����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ).bind(@)����������� ������������������  ����������� ������������������  )

Page 46: Coffeescript - what's good

request����������� ������������������  =����������� ������������������  ()����������� ������������������  ->����������� ������������������  ����������� ������������������  $.get(this.person.url,����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  =>����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $(@el).html����������� ������������������  data����������� ������������������  ����������� ������������������  ����������� ������������������  )

Page 47: Coffeescript - what's good

request����������� ������������������  =����������� ������������������  ()����������� ������������������  ->����������� ������������������  ����������� ������������������  $.get����������� ������������������  this.person.url,����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  (data)����������� ������������������  =>����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  ����������� ������������������  $(@el).html����������� ������������������  data����������� ������������������  ����������� ������������������  ����������� ������������������  

Page 48: Coffeescript - what's good

Bad����������� ������������������  Things

Page 49: Coffeescript - what's good

Compileis����������� ������������������  

inconvenience

Page 50: Coffeescript - what's good

Debuggingis

hard

Page 51: Coffeescript - what's good

ButIt’s����������� ������������������  Coming

Page 52: Coffeescript - what's good

Short����������� ������������������  SourceMap����������� ������������������  Demo

http://www.youtube.com/watch?v=UAGAB-yT0lQ

Page 53: Coffeescript - what's good

Tools����������� ������������������  for����������� ������������������  CoffeeScript

Page 54: Coffeescript - what's good

js2coffeeconvert����������� ������������������  JavaScript����������� ������������������  to����������� ������������������  CoffeeScript

http://js2coffee.org/

Page 55: Coffeescript - what's good

CoffeeTableBookmarklet����������� ������������������  for����������� ������������������  CoffeeScript����������� ������������������  Console

http://code.alecperkins.net/coffeetable/

Page 56: Coffeescript - what's good

cakeSimple����������� ������������������  Build����������� ������������������  System����������� ������������������  like����������� ������������������  Make

https://github.com/jashkenas/coffee-script/wiki/[HowTo]-Compiling-and-Setting-Up-Build-Tools

Page 57: Coffeescript - what's good

CoffeeKupMarkup����������� ������������������  as����������� ������������������  CoffeeScript

http://coffeekup.org/

Page 58: Coffeescript - what's good

Thank����������� ������������������  you.

@[email protected]

http://blog.outsider.ne.kr