riki fridrich - grunt, gulp a spol. - automatizáciou k maximalizácii lenivosti

41
Automatizácia vývoja

Upload: develcz

Post on 19-Aug-2014

2.883 views

Category:

Engineering


6 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Automatizácia vývoja

Page 2: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 3: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Kompilácia

Page 4: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

class Person

constructor: (@name = 'John Doe') -> greet: -> console.log "Hi! My name is #{@name}"

1. CoffeeScript

Page 5: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2. ???

Page 6: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

var Person;

Person = (function() { function Person(name) { this.name = name != null ? name : 'John Doe'; }

Person.prototype.greet = function() { return console.log("Hi! My name is " + this.name); };

return Person;

})();

3. Profit!!!

Page 7: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 8: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-contrib-watch' grunt.loadNpmTasks 'grunt-contrib-coffee' grunt.initConfig watch: files: 'coffee/*.coffee' tasks: ['coffee'] coffee: files: 'js/my_project.js': 'coffee/*.coffee'

Gruntfile.coffee

Page 9: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Minifikácia kódu

Page 10: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

var Person;

Person = (function() { function Person(name) { this.name = name != null ? name : 'John Doe'; }

Person.prototype.greet = function() { return console.log("Hi! My name is " + this.name); };

return Person;

})();

1. Neminifikovaný kód

Page 11: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2. ???

Page 12: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

var Person;Person=function(){function e(e){this.name=e!=null?e:"John Doe"}e.prototype.greet=function(){return console.log("Hi! My name is "+this.name)};return e}()

3. Profit!!!

Page 13: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-contrib-uglify' grunt.loadNpmTasks 'grunt-contrib-cssmin' grunt.initConfig uglify: files: 'js/my_project.min.js': 'js/my_project.js'

cssmin: files: 'js/my_project.min.css': 'js/my_project.css'

Gruntfile.coffee

Page 14: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Minifikácia obrázkov

Page 15: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

1. Obrovský obrázok

2500 KB

Page 16: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2. ???

Page 17: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2500 KB => 125 KB

3. Profit!!!

Page 18: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-contrib-imagemin' grunt.initConfig imagemin: files: expand: true cwd: 'originals/' src: '*.{jpg,png,gif}' dest: 'optimized/'

Gruntfile.coffee

Page 19: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-svg2png' grunt.initConfig svg2png: files: src: ‘originals/*.svg' dest: 'images/'

Gruntfile.coffee

Page 20: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks ‘grunt-responsive-images' grunt.initConfig responsive_images: options: sizes: [{width: 320}, {width: 640},{width: 1024}] files: expand: true cwd: 'originals/' src: '*.jpg' dest: 'images/'

Gruntfile.coffee

Page 21: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) -> grunt.loadNpmTasks 'grunt-spritesmith' grunt.initConfig sprite: src: 'originals/icons/*.png', destImg: 'build/sprites.png', destCSS: 'build/sprites.css'

Gruntfile.coffee

Page 22: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Buildovanie

Page 23: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) ->

...

grunt.initConfig watch: files: 'coffee/*.coffee' tasks: ['coffee', 'concat', 'uglify']

1. Pomalý watch

Page 24: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2. ???

Page 25: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

module.exports = (grunt) ->

...

grunt.initConfig watch: files: 'coffee/*.coffee' tasks: ['coffee']

grunt.registerTask 'build', ['coffee', 'concat', 'uglify']

3. Profit!!!

Page 26: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 27: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Každý si postavil devstack.

Kdo říká, že ne, staví ho dodneška.

— Martin Malý

Page 28: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

GIT SUBMODULE

NOT EVEN ONCE

Page 29: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Bower

Page 30: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

// shell

bower install bootstrap --save

1. Potrebujem Bootstrap

Page 31: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

2. ???

Page 32: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

// bower.json

{ "name": "my-project", "version": "0.1.0", "dependencies": { "jquery": "~2.1.1", "bootstrap": "~3.1.1" }}

3. Profit!!!

Page 33: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 34: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 35: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

3.1.4

Page 36: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

TEAMWORK, P✱ČO!

Page 37: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

⇥ versus ···· versus ····

Page 38: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 39: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti
Page 40: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

• kód menej náchylný k chybám

• optimalizovaný kód

• znovupoužiteľný komponentový kód

• open-source

• automatické testy

• zvýšená produktivita…

• …celého teamu

Následky automatizácie

Page 41: Riki Fridrich - Grunt, Gulp a spol. - Automatizáciou k maximalizácii lenivosti

Riki Fridrich, fczbkk.com