Your SlideShare is downloading. ×

Robotlegs basics - PL

749
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
749
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Robotlegs AS3lightweight framework (1100 linii kodu)
  • 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
  • 6. Implementacja MVCS w Robotlegs
  • 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. Context
  • 9. BootModels
  • 10. BootServices
  • 11. BootCommands
  • 12. BootViewMediators
  • 13. Actors – Model & ServiceeventDispatcher 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łuchujeeventó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łuchujeeventów, on je wyłącznie rozgłasza (dispatch).
  • 18. Mediator – łącznik pomiędzy widokiem a resztą apliakcji, listonoszMediator zapewnia aplikacji API do widoków, aby trzymad ją zdala od widoków.
  • 19. Mediator Nasłuchuje eventów z widokuNasłuchuje eventów z frameworka.
  • 20. MediatorRozgłasza eventy do frameworka.
  • 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. 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. 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. Wiedza• http://knowledge.robotlegs.org• https://github.com/robotlegs/robotlegs- framework/wiki/Best-Practices• https://github.com/robotlegs