19
CoeeSc"pt & Sa Sprachen über Sprachen

CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

CoffeeSc"pt & SassSprachen über Sprachen

Page 2: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Über mich

• Clemens Helm

• Selbständiger Web Application Developer

• Ruby on Rails-Enthusiast

Page 3: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

CoffeeSc"pt & Sass

• CoffeeScript: Besseres JavaScript

• Sass: Besseres CSS

• Keine Interpretation zur Laufzeit

• Blog: http://www.rails-troubles.com/

Page 4: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Sasshttp://sass-lang.com/

Page 5: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Sass

• Erweitert CSS3 (SCSS)

• RubyGem

sass --watch style.scss:style.css

Page 6: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Va"ablen, Berechnun#n und Funktionen

$background-color: #3bbfce;$navigation-background-color: lighten($background-color, 10%);

body { background: $background-color;}

#navigation { background: $navigation-background-color;}

#navigation a:hover { background: $navigation-background-color + #222;}

Page 7: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Nesting#main-nav { float: left; width: 20em; font: { family: sans-serif; size: 1.5em; }

a { color: #333;

&:hover { color: #666; } }}

Page 8: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Mixins@mixin border-radius($radius) { border-radius: $radius; -webkit-border-radius: $radius;}

@mixin button-style { @include border-radius(0.5em); background-color: $button-background; text-decoration: none; border: 1px solid rgba(0,0,0,0.3);}

.button { @include button-style; padding: 0.2em 0.5em; cursor: pointer;}

Page 9: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Selector Inhe"tance.button { @include button-style; padding: 0.2em 0.5em; cursor: pointer;}

.edit-button { @extend .button;

&:before { content: "✎ "; }}

Page 10: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

CoffeeSc"pthttp://jashkenas.github.com/coffee-script/

Page 11: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

CoffeeSc"pt

• Kompiliert zu JavaScript (nicht kompatibel)

• Gute Teile von JavaScript auf einfache Art

coffee --watch --compile experimental.coffee

Page 12: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Funktionen# Definitionsquare = (x) -> x * x

# Aufrufsquare x

# Anonyme Funktionen (z.B. jQuery)$(‘.menu-item’).click () -> console.log ‘you clicked it!’

Page 13: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Objekte

math = root: Math.sqrt square: square cube: (x) -> x * square x

Page 14: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Kon%tionen, Ex&tenz und In'ance-Va"ablen

alert ‘Please log in’ unless @current_user?

Page 15: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Comprehensions & Ran#s

eat food for food in ['toast', 'cheese', 'wine']

# Rangescountdown = (num for num in [10..1])

# ObjectsyearsOld = max: 10, ida: 9, tim: 11ages = for child, age of yearsOld "#{child} is #{age}"

Page 16: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

Classesclass Animal constructor: (@name) -> move: (meters) -> alert @name + " moved #{meters}m."

class Snake extends Animal move: -> alert "Slithering..." super 5

class Horse extends Animal move: -> alert "Galloping..." super 45

sam = new Snake "Sammy the Python"tom = new Horse "Tommy the Palomino"

sam.move()tom.move()

Page 17: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

und noch vieles mehr!

Page 18: CoffeeSc pt & Sa_Sass.pdf · Über mich • Clemens Helm • Selbständiger Web Application Developer • Ruby on Rails-Enthusiast

CoffeeSc"pt & Sass…

• … lösen Probleme, die uns schon immer genervt haben

• … machen Code lesbarer und strukturierter

• … generieren Best-Practices

• … steigern den Spaß am Coden