Building cllctr

Building cllctr

Building a web app seems easy, especially in php. Put everything in the index.php, upload it on a shared host with ftp and you are good to go. There are other ways, though. Use composer, write tests and develop with Vagrant. Have a build tool, use Continuous Deployment and ansible to set up the staging/production servers. All this is shown using the real project cllctr!

Db6218c1b56d64e775eb79ea4f2889dd?s=128

Sebastian

April 17, 2015
Tweet

Transcript

  1. Building cllctr ViennaPHP, 2015 @Sgoettschkes

  2. A confession

  3. I am addicted to learning!

  4. http://pixabay.com/get/6a30de7e80f92ac2e080/1428949744/colored-163805_1280.jpg

  5. Execute! http://pixabay.com/get/07c852119f06b5ba8362/1428949931/suit-673697_1280.jpg

  6. A normal day • Add new feature • Improve existing

    feature • Hunt a bug • Fix this bug • Meetings • Foosball • ...
  7. When do you... • … think about new ways to

    do things? • … improve old solutions? • … test new tools? • … learn?
  8. When do you... • … think about new ways to

    do things? • … improve old solutions? • … test new tools? • … improve?
  9. cllctr

  10. cllctr

  11. cllctr

  12. The stack • PHP & Javascript & CSS & HTML

    • MongoDB & redis • Nginx & php-fpm • Linux (Debian)
  13. PHP symfony/symfony

  14. PHP doctrine/mongodb-odm (MongoDB)

  15. PHP snc/redis-bundle

  16. PHP plumphp/plum

  17. PHP league/commonmark

  18. PHP phing/phing

  19. PHP phpunit/phpunit

  20. PHP phploc, phplint, phpmd, php-cs-fixer, ...

  21. Javascript npm (package manager for frontend packages)

  22. Javascript grunt (“phing for nodejs”)

  23. Javascript jQuery + modernizr (not ideal, but a good start)

  24. Javascript uglifyjs, imagemin (not ideal, but a good start)

  25. Css Sass

  26. Css Zurb Foundation (like Bootstrap)

  27. MongoDB Schema-less document store

  28. redis In-Memory Key/Value Store

  29. Nginx + php-fpm or Apache + mod-php

  30. Debian Stable, well-known, “easy”

  31. “DevOps” Vagrant (shareable dev environment)

  32. “DevOps” ansible (Server provisioning for developers)

  33. “DevOps” CodeShip (Continous Deployment as a Service)

  34. “DevOps” GitHub

  35. Operations DigitalOcean Monitory Dead Mans Snitch WebPageTest

  36. Mindset Clean Code

  37. Mindset Testing

  38. Mindset Improving

  39. Mindset Fuck it, ship it! (Done is better than perfect)

  40. Mindset One step … to local development env … to

    build … to deploy
  41. Mindset Have fun!

  42. Look at the code: https://github.com/agileaddicts/cllctr https://github.com/agileaddicts/ansible-playbooks

  43. Read more: http://sgoettschkes.me/p/developing-cllctr.html

  44. Thanks!