What's new in Neos?

What's new in Neos?

Presenting news from the Neos CMS core team, held at the Neos Meetup Düsseldorf on Oct 16, 2018.

E3a43e2c588568daf6e1c873449df6a0?s=128

Bastian Heist

October 16, 2018
Tweet

Transcript

  1. What's new?

  2. Bastian Heist • Full-Stack-Entwickler | Sandstorm • Neos Core Team

    Member seit 2017 • 7 Jahre SAP ERP Consultant | Merck @beheist @bastianheist
  3. Right now

  4. Documentation ◦ 1

  5. Docs Sprint Dec 4 - Dec 7 Hamburg

  6. TUTORIALS REFERENCE HOW-TO 
 GUIDES EXPLANATION Types of Documentation https://www.divio.com/blog/documentation/

  7. Teaching a child how to make lasagna The 52 types

    of lasagna A cooking recipe 
 for lasagna The history and development of lasagna Types of Documentation https://www.divio.com/blog/documentation/ TUTORIALS REFERENCE HOW-TO 
 EXPLANATION
  8. Explanation: Conceptual Basics

  9. Missing Parts

  10. Vision for future docs

  11. Docs Platform How to structure? Get rid of ReadTheDocs? User-Contributed

    Tutorials Ideas... Beginner- Friendliness
  12. Tutorial Videos

  13. Fusion Refactoring & Development ◦ 2

  14. Cleanup Fusion Prototype Names

  15. https://discuss.neos.io/t/rfc-cleanup-fusion-prototype-names/3646 Neos.Fusion:RawArray >> Neos.Fusion:Map | Dictionary Neos.Fusion:Array >> Neos.Fusion:Concatenation Neos.Fusion:Collection

    >> Neos.Fusion:Iteration | Loop Neos.Fusion:RawCollection >> Neos.Fusion:Mapping -- new -- >> Neos.Fusion:Reduction !!! WIP !!!
  16. Fusion / AFX Spreads

  17. https://github.com/neos/neos-development-collection/pull/2192 Fusion spreads • Populate many Fusion properties at once

    from a key-value map • Very useful when using https:// www.neos.io/blog/atomic- fusion.html
  18. None
  19. Without Spreads foo = Neos.Fusion:Collection { collection = ${props.teasers} itemName

    = "item" itemRenderer = Vendor.Site:Teaser { title = ${item.title} image = ${item.image} text = ${item.text} uri = ${item.uri} } }
  20. With Spreads foo = Neos.Fusion:Collection { collection = ${props.teasers} itemName

    = "item" itemRenderer = Vendor.Site:Teaser { // Assuming "item" is a mapping component @properties.applyItem = ${item} } }
  21. Passing through of props // or: foo = Neos.Fusion:Component {

    renderer = afx` <Vendor.Site:Component {...props} /> ` }
  22. React UI ◦ 3

  23. Neos Sprint Nov 5 - Nov 10 Salzburg

  24. Migrating UI components to TypeScript

  25. Stability

  26. Funded Releases ◦ 4

  27. Release team will be paid from 4.2 on

  28. Why? https://discuss.neos.io/t/funded-release-work/3662

  29. Marketing ◦ 5

  30. There's 5k€ up for spending... https://discuss.neos.io/t/spending-available-2018-budget/3661/28

  31. Coming soon(ish)

  32. 
 
 Event-sourced Content Repository ◦ 1

  33. What is CQRS / ES?

  34. CQRS and ES primer • ES = Event Sourcing •

    Records all changes to an 
 application's state as persistent events.
  35. CQRS and ES primer • CQRS = Command / Query

    
 Responsibility Segregation • Splits the read and write sides 
 of an application’s data model.
  36. Classical Layered Architecture Controller Model View Read Write

  37. CQRS Read Write Command Handler Command Domain Logic / Aggregates

    Event Query Models Query Models Query Models Projection Query
  38. Benefits of CQRS Well-suited for read/write 
 disparate systems

  39. Benefits of CQRS Great fit for event-driven,
 unidirectional dataflow UI


    (React/Redux, anyone?)
  40. Benefits of CQRS Avoids locking issues / overwritten changes

  41. Benefits of CQRS Perfect audit log by design / unlimited

    versioning
  42. Want to know more? • https://www.neos.io/blog/cqrs-and-eventsourcing-thinking-in- events.html • https://sandstorm.de/de/blog/post/event-sourced-content- repository.html

    • https://www.neoscon.io/talks/the-event-sourced-content- repository-for-neos.html • https://discuss.neos.io/t/event-sourced-cr-technical-todo-list
  43. PSR-7 ◦ 2

  44. PSR-7 • A set of RFCs to implement common HTTP

    request and response interfaces • Also concerns Streams, URIs, and uploaded files
  45. The road to PSR-7 • Starting with Flow 5.1, there

    was / will be some refactoring in the Flow core https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html
  46. The road to PSR-7 • You may have seen these:

    https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html $this->request->getHttpRequest()->
 getArgument("foo"); $this->request->getHttpRequest()->
 setHeader("X-Bar", "baz");
  47. The road to PSR-7 • Don't act on this yet!

    • There will be more refactoring • No breaking changes before Flow 6.0 (of course) https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html
  48. The road to PSR-7 • Biggest issue right now: Requests

    and Responses in PSR-7 are immutable • A lot of Flow needs to be changed to accomodate this https://www.neos.io/blog/neos-is-on-the-road-to-psr-7-compatibility.html
  49. ◦ Thank you!

  50. ◦ Questions? ?

  51. Slides • https://speakerdeck.com/ beheist/whats-new-in-neos

  52. neos.io @beheist sandstorm.de