Next Generation Joomla!

1,106 views

Published on

Presentation at J & Beyond conference, May 30 2014. Looking outside the Joomlasphere to get some inspiration about techniques to build better software, including Agile, DDD, TDD, BDD, Behat, Doctrine ORM, DCI, CQRS, Client-side MVC etc.

Video of presentation on https://www.youtube.com/watch?v=-6u4aUvCTx4

Published in: Software, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,106
On SlideShare
0
From Embeds
0
Number of Embeds
232
Actions
Shares
0
Downloads
5
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Next Generation Joomla!

  1. 1. Herman Peeren 30 mei 2014, J & Beyond Joomla? The Next Generation
  2. 2. Let’s move to outer space, beyond Joomla!
  3. 3. Developing software not easy
  4. 4. improved a bit over the years:
  5. 5. Waterfall
  6. 6. Waterfall vs Agile iterations (sprints)
  7. 7. Waterfall vs Agile
  8. 8. DDD TDD BDD
  9. 9. Sapir–Whorf hypothesis Linguistic relativity: Structure of a language affects the ways in which its respective speakers conceptualize their world. голубой Wilhelm von Humboldt Franz Boas Edward Sapir
  10. 10. Nelleke Verhoeff, Red Cheeks Factory,
  11. 11. Nelleke Verhoeff, Red Cheeks Factory,
  12. 12. DDD ubiquitous language: using the language of the domain you are modeling
  13. 13. TDD Tests afterwards are boring, I like to create new things!
  14. 14. TDD Tests first!
  15. 15. Some recent TDD critics • architecture destroyed by unit-level-tests • easy to measure doesn’t mean it’s important David Heinemeier Hansson (‘DHH’) http://www.confreaks.com/videos/3315-railsconf-keynote James Coplien (‘Cope’) www.rbcs-us.com/documents/Why-Most-Unit-Testing-is-Waste.pdf “Is TDD dead?”. Four discussions on video with Martin Fowler Kent Beck and DHH http://martinfowler.com/articles/is-tdd-dead/
  16. 16. BDD Dan North http://dannorth.net/introducing-bdd/ Functional testing
  17. 17. Selenium http://docs.seleniumhq.org/
  18. 18. Selenium in PHPUnit http://phpunit.de/manual/current/en/selenium.html Acceptence testing
  19. 19. Behat http://behat.org/
  20. 20. Behat • based on Cucumber (Gherkin language) • given - when - then
  21. 21. Behat: define features steps suggestions
  22. 22. define steps
  23. 23. Mink http://mink.behat.org/
  24. 24. Codeception http://codeception.com/ No Gherkin-language, but PHP (new WebGuy)
  25. 25. Create Read Update Delete
  26. 26. Let’s Create, Read, Update and Delete ... an employee
  27. 27. Create, Read, Update and Delete ... an employee
  28. 28. Create, Read, Update and Delete ... an employee
  29. 29. Create, Read, Update and Delete ... an employee
  30. 30. Create, Read, Update and Delete ... an employee ???
  31. 31. I’d rather Hire or Fire an employee ...
  32. 32. Mapping some knight-objects ... ... to their proper tables
  33. 33. Interfaces to build a CMS JCR & JackRabbit http://en.wikipedia.org/wiki/Content_repository_API_for_Java http://jackrabbit.apache.org/ PHPCR, Jackalope & Midgard2 https://github.com/phpcr/phpcr http://jackalope.github.io/ https://github.com/jackalope/jackalope-doctrine-dbal http://bergie.iki.fi/blog/midgard2_phpcr_provider_hits_1-0/ Symfony CMF http://cmf.symfony.com/ http://docs.doctrine-project.org/projects/doctrine-phpcr-odm/en/latest/
  34. 34. Some NoSQL Document-db: MongoDB http://www.mongodb.org/ https://doctrine-mongodb-odm.readthedocs.org/en/latest/ Graph-db: Neo4j http://www.neo4j.org/develop/php https://github.com/lphuberdeau/Neo4j-PHP-OGM Hybrid graph-document-db: OrientDB http://www.orientechnologies.com/orientdb/ http://www.doctrine-project.org/projects/orientdb-odm.html
  35. 35. CQRS Command Query Responsibility Segregation http://martinfowler.com/bliki/CQRS.html https://github.com/beberlei/litecqrs-php
  36. 36. DCI Data-Context-Interaction To support an object style of thinking that is close to peoples’ mental models, rather than the class style of thinking that overshadowed object thinking early in the history of object-oriented programming languages. http://fulloo.info/Documents/ mailinglist: https://groups.google.com/forum/#!forum/object-composition
  37. 37. for instance: • backbone.js • ember.js • angular.js (not for SEO) Client-side MVC
  38. 38. ??? Herman Peeren http://hermanpeeren.nl herman@yepr.nl

×