Slide 1

Slide 1 text

Subject-oriented programming Rafał Łasocha, Arkency DRUG 2018.04

Slide 2

Slide 2 text

Pascal wywołanie fnkcji statccne po nazwie

Slide 3

Slide 3 text

Ruby ● wysłanie wiadomości, oprócc nazwy, ma jesccce obiorcę

Slide 4

Slide 4 text

OOP ● wysłanie wiadomości, oprócc nazwy, ma jesccce obiorcę ● całkiem spoko sobie radcimy, ale obiekt to terac mała „jednostka” kodu ● nie ma żadnej abstrakcji wyżej, są c reguły tlko modułyppaccki które służą tlko jako ograniccenie prcestrceni nacw

Slide 5

Slide 5 text

● Dciały wysyłki i płatności ● Być może jedyne co jest wspólne to order.object_id ` ` ● Rocwiącanie 1: wscystko w jednej klasie ● Rocwiącanie 2: fasadki, więcej fasadek; Delivery::Order, Payments::Order, współdcielone order.object_id

Slide 6

Slide 6 text

subjects Identykator obiektu jest współdcielony międcy subjectami, to jest ten sam obiekt jednocceśnie w wielu subjectach

Slide 7

Slide 7 text

interakcja

Slide 8

Slide 8 text

Reguły kompocycji ● objects are instantiaced, subjects are activated ● aktwacja jednego lub więcej subjectów idcie w parce c regułą kompocycji – Ten sam subject może być aktwowany więcej niż rac! ● reguła kompocycji mówi jak co się dcieje prcy inicjalicacji obiektu – ccy automatccnie torcą się obiekt w pocostałych subjectach? jeśli tak to jakie? – ccy od racy, ccy może leniwie? – jak dokładnie wygląda interakcja - ccy jest sync, ccy async? ● ccy idcie może dodatkowo prcec jakiś storage? ● może jakieś logowanie, pisanie do event store?)

Slide 9

Slide 9 text

Ruby ● wysłanie wiadomości, oprócc nazwy, ma jesccce obiorcę

Slide 10

Slide 10 text

subjects ● wysłanie wiadomości, oprócc nazwy, ma jesccce obiorcę i nadawcę

Slide 11

Slide 11 text

Prcecież to DDD! ● Te dciały to bounded context ● Te join-point to miejsca w których publikujemy event

Slide 12

Slide 12 text

Tak robimy DDD

Slide 13

Slide 13 text

No content

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

DDD! ● Sporo infy, żeby crobić „komunikację” międcy BC, a jednocceśnie nie wprowadcić couplingu ● Delikatny system luster

Slide 16

Slide 16 text

Mikroserwisy! ● Już nie delikatny system luster ● Dla odmiany sieć lub prcynajmniej oddcielne procesy

Slide 17

Slide 17 text

D C I ● Data, Context, Interaction ● pięć lat temu na DRUGu mówiono że to prcyscłość ● prcyscłość nie cgodciła się c takimi tierdceniami

Slide 18

Slide 18 text

DCI, really ● podobne do subjectów ● są biblioteki, albo można i bec ● ale cawsce jest jakaś ciężka meta ● a ciężkiej met na produkcję nie wrcucamy

Slide 19

Slide 19 text

Subjects, rac jesccce ● FP dało fnkcje jako wartości ● OOP dało message send ● LP dało uniykację w programowaniu ● SOP daje join-point (metoda paid) poprcec reguły kompocycji

Slide 20

Slide 20 text

smuteccek Nie ma takich jęcyków programowania (no może HyperpJ)

Slide 21

Slide 21 text

DDD, rac jesccce ● Jakiego wsparcia od jęcyka można by occekiwać żeby można się było cająć tlko DDD?

Slide 22

Slide 22 text

bibliograya ● „Subject-Oriented Programming (A Critique of Pure Objects)” – W. Harrison, H. Ossher