Your SlideShare is downloading. ×
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Develconf coffeescript
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Develconf coffeescript

1,238

Published on

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,238
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
2
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. NSFW!Prezentace obsahuje sprostá slova
  • 2. • Syntaktický cukr• Čitelný kód• Strukturování kódu odsazením FUJ!
  • 3. Pochybuji, ţe se CoffeeScript ujme. Vlastněnepochybuji, jsem si zcela jist, neujme se, protoţeekosystém. Široká audience nikdy CoffeeScriptnepřijme, protoţe nejsou příklady, nejsoueditory, nejsou code syntax highlightery, nejsoudebuggery, nejsou přátelé na IM, prostě CoffeeScriptje v ekosystému RIA aplikací vetřelec. Syntax prorychlejší a přehlednější psaní js není to podstatné, ačjsem si sám dlouho myslel opak, co rozhoduje. Jesmutné, kdyţ někdo investuje svůj čas doreimplementace ko­la…DANIEL STEIGERWALD, 5.12.2010
  • 4. Coffeescript je především krásný. Nejde jen o toušetřit si pár znaků při psaní kódu, ale hlavně ulevitočím při jeho čtení. Coffeescript je chytrý. Je tuelegantní a strohá definice třídy, skrze klíčovéslovo class. Ţe všechno je v Coffeescriptu výraz.A ţe uţ nikdy nemusím přemýšlet, zdali iterovatpomocí for in, nebo $.each. A nikdy uţ volat bind jenproto, ţe chci uţít closure a zachovat this.Pouţitelné nástroje existují, a kaţdý den se rodínové. (…)DANIEL STEIGERWALD, 19.8.2011
  • 5. SYNTAX
  • 6. FUNKCE ->dvojmoc = (x) -> x * xsoucet = (xs) -> r = 0 (r = r + x) for x in xs rconsole.log dvojmoc 5console.log soucet [1, 3, 3, 7]
  • 7. PROMĚNNÉ BEZ VARvnejsi = 1funkce = -> vnitrni = 2 vnejsi = 3vnitrni = funkce()
  • 8. ŘETĚZCE"Třikrát pět je #{3 * 5}" //vyčíslíTřikrát pět je #{3 * 5} //nevyčíslíhtml = <strong> CoffeeScript! </strong>
  • 9. POLE A OBJEKTYznalosti = php: uroven: "pokrocily" praxe: 8 html: uroven: "zacatecnik" praxe: 3
  • 10. PODMÍNKY – IF, UNLESSif zima then zatop()if zima zatop()zatop() if zimazatop() unless teplokotel = if teplo then "off" else "on"optimum = 18 < teplota < 23
  • 11. PODMÍNĚNÉ PŘIŘAZENÍoptions or= defaults//JS: options || (options = defaults);unless odpoved? then odpoved = 42//JS:if (typeof odpoved === "undefined" ||odpoved === null) { odpoved = 42;}
  • 12. CYKLYwhile not file.EOF read fileread file until file.EOFradky = readln file until file.EOF
  • 13. VŠE JE VÝRAZ!radky = readln file until file.EOFkotel = if teplo then "off" else "on"dvojmoc = (x) -> x*xdvojmoci = (dvojmoc(x) for x in [1..5])
  • 14. SMYČKA FORdvojmoci = (dvojmoc(x) for x in [1..5])for jmeno in jmena alert jmenoalert property for property of windowalert (property for property of window)for key, value of databasefor all key, value of database
  • 15. ROZSAHY [..][1..5]  [1, 2, 3, 4, 5][1...5]  [1, 2, 3, 4][5..1]  [5, 4, 3, 2, 1][1..100]  iterační funkce
  • 16. VÝPUSTKA (SPLAT) …fn = (a, b...) -> čňčňčňčňfn 10, 20, 30, 40 // a=10, b=[20, 30, 40]fn = (a, b..., c) -> čňčňčňčňfn 10, 20, 30, 40 // a=10, b=[20, 30], c=40par = [10,20,30,40]fn par // a=[10,20,30,40]fn par... // a=10, b=[20, 30], c=40
  • 17. DESTRUKTUROVANÉ PŘIŘAZENÍmiry = -> [90, 60, 90][prsa, pas, boky] = miry()[a, b] = [b, a]pole = [3,1,4,1,5][prvni, telo..., posledni] = pole
  • 18. TŘÍDY
  • 19. TŘÍDAclass Prednasejici honorar: 0 _wtf: trueja = new Prednasejicialert ja.honorar
  • 20. KONSTRUKTORclass Prednasejici constructor: (jmeno) -> this.jmeno=jmeno honorar: 0ja = new Prednasejici("Martin")alert ja.jmeno
  • 21. @PROPERTYclass Prednasejici constructor: (jmeno) -> @jmeno=jmeno honorar: 0ja = new Prednasejici("Martin")alert ja.jmeno
  • 22. @PROPERTY, VOL. 2class Prednasejici constructor: (@jmeno) -> honorar: 0ja = new Prednasejici("Martin")alert ja.jmeno
  • 23. DĚDIČNOSTclass DrzyPrednasejici extends Prednasejici honorar: "Jidlo"ja = new DrzyPrednasejici("Martin")alert ja.honorar
  • 24. PŘÍSTUP K PROTOTYPU ::Array::map = -> čňčňčň
  • 25. PRO A PROTI
  • 26. PROBLÉMYVýznamotvorná mezeraprefix = "prvek_"id1 = prefix + 12 /// == prvek_12id2 = prefix +12 /// TypeError id2 = prefix(+12)
  • 27. PROBLÉMYAsociativita operátorůconsole.log (fn 3, fn 4) console.log (fn (3, fn 4))console.log fn (3), fn (4)
  • 28. PROBLÉMYPorovnání je vždy typovévar a = 0, b = , c = 0;a == b; // truea == c; // trueb == c; // falseCoffeeScript překládá == na ===
  • 29. „A TO JE VŠECHNO?“ VOL. 1Interaktivní konzole na coffeescript.orgDialekty – Iced CoffeeScript (await, defer)CoffeeScript Redux – „source maps“Pluginy pro editoryKnihovnytranspilery
  • 30. „A TO JE VŠECHNO?“ VOL. 2Čistý kódSprávné JS konstrukceRobustní JS kód (vč. JSLint)Čitelný kód
  • 31. „A TO JE VŠECHNO?“ BONUS„Literate CoffeeScript“ (od verze 1.5)Zápis kódu do dokumentu v Markdown – kód jesoučást svojí dokumentace
  • 32. MATERIÁL KE STUDIU: UTFG!

×