Daj się wyręczyć

50
DAJ SIĘ WYRĘCZYĆ Tomasz Dziuda WordUp Kraków Wiosna@2014

description

Moja prezentacja o automatyzacji pracy przygotowana na wiosenną edycję WordUp Kraków.

Transcript of Daj się wyręczyć

Page 1: Daj się wyręczyć

DAJ SIĘ WYRĘCZYĆTomasz Dziuda

WordUp Kraków Wiosna@2014

Page 2: Daj się wyręczyć

–Typowy Klient po odkryciu gotowców w projekcie

“Dlaczego chce Pan za to zlecenie X złotych skoro korzysta Pan z gotowego motywu?”

Page 3: Daj się wyręczyć

NIE O TYM JEST TA PREZENTACJA ;-)

Page 4: Daj się wyręczyć

Źródło: (https://twitter.com/iamdevloper/status/458263644628078592)

Page 5: Daj się wyręczyć

ZŁOŻONOŚĆ PROJEKTÓW WWW ROŚNIE

Page 6: Daj się wyręczyć

A CZAS TRWANIA DOBY SIĘ NIE ZMIENIA

Page 7: Daj się wyręczyć

AUTOMATYZACJA?

Page 8: Daj się wyręczyć

AUTOMATYZACJA?

Page 9: Daj się wyręczyć

AUTOMATYZACJA?

Page 10: Daj się wyręczyć

AUTOMATYZACJA?

Page 11: Daj się wyręczyć

CO WARTO ZAUTOMATYZOWAĆ?

Page 12: Daj się wyręczyć

• Powtarzalne czynności

Page 13: Daj się wyręczyć

• Powtarzalne czynności

• Zadania w których łatwo można zaprogramować kolejne etapy

Page 14: Daj się wyręczyć

• Powtarzalne czynności

• Zadania w których łatwo można zaprogramować kolejne etapy

• Warto zwracać uwagę na złożoność i zasobożerność rozwiązania automatycznego

Page 15: Daj się wyręczyć

JAK ŻYĆ AUTOMATYZOWAĆ?

Page 16: Daj się wyręczyć

WYGODNY EDYTOR

Page 17: Daj się wyręczyć

SUBLIME TEXT

Page 18: Daj się wyręczyć

EMMET

ul>li*3>a

<ul> <li><a href=""></a></li> <li><a href=""></a></li> <li><a href=“"></a></li> </ul>

-webkit-box-sizing: ; -moz-box-sizing: ; box-sizing: ;

-box-sizing: ;

Page 19: Daj się wyręczyć

AUTOPREFIXER

Page 20: Daj się wyręczyć

LINTER

Page 21: Daj się wyręczyć

EMMET LIVESTYLE

Page 22: Daj się wyręczyć

LESS PARSER

[brak screena]

On po prostu działa ;-)

Page 23: Daj się wyręczyć

PRZYDATNE WTYCZKIEmmet

(http://emmet.io/)

!Emmet Live Style

(http://livestyle.emmet.io/)

!AutoPrefixer

(https://github.com/sindresorhus/sublime-autoprefixer)

!Linter

(https://github.com/SublimeLinter/SublimeLinter)

!LESS Parser

(https://github.com/timdouglas/sublime-less2css)

Page 24: Daj się wyręczyć

ALTERNATYWY

Codekit (https://incident57.com/codekit/)

!Grunt.js

(http://gruntjs.com/)

!Atom

(https://atom.io/)

!Wypasione IDE ;-)

Page 25: Daj się wyręczyć

SCAFFOLDING

Page 26: Daj się wyręczyć
Page 27: Daj się wyręczyć

$ npm install -g yo generator-wordpress !

$ yo wordpress

Page 28: Daj się wyręczyć
Page 29: Daj się wyręczyć
Page 30: Daj się wyręczyć
Page 31: Daj się wyręczyć

PRZYDATNE GENERATORY

YeoPress (https://github.com/wesleytodd/YeoPress)

!generator-wp-theme

(https://github.com/danielauener/generator-wp-grunted-theme)

!generator-wp-plugin-boilerplate

(https://github.com/thiagolcks/generator-wp-plugin-boilerplate)

Page 32: Daj się wyręczyć

ALTERNATYWY

Brunch (http://brunch.io/)

!!

Loom (https://github.com/rpflorence/loom)

Page 33: Daj się wyręczyć

UNIKANIE NUDNYCH ZADAŃ

Page 34: Daj się wyręczyć
Page 35: Daj się wyręczyć

JAK TO DZIAŁA?• Tworzymy package.json

• Tworzymy Gruntfile.js

• Wchodzimy do katalogu z projektem

• Aktualizujemy wszystkie zależności z package.json poprzez npm install

• Uruchamiamy zadania komendą grunt lub grunt <nazwa_zadania>

Page 36: Daj się wyręczyć

GRUNTFILE.JS

• Funkcja otaczająca

• Konfiguracja grunta i zadań

• Załadowanie wtyczek i zadań

• Definicje własnych zadań (domyślne zadanie ma nazwę “default”)

Page 37: Daj się wyręczyć

module.exports = function(grunt) { grunt.initConfig({ pkg: grunt.file.readJSON('package.json'), uglify: { options: { banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n' }, build: { src: 'src/<%= pkg.name %>.js', dest: 'build/<%= pkg.name %>.min.js' } } }); ! grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.registerTask('default', ['uglify']); };

Page 38: Daj się wyręczyć

PRZYDATNE TASKI• grunt-csscss

• grunt-jsbeautifier

• grunt-cssbeautifier

• grunt-contrib-jshint

• grunt-contrib-less

• Więcej na: http://gruntjs.com/plugins

Page 39: Daj się wyręczyć

ALTERNATYWY

Gulp.js !

(http://gulpjs.com/)

Page 40: Daj się wyręczyć

AUTOMATYCZNE WYKLIKIWANIE

Page 41: Daj się wyręczyć

CASPER.JS

Page 42: Daj się wyręczyć

var casper = require('casper').create({ verbose: true, logLevel: “debug", onError: function(self, m) { console.log('FATAL:' + m); self.exit(); }, viewportSize: { 'width': 1280, 'height': 1024 } });

Page 43: Daj się wyręczyć

casper.start(); !casper.setHttpAuth('admin', ‘demo'); !casper.thenOpen('http://domain.com/administrator/index.php', function() { this.echo('Logged to HTACCESS', 'INFO'); });

Page 44: Daj się wyręczyć

casper.then(function() { this.fill('#form-login', { 'username': 'admin', 'passwd': 'demo' }, true); ! this.captureSelector(‘admin.png', '#main'); }); !casper.run();

Page 45: Daj się wyręczyć

ALTERNATYWY

Phantom.js (http://phantomjs.org/)

!Slimer.js

(http://slimerjs.org/)

!Nightwatch.js

(http://nightwatchjs.org/)

Page 46: Daj się wyręczyć

I WIELE INNYCH SPOSOBÓW

Page 47: Daj się wyręczyć

DLA MIŁOŚNIKÓW KONSOLI

WP-CLI (HTTP://WP-CLI.ORG/)

!

DICTATOR (HTTPS://GITHUB.COM/DANIELBACHHUBER/DICTATOR)

!(HTTP://TORQUEMAG.IO/DIVING-INTO-DICTATOR-A-PROVISIONING-TOOL-FOR-WORDPRESS/)

Page 48: Daj się wyręczyć

TESTY JEDNOSTKOWE

Jak pisać testy jednostkowe dla wtyczek (https://speakerdeck.com/tierra/unit-testing-wordpress-plugins)

!Travis CI

(https://travis-ci.org/)

!QUnit

(http://qunitjs.com/)

Page 49: Daj się wyręczyć

KONTAKT

Lead Developer @ www.gavick.com !@dziudek !http://wp.dziudek.pl !http://zebymniezapomnial.tumblr.com !

Page 50: Daj się wyręczyć

PYTANIA?