Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Daj się wyręczyć

1,336 views

Published on

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

Published in: Technology
  • Be the first to comment

Daj się wyręczyć

  1. 1. DAJ SIĘ WYRĘCZYĆ Tomasz Dziuda WordUp Kraków Wiosna@2014
  2. 2. –Typowy Klient po odkryciu gotowców w projekcie “Dlaczego chce Pan za to zlecenie X złotych skoro korzysta Pan z gotowego motywu?”
  3. 3. NIE O TYM JEST TA PREZENTACJA ;-)
  4. 4. Źródło: (https://twitter.com/iamdevloper/status/458263644628078592)
  5. 5. ZŁOŻONOŚĆ PROJEKTÓW WWW ROŚNIE
  6. 6. A CZAS TRWANIA DOBY SIĘ NIE ZMIENIA
  7. 7. AUTOMATYZACJA?
  8. 8. AUTOMATYZACJA?
  9. 9. AUTOMATYZACJA?
  10. 10. AUTOMATYZACJA?
  11. 11. CO WARTO ZAUTOMATYZOWAĆ?
  12. 12. • Powtarzalne czynności
  13. 13. • Powtarzalne czynności • Zadania w których łatwo można zaprogramować kolejne etapy
  14. 14. • 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
  15. 15. JAK ŻYĆ AUTOMATYZOWAĆ?
  16. 16. WYGODNY EDYTOR
  17. 17. SUBLIME TEXT
  18. 18. 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: ;
  19. 19. AUTOPREFIXER
  20. 20. LINTER
  21. 21. EMMET LIVESTYLE
  22. 22. LESS PARSER [brak screena] On po prostu działa ;-)
  23. 23. PRZYDATNE WTYCZKI Emmet (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)
  24. 24. ALTERNATYWY Codekit (https://incident57.com/codekit/) ! Grunt.js (http://gruntjs.com/) ! Atom (https://atom.io/) ! Wypasione IDE ;-)
  25. 25. SCAFFOLDING
  26. 26. $ npm install -g yo generator-wordpress ! $ yo wordpress
  27. 27. 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)
  28. 28. ALTERNATYWY Brunch (http://brunch.io/) ! ! Loom (https://github.com/rpflorence/loom)
  29. 29. UNIKANIE NUDNYCH ZADAŃ
  30. 30. 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>
  31. 31. GRUNTFILE.JS • Funkcja otaczająca • Konfiguracja grunta i zadań • Załadowanie wtyczek i zadań • Definicje własnych zadań (domyślne zadanie ma nazwę “default”)
  32. 32. 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']); };
  33. 33. PRZYDATNE TASKI • grunt-csscss • grunt-jsbeautifier • grunt-cssbeautifier • grunt-contrib-jshint • grunt-contrib-less • Więcej na: http://gruntjs.com/plugins
  34. 34. ALTERNATYWY Gulp.js ! (http://gulpjs.com/)
  35. 35. AUTOMATYCZNE WYKLIKIWANIE
  36. 36. CASPER.JS
  37. 37. var casper = require('casper').create({ verbose: true, logLevel:“debug", onError: function(self, m) { console.log('FATAL:' + m); self.exit(); }, viewportSize: { 'width': 1280, 'height': 1024 } });
  38. 38. casper.start(); ! casper.setHttpAuth('admin',‘demo'); ! casper.thenOpen('http://domain.com/administrator/index.php', function() { this.echo('Logged to HTACCESS', 'INFO'); });
  39. 39. casper.then(function() { this.fill('#form-login', { 'username': 'admin', 'passwd': 'demo' }, true); ! this.captureSelector(‘admin.png', '#main'); }); ! casper.run();
  40. 40. ALTERNATYWY Phantom.js (http://phantomjs.org/) ! Slimer.js (http://slimerjs.org/) ! Nightwatch.js (http://nightwatchjs.org/)
  41. 41. I WIELE INNYCH SPOSOBÓW
  42. 42. 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/)
  43. 43. 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/)
  44. 44. KONTAKT Lead Developer @ www.gavick.com ! @dziudek ! http://wp.dziudek.pl ! http://zebymniezapomnial.tumblr.com !
  45. 45. PYTANIA?

×