SlideShare a Scribd company logo
1 of 24
Robotlegs AS3
lightweight framework
       (1100 linii kodu)
Czym jest framework

• Generalnie jakikolwiek zbiór klas lub bibliotek wielokrotnego
  użytku, Flex, jQuery, RoR...

Robotlegs – KOMUNIKACJA I WSPÓŁPRACA
• Robotlegs koncentruje się na ułatwieniu komunikacji i
  współpracy pomiędzy poszczególnymi częściami aplikacji
• jednokierunkowa komunikacja – obiekt posiada referencję do
  innego i wywołuje publiczne metody (API)
• Komunikacja poprzez wydarzenia i przekazywanie wiadomości
Charakterystyczne cechy
• mikroarchitektura
• Czysty AS3
• Zniechęca do uzywania Singleton i wszystkiego co
  statyczne(sprzyja TDD oraz debugowaniu)
• Zapomnij o bąbelkowaniu
• Używa metadanych do dependency injection, przez co
  uwalnia nas od tworzenia zbędnych zależności
• Promuje luźne wiązanie
• Preferuje kompozycję, nie dziedziczenie (czyli składanie
  właściwości obiektu z małych klas ‘funkcyjnych’ )
MVCS
• Model – przetrzymuje wiedzę i manipuluje stanami
  aplikacji
• View – to wszystko to, co widzisz i słyszysz
• Controller – tłumaczy akcje użytkownika na język
  stanów aplikacji, nie odpowiada czy raczej nie
  powinien odpowiadad za logikę samych widoków.
• Service – łączy aplikację ze światem zewnetrzym,
  danymi wprowadzonymi prze użytkownika,
  zassanymi z XML, bazy danych czy zewnętrznego API
Jak to jest połączone, czyli jak
  Robotlegs załatwia sprawy
Implementacja MVCS w Robotlegs
Z czego Robotlegs jest zbudowany?
•   Context – tu konfigurujemy aplikację : startup()
•   Actor – rozrzeżany przez nasze Modele i Serwisy
•   Mediator Map – wiąże widoki z Mediatorami
•   Mediator – łącznik pomiędzy widokiem a aplikacją
•   Eventmap - zarządza łaczęniami na linii event - słuchacz
•   CommandMap – łaczy Eventy z Commands
•   Commands – wprowadza zmiany w Modelach i Serwisach
•   Injector – factory do Dependency Injection
Context
BootModels
BootServices
BootCommands
BootViewMediators
Actors – Model & Service




eventDispatcher jest zaszyty w klasie Actor, zatem
   dispatchujemy eventy z Modeli i Serwisów
                dispatch(event)
Model – zapewnia API dla danych
Model NIE nasłuchuje
eventów, on je wyłącznie
  rozgłasza (dispatch).
Service – komunikacja ze światem poza aplikacją




Śmiało może też parsowad dane z zewnętrznych źródeł.
    W serwisach NIE PRZETRZYMUJEMY DANYCH.
           Dane trzymamy w Modelach.
Service NIE nasłuchuje
eventów, on je wyłącznie
  rozgłasza (dispatch).
Mediator – łącznik pomiędzy widokiem a resztą
               apliakcji, listonosz




Mediator zapewnia aplikacji API do widoków, aby trzymad
                ją zdala od widoków.
Mediator
  Nasłuchuje eventów z widoku
Nasłuchuje eventów z frameworka.
Mediator
Rozgłasza eventy do frameworka.
Mediator
Widoki NIE SĄ POWIĄZANE w żaden sposób z
mediatorami (czy jakąkolwiek inną klasą frameworka).
Widoki nie mają pojęcia o istnieniu aplikacji.

To Mediatory SĄ POWIĄZANE z widokami.

Mediatory mają dostęp bezpośredni do Serwisów i
Modeli, ale (UWAGA) korzystanie z tego przywiązuje
Mediator do któregoś z aktorów. Używad z
ostrożnością.
Lepiej korzystad z Commands
Commands są egzekwowane w reakcji na dispatchowany Event.
Są egzekwowane i zaraz po tym niszczone.
1 Command = wyłącznie jedna czynnośd/działanie.
Commands

Commandy odwalają pracę na Actors - Models & Services
Commands przechwytują dane z Eventów z którymi sa powiązane
poprzez CommandMap
Commands rozgłaszają też Eventy (dispatch)

Commands NIE odbierają/nasłuchują Eventów i nie wiwdzą o
żadnych innych poza tym jednym z którym są powiązane
(dostępny poprzez *Inject]).
Wiedza

• http://knowledge.robotlegs.org
• https://github.com/robotlegs/robotlegs-
  framework/wiki/Best-Practices
• https://github.com/robotlegs

More Related Content

Similar to Robotlegs basics - PL

Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji androidSages
 
Budowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze AzureBudowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze AzureSages
 
Armedge documentation
Armedge documentationArmedge documentation
Armedge documentationskowronkow
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyqbeuek
 
Integracja systemow od strony praktycznej
Integracja systemow od strony praktycznejIntegracja systemow od strony praktycznej
Integracja systemow od strony praktycznejMarek Horbań
 
Monitorowanie aplikacji z System Center 2012
Monitorowanie aplikacji z System Center 2012Monitorowanie aplikacji z System Center 2012
Monitorowanie aplikacji z System Center 2012Mariusz Kedziora
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz
 
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PROIDEA
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Laravel Poland MeetUp
 
My littlemvc 2008 official
My littlemvc 2008 officialMy littlemvc 2008 official
My littlemvc 2008 officialskowronkow
 
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVCWzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVCQuick-Solution
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Tomasz Cieplak
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...Future Processing
 
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForceOWASP
 
Wzorce projektowe w Magento
Wzorce projektowe w MagentoWzorce projektowe w Magento
Wzorce projektowe w MagentoDivante
 

Similar to Robotlegs basics - PL (20)

Architektura aplikacji android
Architektura aplikacji androidArchitektura aplikacji android
Architektura aplikacji android
 
Budowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze AzureBudowanie rozwiązań serverless w chmurze Azure
Budowanie rozwiązań serverless w chmurze Azure
 
Armedge documentation
Armedge documentationArmedge documentation
Armedge documentation
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
exec_2.0
exec_2.0exec_2.0
exec_2.0
 
Integracja systemow od strony praktycznej
Integracja systemow od strony praktycznejIntegracja systemow od strony praktycznej
Integracja systemow od strony praktycznej
 
Monitorowanie aplikacji z System Center 2012
Monitorowanie aplikacji z System Center 2012Monitorowanie aplikacji z System Center 2012
Monitorowanie aplikacji z System Center 2012
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
PLNOG16: Praktyczne zastosowania technologii SDN w  6 4 2 0 Kolumna 1 Kolumn...
 
Dlaczego flopsar
Dlaczego flopsarDlaczego flopsar
Dlaczego flopsar
 
Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)Cykl życia zapytania HTTP (pod maską)
Cykl życia zapytania HTTP (pod maską)
 
My littlemvc 2008 official
My littlemvc 2008 officialMy littlemvc 2008 official
My littlemvc 2008 official
 
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVCWzorce Repository, Unity of Work, Devexpress MVC  w architekturze Asp.net MVC
Wzorce Repository, Unity of Work, Devexpress MVC w architekturze Asp.net MVC
 
Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005Poland- Smart Client Technology - MTS 2005
Poland- Smart Client Technology - MTS 2005
 
Ext js
Ext jsExt js
Ext js
 
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
[JuraSIC! Meetup] Krzysztof Sikora- Jak Service Fabric rozwiąże twoje problem...
 
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce
[Warsaw 25.04.2018] - ASVS - Błażej Pabiszczak, YetiForce
 
Wzorce projektowe w Magento
Wzorce projektowe w MagentoWzorce projektowe w Magento
Wzorce projektowe w Magento
 
Rodzaje i funkcje systemów operacyjnych
Rodzaje i funkcje systemów operacyjnychRodzaje i funkcje systemów operacyjnych
Rodzaje i funkcje systemów operacyjnych
 
Ireneusz_Tarnowski
Ireneusz_TarnowskiIreneusz_Tarnowski
Ireneusz_Tarnowski
 

Robotlegs basics - PL

  • 2. Czym jest framework • Generalnie jakikolwiek zbiór klas lub bibliotek wielokrotnego użytku, Flex, jQuery, RoR... Robotlegs – KOMUNIKACJA I WSPÓŁPRACA • Robotlegs koncentruje się na ułatwieniu komunikacji i współpracy pomiędzy poszczególnymi częściami aplikacji • jednokierunkowa komunikacja – obiekt posiada referencję do innego i wywołuje publiczne metody (API) • Komunikacja poprzez wydarzenia i przekazywanie wiadomości
  • 3. Charakterystyczne cechy • mikroarchitektura • Czysty AS3 • Zniechęca do uzywania Singleton i wszystkiego co statyczne(sprzyja TDD oraz debugowaniu) • Zapomnij o bąbelkowaniu • Używa metadanych do dependency injection, przez co uwalnia nas od tworzenia zbędnych zależności • Promuje luźne wiązanie • Preferuje kompozycję, nie dziedziczenie (czyli składanie właściwości obiektu z małych klas ‘funkcyjnych’ )
  • 4. MVCS • Model – przetrzymuje wiedzę i manipuluje stanami aplikacji • View – to wszystko to, co widzisz i słyszysz • Controller – tłumaczy akcje użytkownika na język stanów aplikacji, nie odpowiada czy raczej nie powinien odpowiadad za logikę samych widoków. • Service – łączy aplikację ze światem zewnetrzym, danymi wprowadzonymi prze użytkownika, zassanymi z XML, bazy danych czy zewnętrznego API
  • 5. Jak to jest połączone, czyli jak Robotlegs załatwia sprawy
  • 7. Z czego Robotlegs jest zbudowany? • Context – tu konfigurujemy aplikację : startup() • Actor – rozrzeżany przez nasze Modele i Serwisy • Mediator Map – wiąże widoki z Mediatorami • Mediator – łącznik pomiędzy widokiem a aplikacją • Eventmap - zarządza łaczęniami na linii event - słuchacz • CommandMap – łaczy Eventy z Commands • Commands – wprowadza zmiany w Modelach i Serwisach • Injector – factory do Dependency Injection
  • 13. Actors – Model & Service eventDispatcher jest zaszyty w klasie Actor, zatem dispatchujemy eventy z Modeli i Serwisów dispatch(event)
  • 14. Model – zapewnia API dla danych
  • 15. Model NIE nasłuchuje eventów, on je wyłącznie rozgłasza (dispatch).
  • 16. Service – komunikacja ze światem poza aplikacją Śmiało może też parsowad dane z zewnętrznych źródeł. W serwisach NIE PRZETRZYMUJEMY DANYCH. Dane trzymamy w Modelach.
  • 17. Service NIE nasłuchuje eventów, on je wyłącznie rozgłasza (dispatch).
  • 18. Mediator – łącznik pomiędzy widokiem a resztą apliakcji, listonosz Mediator zapewnia aplikacji API do widoków, aby trzymad ją zdala od widoków.
  • 19. Mediator Nasłuchuje eventów z widoku Nasłuchuje eventów z frameworka.
  • 21. Mediator Widoki NIE SĄ POWIĄZANE w żaden sposób z mediatorami (czy jakąkolwiek inną klasą frameworka). Widoki nie mają pojęcia o istnieniu aplikacji. To Mediatory SĄ POWIĄZANE z widokami. Mediatory mają dostęp bezpośredni do Serwisów i Modeli, ale (UWAGA) korzystanie z tego przywiązuje Mediator do któregoś z aktorów. Używad z ostrożnością.
  • 22. Lepiej korzystad z Commands Commands są egzekwowane w reakcji na dispatchowany Event. Są egzekwowane i zaraz po tym niszczone. 1 Command = wyłącznie jedna czynnośd/działanie.
  • 23. Commands Commandy odwalają pracę na Actors - Models & Services Commands przechwytują dane z Eventów z którymi sa powiązane poprzez CommandMap Commands rozgłaszają też Eventy (dispatch) Commands NIE odbierają/nasłuchują Eventów i nie wiwdzą o żadnych innych poza tym jednym z którym są powiązane (dostępny poprzez *Inject]).
  • 24. Wiedza • http://knowledge.robotlegs.org • https://github.com/robotlegs/robotlegs- framework/wiki/Best-Practices • https://github.com/robotlegs