Osztályozzunk!

  • 467 views
Uploaded on

Budapest.JS előadás, 2013.01.14. …

Budapest.JS előadás, 2013.01.14.
Egy egyszerű osztály létrehozása CoffeeScriptben és TypeScripben (és a JavaScript megfelelőjének összehasonlítása).

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
467
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Osztályozzunk! (***Script demo)Farkas MátéBudapest.js, 2013. január 14.
  • 2. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982)
  • 3. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982) Mi eltökélt JavaScript programozók vagyunk!
  • 4. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982) Mi eltökélt JavaScript programozók vagyunk?
  • 5. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982) Mi eltökélt JavaScript programozók vagyunk? Miről lesz szó?
  • 6. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982) Mi eltökélt JavaScript programozók vagyunk? Miről lesz szó? Dart
  • 7. Eltökélten… „The determined Real Programmer can write FORTRAN programs in any language.” (Ed Post, Real Programmers Dont Use Pascal, 1982) Mi eltökélt JavaScript programozók vagyunk? Miről lesz szó? Dart, CoffeeScript, TypeScript
  • 8. Az eszközök bemutatása Néhány szót a demóban használt nyelvekről:
  • 9. Az eszközök bemutatása Néhány szót a demóban használt nyelvekről: CoffeeScript: The golden rule of CoffeeScript is: "Its just JavaScript".
  • 10. Az eszközök bemutatása Néhány szót a demóban használt nyelvekről: CoffeeScript: The golden rule of CoffeeScript is: "Its just JavaScript". TypeScript: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript.
  • 11. Az eszközök bemutatása Néhány szót a demóban használt nyelvekről: CoffeeScript: The golden rule of CoffeeScript is: "Its just JavaScript". TypeScript: TypeScript is a typed superset of JavaScript that compiles to plain JavaScript. TypeScript offers classes, modules, and interfaces to help you build robust components.
  • 12. „Üdvözlő program egység” A feladat: egy üdvözlést végző program egység elkészítése. Első kör: az egységet az üdvözlés szövegével inicializáljuk, majd megadhatjuk, hogy milyen nevet üdvözöljön. Második kör: az előzőt szeretnénk tovább- fejleszteni úgy, hogy előre meg kelljen adni a neveket, amiket adott hívásra üdvözölni fog.
  • 13. DEMO DEMO https://gist.github.com/4537998
  • 14. CoffeeScript vs. TypeScript CoffeeScript TypeScriptclass Greeter class Greeter { constructor: (@greeting) -> constructor(public greeting: string) {} greet: (name) -> greet(name: string) { console.log @greeting + name console.log(this.greeting + name); } }class AllGreeter extends Greeter class AllGreeter extends Greeter { constructor: (greeting, @names) -> constructor(greeting: string, super greeting public names : string[]) { super(greeting) } greetAll: () -> greetAll() { @names.forEach (name) => this.names.forEach((name) => { @greet(name) this.greet(name); }); } }
  • 15. Generated JavaScripts
  • 16. CoffeeScript vs. JavaScript CoffeeScript JavaScriptclass Greeter var AllGreeter, Greeter, constructor: (@greeting) -> __hasProp = {}.hasOwnProperty, __extends = function(child, parent) { for (var key in parent) { if greet: (name) -> (__hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = console.log @greeting + name new ctor(); child.__super__ = parent.prototype; return child; };class AllGreeter extends Greeter Greeter = (function() { constructor: (greeting, @names) -> function Greeter(greeting) { super greeting this.greeting = greeting; } greetAll: () -> @names.forEach (name) => Greeter.prototype.greet = function(name) { @greet(name) return console.log(this.greeting + name); }; return Greeter; })(); AllGreeter = (function(_super) { __extends(AllGreeter, _super); function AllGreeter(greeting, names) { this.names = names; AllGreeter.__super__.constructor.call(this, greeting); } AllGreeter.prototype.greetAll = function() { var _this = this; return this.names.forEach(function(name) { return _this.greet(name); }); }; return AllGreeter; })(Greeter);
  • 17. Folytatjuk…Farkas MátéBudapest.js, 2013. január 14.
  • 18. LinksAz előadó: • http://farkas-mate.hu/ • http://virtual-call-center.eu/Amikről szó volt: • http://coffeescript.org/ • http://www.typescriptlang.org/