Robotlegs basics - PL

923 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
923
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Robotlegs basics - PL

  1. 1. Robotlegs AS3lightweight framework (1100 linii kodu)
  2. 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. 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. 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. 5. Jak to jest połączone, czyli jak Robotlegs załatwia sprawy
  6. 6. Implementacja MVCS w Robotlegs
  7. 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
  8. 8. Context
  9. 9. BootModels
  10. 10. BootServices
  11. 11. BootCommands
  12. 12. BootViewMediators
  13. 13. Actors – Model & ServiceeventDispatcher jest zaszyty w klasie Actor, zatem dispatchujemy eventy z Modeli i Serwisów dispatch(event)
  14. 14. Model – zapewnia API dla danych
  15. 15. Model NIE nasłuchujeeventów, on je wyłącznie rozgłasza (dispatch).
  16. 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. 17. Service NIE nasłuchujeeventów, on je wyłącznie rozgłasza (dispatch).
  18. 18. Mediator – łącznik pomiędzy widokiem a resztą apliakcji, listonoszMediator zapewnia aplikacji API do widoków, aby trzymad ją zdala od widoków.
  19. 19. Mediator Nasłuchuje eventów z widokuNasłuchuje eventów z frameworka.
  20. 20. MediatorRozgłasza eventy do frameworka.
  21. 21. MediatorWidoki NIE SĄ POWIĄZANE w żaden sposób zmediatorami (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 iModeli, ale (UWAGA) korzystanie z tego przywiązujeMediator do któregoś z aktorów. Używad zostrożnością.
  22. 22. Lepiej korzystad z CommandsCommands są egzekwowane w reakcji na dispatchowany Event.Są egzekwowane i zaraz po tym niszczone.1 Command = wyłącznie jedna czynnośd/działanie.
  23. 23. CommandsCommandy odwalają pracę na Actors - Models & ServicesCommands przechwytują dane z Eventów z którymi sa powiązanepoprzez CommandMapCommands 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. 24. Wiedza• http://knowledge.robotlegs.org• https://github.com/robotlegs/robotlegs- framework/wiki/Best-Practices• https://github.com/robotlegs

×