Your SlideShare is downloading. ×
  • Like
Daj się wyręczyć
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Daj się wyręczyć

  • 301 views
Published

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

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

Published in Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
301
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
2
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. DAJ SIĘ WYRĘCZYĆ Tomasz Dziuda WordUp Kraków Wiosna@2014
  • 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. NIE O TYM JEST TA PREZENTACJA ;-)
  • 4. Źródło: (https://twitter.com/iamdevloper/status/458263644628078592)
  • 5. ZŁOŻONOŚĆ PROJEKTÓW WWW ROŚNIE
  • 6. A CZAS TRWANIA DOBY SIĘ NIE ZMIENIA
  • 7. AUTOMATYZACJA?
  • 8. AUTOMATYZACJA?
  • 9. AUTOMATYZACJA?
  • 10. AUTOMATYZACJA?
  • 11. CO WARTO ZAUTOMATYZOWAĆ?
  • 12. • Powtarzalne czynności
  • 13. • Powtarzalne czynności • Zadania w których łatwo można zaprogramować kolejne etapy
  • 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. JAK ŻYĆ AUTOMATYZOWAĆ?
  • 16. WYGODNY EDYTOR
  • 17. SUBLIME TEXT
  • 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. AUTOPREFIXER
  • 20. LINTER
  • 21. EMMET LIVESTYLE
  • 22. LESS PARSER [brak screena] On po prostu działa ;-)
  • 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. ALTERNATYWY Codekit (https://incident57.com/codekit/) ! Grunt.js (http://gruntjs.com/) ! Atom (https://atom.io/) ! Wypasione IDE ;-)
  • 25. SCAFFOLDING
  • 26. $ npm install -g yo generator-wordpress ! $ yo wordpress
  • 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. ALTERNATYWY Brunch (http://brunch.io/) ! ! Loom (https://github.com/rpflorence/loom)
  • 29. UNIKANIE NUDNYCH ZADAŃ
  • 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. 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. 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. PRZYDATNE TASKI • grunt-csscss • grunt-jsbeautifier • grunt-cssbeautifier • grunt-contrib-jshint • grunt-contrib-less • Więcej na: http://gruntjs.com/plugins
  • 34. ALTERNATYWY Gulp.js ! (http://gulpjs.com/)
  • 35. AUTOMATYCZNE WYKLIKIWANIE
  • 36. CASPER.JS
  • 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. casper.start(); ! casper.setHttpAuth('admin',‘demo'); ! casper.thenOpen('http://domain.com/administrator/index.php', function() { this.echo('Logged to HTACCESS', 'INFO'); });
  • 39. casper.then(function() { this.fill('#form-login', { 'username': 'admin', 'passwd': 'demo' }, true); ! this.captureSelector(‘admin.png', '#main'); }); ! casper.run();
  • 40. ALTERNATYWY Phantom.js (http://phantomjs.org/) ! Slimer.js (http://slimerjs.org/) ! Nightwatch.js (http://nightwatchjs.org/)
  • 41. I WIELE INNYCH SPOSOBÓW
  • 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. 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. KONTAKT Lead Developer @ www.gavick.com ! @dziudek ! http://wp.dziudek.pl ! http://zebymniezapomnial.tumblr.com !
  • 45. PYTANIA?