Przeczytałem trochę o modelu aktora, ale tak naprawdę nie rozumiem, jak używać aktorów w rzeczywistej sytuacji - jak wymodelować z nimi problem.
Czy ktoś może wyjaśnić? Doceniony zostanie prosty przykład lub linki do przykładów.
Przeczytałem trochę o modelu aktora, ale tak naprawdę nie rozumiem, jak używać aktorów w rzeczywistej sytuacji - jak wymodelować z nimi problem.
Czy ktoś może wyjaśnić? Doceniony zostanie prosty przykład lub linki do przykładów.
Odpowiedzi:
Aktorzy, w sensie modelowania działań, za pomocą komunikatów itp. To sposób modelowania oprogramowania, który zapewnia kilka przydatnych elementów ...
Aktorzy mogą żyć w jednym wątku, co pozwala na wykonywanie operacji nieobsługujących wątku / współbieżnych bez mnóstwa magii blokowania. Aktor odpowie na wiadomości w swojej skrzynce odbiorczej. Kiedy chcesz przetworzyć polecenie, wysyłasz mu wiadomość, która zajmie się nimi w kolejności ich otrzymania. Tak jak normalna kolejka. Wątek jest tutaj zabójczy i używam tego w wielu projektach open source, nad którymi pracuję.
W niektórych językach, na przykład Scala, łatwo jest przekształcić kod aktora w jednym procesie w rozproszony system, dzieląc aktorów i zamieniając kanały, które komunikują, na kanały zdalne. Zmienia się to między implementacjami, jak łatwo jest, ale jest to niesamowita funkcja.
Pomaga skupić się na zdarzeniach opartych na zadaniach, a nie na zdarzeniach CRUD. CRUD jest prosty, ale przypomina interakcję z szafką na dokumenty. Jeśli możemy zapewnić większą wartość niż w oprogramowaniu, które produkujemy, dlaczego to robimy? Powiązanie wielu działań z jednym poleceniem „Aktualizuj” w systemie opartym na zadaniach jest bardziej przydatne niż zapisywanie w bazie danych. Dotyczy to również CQRS.
Odpowiedź Travisa jest solidna. Kiedy zaczynasz mówić o współbieżności, próbujesz rozwiązać problemy z zasobami. Współbieżność z wątkami i blokadami jest dość łatwa do zrobienia. Model aktora pomaga zmusić cię do zaprogramowania współbieżnych części kodu jako samodzielnych samorodków, które można wykonywać równolegle i bez zależności od innego fragmentu kodu. Starasz się unikać nieprzyjemności, takich jak warunki wyścigowe i impasy.
W tej rozmowie aktorzy są tacy jak ty i ja. Po prostu nie możesz sięgnąć do mojego mózgu i wybrać, co piszę. Przekazałeś mi wiadomość zatytułowaną „Dlaczego istniejemy?” Usiadłem, zgryziłem kilka cyfr i wysłałem odpowiedź „Myślę, więc jestem”. Nie potrafisz powiedzieć, co robię na moim własnym kawałku planety Ziemia, jedynym kontaktem, jaki masz ze mną, są wiadomości, które przekazujemy tam iz powrotem.
EDYTOWAĆ:
Nie powiedziałeś, w których językach czujesz się komfortowo, ale sprawdź, czy w Twoim języku jest implementacja aktora. Być może najprostsze byłyby niektóre biblioteki aktorskie w Pythonie. Ale prawdopodobnie lepszym do nauki byłby Erlang. Język jest trochę szorstki, ale kiedy przejdziecie przez niuanse, będzie to dobry język.
Aktorzy są elementem diagramów przypadków użycia, które reprezentują dowolny byt zewnętrzny (użytkownik, system zewnętrzny itp.), Który może działać w systemie. Każdy podstawowy przypadek użycia będzie zawierał aktorów - wystarczy znaleźć „przypadek użycia” Google, aby znaleźć wiele przykładów.