From 95e62c915f0c1e8f41d6b03ce91fe15de250f5ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Don=C3=A1t?= Date: Tue, 8 Sep 2026 02:02:22 +0200 Subject: [PATCH] second week --- órai anyagok/week02/api.pdf | Bin 0 -> 396363 bytes órai anyagok/week02/api.tex | 20 +++ .../week02/sections/00-visszatekintes.tex | 31 ++++ órai anyagok/week02/sections/01-rest-api.tex | 138 ++++++++++++++++++ .../week02/sections/02-architektura.tex | 125 ++++++++++++++++ órai anyagok/week02/sections/03-cqrs.tex | 115 +++++++++++++++ .../week02/sections/04-kovetkezo-lepesek.tex | 17 +++ 7 files changed, 446 insertions(+) create mode 100644 órai anyagok/week02/api.pdf create mode 100644 órai anyagok/week02/api.tex create mode 100644 órai anyagok/week02/sections/00-visszatekintes.tex create mode 100644 órai anyagok/week02/sections/01-rest-api.tex create mode 100644 órai anyagok/week02/sections/02-architektura.tex create mode 100644 órai anyagok/week02/sections/03-cqrs.tex create mode 100644 órai anyagok/week02/sections/04-kovetkezo-lepesek.tex diff --git a/órai anyagok/week02/api.pdf b/órai anyagok/week02/api.pdf new file mode 100644 index 0000000000000000000000000000000000000000..f1f74cafafc57ace79f92aeb07658fc3d1e49b65 GIT binary patch literal 396363 zcmce<1zc3?^FJ=#B}m5-5>mUcbhk(&NOwthhjfEVi*!pUh;&FdQX(lGA}OsP{&xZI z^W2(gp&7_n-%J z=)v)ig9r4R0rcPmJ(xfbme9lbeKvnw&}QcVK~EeR{&)xYzp=#j7nZnw#ga0VrUdkG z7kW^E9<+gA$R7|W0zD`~57IyWe9o*D^q2E*cF=FO(1Yclta1N0*4Te!jSciG*3Mt= z03~b$J=}*L&V}+fL7ksEL$99Stj!KS7t}e2e+v71qfDVUo=f@shVNoMZw2Ip1A6(K z;`b}(s=83iAMImf`)}<7|D}B#ziOWt^i@jG!?_af{z;wlzftG-3w54fQI~-d)@JAA zgnqg}59e(-Z`yhPIzNT>K9Dwu?ObBtMf6L-Ty(xa==`Z`_Wv+4wAi6qRR*w1nmg(I zFf_RS?6#<^vL-fWPWJ&IFqjK){vRsjb}J_n2gqYq22Lj8CPuc#Ca92s<>=&KVqlHx zHo2)TV@tw?-MFr{Qw>X%ynWMCCK+ruj90<@Dx{ho&)vEx!B|V#sO@#*tewP`=1fik zg*mJW(qmH0kiE2dRF@Wb&-b__*=_V7U0AB5vSh97CodCZ)+VwHI~y9bLMkZ`T;F+y z4SD7=YYleL+I`cires)pC+I5PVO|76Eb!#Ou|~uf`I3EsiY?mdkEa1|t?m4poMhPv5h+N{UWEY4{~gPo`5|u|^{X zV(;VHc~~K|Y7|O0PB#* zn`1U7MRsQjAtq3}h)ZYKx3QM)bj(LlFo6QuMhvAwyA1m?=G?vF%~)ESokG!nY|V2*$Q{Z1YlA}G%KFo%GB512B=c0H)%XpKzdF{tj7 zCff8G+w0LvGwa3Wa-Ie8FeC#XaZ2(~MVg745sz=i?~p#D>>G|xeeUM2cI#toU3|(I zSbQUxVX=nc1_^oDQM+yI@~+3L!Z);gqnVWs6W@%ESCl@RY$NGDHT*W(Tq-mua%14Z z``j=l$&n!h(?V_`&qA$q){cDK+f^U2j6WSMD3b7`?wgbqYw$eJquEC|vtsr+FfKl= zu6nSe@@n?5f(5g}k)mjnsK01k%tVLTnAuQeKUKW`0YLCrtHboxBkZR!S!}!sqRh@U zHiorThufYXM@!>x#H|whQR{>a<)mc5DU*E+TsDqK!QEcWZBmW9`RdJe-OHH;s`gm#`SP>qUIAadH3`x_i3|(#@zn z&c@VCi|6-|4(GKhc~m|W+!TS>ld%z)yxYvt%_ms0l1^LQlx*l)^W`>I-}-VwW#e`v5)H>G{MEr=e?hj;iPB4QEC=>P{w(>X5n0RYGAf%{Bof@ zn}^96`~fSHv6TFwYewdf#p=OSy54C`M1x-Nc1{9m7Z>+ef(LssByc*?h254q3^247 zj7%?z(C#mZJ;?A8jg03}S4t5p}Fgt*agM$SG;?_Zh&~q@baRgkNX3EgT z2148cLKVObU2PyFq#SIW?Eu`D1VwCYY$0#d0zj4>=o$rv+AEL`=t`;#;DEjb@^P_# zaX{C4$l3X$0FHBd01oJi4*3zfQbRs2sBm0R;kcl}c|nEqf(qva70wGPoEKC$FQ{-{ zP~p6w!g)c3^MVT31r@FfD&ULfxGsq4K-a}f@q)jb82tQ~jpgTOy?Y@TJE$m(+*xG+ zrUq7yCalsIpHL}XC_-Jq(89#X36=G(v!T0Gd5+oybr2bd1q@w$U6T0QE3}fTXAzEh(^vE zjmj$eheAOh4i*joJ5cBEYWlM$KwBl@<|K9331SpL6phMi06hN?6M??L$N+MLv`0{o z^|CGJ7u`4k+~=}|T!6OryS2d%dE~#C87Zpry%;Tu=yk6d>aUr{9KCjhkrckMAE?+H z^a;d#TjDVjqYEiXoFkj4itJG-{EdNUMT-w#t)Q$&&Sxd1gU$PPXuGfTOTR^rT_9V( zQI&2ryr@+1qNmNO%!BfoY+m9}P%rF&;i!SCAO)71OliqRbaAa(^Uf_oiupcwxQ>cj zpr41(dGGz}5IXPH5WNBZqG?o!ik%#sp@R!@Mcl;2+{i>(O7w^Ba;}8$q!b-&jh&4k zx}rBSFn6#8fLI_3fjB(c^!J^d?08ur;)VQd=3roV-`vQN#n!=0n*pL}F^ECtWNvFC z4pj-gI4>KJ4G3gs;|2lQIl*8?AczhKWccx&f10&_sDk^v&;ME*|D|(Y^dHFh0|G!G z&WrBzXNTcFA4Sl&e>WUcoHe9l-q+$xFXHjT$n`aWyaFlEt6sTjsy99eWVgH)lEC?% z6?E^0#ma-$vV6^z$CaHALCO<8-^R}l2Fku3>)rQ^vW_saWw&|F8MHR;C_7~qVLiai zCvP&4YX#cmVU0Uv>%f1*oZFCZb-W1dXjm$1uT8x7HLWvu^>A55U+GCi`1nzFZ0O4| z8~Szu|Hp0{6~-Otc0xMe|rtiFeID{Tj64&sy-i3JBaUf{QM_5L%4SSHJ=cCTgqpfvvq$J9|Ib1gelbr-OHi^GNN+bQj%7mAcDH$=01SJEVxqbX^P z)bn9F1&7_l1cW~9dQB6q&fi^1-L0PINIz8XAPI499w2ZBaBZV#>hocSlG#=cOzbyX z-e~dmX7;QXg0~}C4*rx~C>Z*96!U!)S1=H`=w@}>XlBh*7a28JP#u>5<~sUOgX`o2 zzNJk)yQW*W2C7E=Tdnm)dr8KmcG6!P&>{D(W#|H#zLcF(?x4kL8hnrtn%0={WXXA! zDERpUpg#I1gV*cnPhuZ*(p9 zXUBQJid3!kbTNPc?&HmC87u&jS5xjoFy@a0RnQ+2*46nSr!f-9*y&&9+&Sb%N zO#Ag+9q)QXb;i1Fao4eXVOmXSC2ra|;CG0UDQ>F+X%S?7q%=%L8w|8z%Unr3dCj*s-mzJ^ja?XB%>o z%G$|N>UU@!#V##sS1a}4jl2!D>mmcWNI9_h-%}sKHofsQqQZJWDn8KP#`$b??LZun zHI`%J;}mtyCsCQ+FO-;a_HO6}{RgL!3ruR(4(}cG`0-cps3AJHxHhvhNf<+(#lo~? zP9`CDmEcV(dQ2^fUChdn$E2PtU4-P`blris*2@sz%q4y)#%W76@>FD`QG`o5Ml)o_ z)8Ey_qYk+p)p73*l z#av+YJUOw^!u`ID*GA((^{-2?wqewOp_VJV!7>7Nr2R)htvb20cs@ZWhf!gYv+Hhm zHa=ss8((9mhRxE^V&lQ88N4eUYIz62aKz|?NuF1*tR|)$PATX~G(3;msEpHXo01_A z12J1Kyx+dXD}(BUirs2!DTW(yFtsEeUiD1TY50sg+qDIuS`>F3ZQ23$Z;c1Y@aqYI z+&KN!BX5;ho}Hc05LeZ70dc_`xVnX*w+$bOd7}%CpSbVnBVbmu#-_VdEDxgu^dj}s z6eY@EJIbY|N~5A7RcO5I`%|?Way$G)D z+t@|lq6(i!si?BY!Ee8fbE;tp>?@Pkuoau%lp5WVf2KWf-3F&IgDFVVJoRmXnoq<@ zIuAHeCDPGcuhBWP75Vyoi)FsicI~%CaJ!b)?`|t2?Pn0=3LN${hoU@@9xA$<_4 z)whAXBiihECq&-@hhubm8Veh#9FtHJ<2hWgslfw*ImV0~wfrS%P9z$%M@&z<-iC!$ zG#NGH!YSzrjdz(vRkw653a_y@&gYh{_vP+>5-xFOl9C>m+IR948K@fbH4P5TZI5UE zbef4S-P8YBt4FSD_)|}ft*k|DFN|ud)sal6skV^7rY>AxUF&4Q%xOmf?F>ud^0%?3 zc#j9vk{)RK@bR#{E3|%T*Mt~fW>VE;_}v1gN}AAB@cMjRGs*S>`Ry@Y;m&R-UL)j65qfm7YonC^2Cyjn~#fi5=I;@ zzW*fZ6)LI2I(9h_J$bx1xhD^f7AC)yMW>``2HAgFcYbi+Rl*>)*wVk0J{mX9=~neC zIydKAh)eu!75dd|B0*UjI3LkOKqkQ}9BH97=!g5T=2ANn5#oSB1&MYN6x&0WKB+=Z z=NLCim5q0ck0k^4(N$*KS$&K>BIzUz;r*!N;H@3dD>Jj&@jEk^Z){QyN=CE+*W7n9 z2+;3DsVph%Dq^Z9wjiS8?+F%=tcmI>idEplqF?Ii=|TV%|v zK9gYChf=&=M`+cI)>JIs3u3+DH53hIvMjWOLwxV`s8rcpcd!H{!u+H+1-%Yt;v<3f zVQb2+jY2T1DdNo6^H1GZ0Z*Q5)MEf+DrEgF4!a~b=zxknbTI^tx96gxH_S2A58w7N zVd#!zS)(CQR1clfJg#}zkxu#XPF6n2!;y^4rKxK!=>0mVu_1Pgt&^;1MeyKVSh1DJ zG)qC+Pq%^t#82r|GuT(2vY7Mmw>6uu^W0e#+{Gc1K);7G8!{BnyN6-<^0UDQLzm~= z(};O)4VJBFdqqRV#HPvvwxq{v;iO$^NW5>k?)jID`K$_iOq|ADKM)&c{o?4u$bM=c z$vBZcqS%#S5))9wF)){`jCTF-cDitf1$R3hS^3@o?I2}XTxLPoevMu3YmApSl+puR zK=b;v3BmH54HNJO8iLtg&PLgr*s$3i0&iiHa?{#qXK&^h%+MPbaLo{sI(?n)bn4z# z3T#ltWo^Erl8|jz6VUE!SV{-h_*9^vTG7QOo>l9_<2{)iFsWQhCryl?U_CBGzQ%Z) z9sJqkHD~A9j+HpYgQgH|ngQNhsTO5lh{Jr1foN(j4;BVVeY5KG^6t;K2)$Mc*cl?! z*6v5I(E-G?tGqU{$R0Spz(+Ypi*T4ad7;$LyRkOd(xheg zV#=_pWxXL(pU9thoV9TgQGXoB_HHGRVa04x#>Hw>PtNjpWOZ+^s6Ujke=^18)t!Wp z>h;AD)ywzrX-;UqR$kta?iiGJ(C;(O~FtX@W+x`))bA5GnJ(}{QSBLuQNK4-qeId3jqD6dnbjxp7j6L5W`^4CY+PXQcmMC)-u-US|07T7 z2g@A%qh)^XQvCnrJeoWGZ@%NXQ~Vd-kq5}a#l`^yasoKnShyiyfNX#Gkx)PJ!o&Ta z{iGjuA^x%N`Gbqe!N$e?Yp>=yW^+1cIW)$v)gsY>ey?_aOYntLWrKb+K?I{9G6oZVfg z=V|lxApJqZ+1bG6!HaKs4voFKdM9T#4UIl}{_7_No2r=K$|<6mMoDmL^-P>5;q%od zW>$yeu@M{LX6mu(Rv=~=q2kMqB(?M!S{Lu)W1p{|v*urjcszH<7NURC$r(x^bZE3~ z)F<*~Xx3=sOC{p#7mK^n$ls93jrUD6IPiDq4lFl4SIqQUEViQH3brTfhT_(r&{8#S zAI{@OW=gHUln*L%+*Q^2tTQP%cJtV6yJ5T*v+pZP`gSD=|Kw^z!!Vs;>FM~?#twpG znVEMnnSOG_*Vx^J*)gB`!(DQ?)5cxSrA$88o&>$IWn8STW7mTtRaTLsb>i#6l`Ir$ zo~x8gA2nwZncI=btzG-r$6a+0FABP z?lzIcU)O!ON5Z(hKdP%gpdb*Yc*gfkz5}G0Uj}^ojd&6{^W|u`sc=;@P0MTYMy`(& zUjAUI4oruIB10lb)IQ~`y@hDT{%Zw4pws|y{TU1QxG&~L!LZ+Y!E#I*HtYDb}4 zFDS>HSC#~4h2Jz$nCXPKvgzgloNnbo3?;Q8vfOOy%S;Luo9w+?$eu`dg>XPfACd&w z5-~+d*^wE?k<^|KHE!&g1rxU^=CfOe`!G-#Y7onAi)%aJg9Ich>pUh;>kP59@Dc5U zt{XZPVw}LE5T%BO=8o!MuEUhW;X6zg3W0hx*TbY6u|FE3)d0A5mur?EDupI7*3gas zC5zViIXhtbQ;e`FLxfs#I`b&nE160JSUyl0vH>vN2-=9BTDHtR+Z=m5TdJ7%rt0&f z_jTJr$x^GTIx#$C($(IjA)yt~gCowjnBkN5D{n-TAC!3qFyJc%rC_ExjiZMx*jJOo zkIyhZ?1W9N#qPr)NMm0j4sC4CmlF??OK0THIK2yGuC{W=ktJ#SBHO%C7xKpD=H}6I z%(_8g)EPqdrtd?flt4ma7pf+!hqFVU6nG76x%WdIDA&Y_D09f>TLTS9j2Pa%dqCIm ztkN<04y8j=NGx$`=l;`^u*_Gq46ix;QPf5H=BSfC!1K4vqMA1+y~anVwll|U0U=Ex zdFgJc#Y~`Zy%O(3eE)TTjz6q=&ITnv31&VFR-X=yldL(ZoOuMrghqo%-qD{nz6x8~ zD{SlJX+ysjR@b8{sgOJkIKOe55N=;lG@8y*qtXRl{Y^$hdUTBW9;6RAOj)%C>T)PH zQsd9@J1pRwM$BAB>uL057V#FyuTx^1Q6Ao&nwEX|ENR&p^Nqeq>6F}8#Q0l}?1FmX zyNN;{QA*Od!m@pNfs1d{*H^vm&qV5wiN1omIELY_=GR=-ZRLtQ6FCsIKj9n4%(&T1 z*LIqBi?8u%P0a&Nr6l9cuyr}q3o3GA0)#P ztJFD!aY#?v|KRBS+9Ad_JY{v4Iq-uU;R6txR105ICOnGaeHClUgZm1~K3?Ku!+kkD z2jcB$S}Dt(@R=qEaH8PH0TO#5J)V7B3%6}4r-+feRv$|BJ|BD8>CQ*_m?9M1uTWV% zmhzs?a6i-2%vTmc9Bu3fQ|PsR-px0BuV~PVuyc?p3mLZwV1p5cD8V~$)MeUVyeMn6 z&M4By@L)q<8NSj)3!0)MLA>{A85X%aIM8&6EM@fRS!Yr6Bav!m zdxx}8krL(sZ2D;?=3wXh>svR7UuE^*QZb^>?kuOxiB}B{77)gudQYx*a*d2vnSL2q zkfe}O<6Rw6R|%-E-sP)7!;pFfpsIa@6;T{{+&ZpR^c0!3Xd*wHe^0nreO?v*nG0~< zK>4ndK#DHLw9+h(Vo*V73ZgM$2~`Du(>2im_DJ{8(2N3qINfP>dAX!kn0G3pk(M3; z4D}-AoA7IP$z(P*c#^K{JvTTlmju*A@}towCl}b zOhT}h>M5qC=3k>kxi}4qpJE%}IkS>D6?`FxwD&O-K9wfdcFg8&i%d@ooYfENEy{6h zGL5O$`M7ER1|B;^cD#tGoNhvrVYdF-Z1WT)62F)N$qyR3P5s{$aa}#07U>h_=Do4=sVHRe5Y2)$T=+Kttg+>^$GN3KMcD* zN8Pc!%Z(7#Z0bsl{{`qkrZUv!rce=GV+L2KXmrwAk95yL(JRXVWe9}kutkOa(rHEY zHd5rruLPuhEYTIRtVD#MujP6fU?lew^8H#cWzNfwJ1D(DIub)YaA_=?qW4b_dV~7odvia@8Vx%XAdNGq zZ`5HEDO4|1M;JgLl7L;1@aLqAo^{?7!(gL#YNYo<%2q7H*?5@>Y4zE4w3 zHne=Qh#2uT=n;T1K(hL{DDd%omf3pg6Qq&4Al$CiH=%T~tv9x6ncHF7vl8Zp#N3T- zK9l!}YWejKr+XUCJ&Qk9wlJ~^N({cQNZpUonrYOQrNc1RZFr4Z*6YPvjs0kD(QLJp z2krawqh-~Hk=F^@`sxC&4eCGuZe~x+2ybXgI!0E@OW3&iZ~b!%#@L;U*GKDneW-=G z;IqZa9&Jvlsgb65N-E}*tNU|n)|cli#g>ITNDZ> zWxp`v;j?zc1%kIvm^12Pb3bf?pK#>C!NtEtOyROs4w<3F<4+0AdoEoALQ3?Sw%=mz zzk!rr&phn@I!1cK&rOPjjw=k0ra;@<=*hm0d zjj%c7{h(R$!A6ys;nVQIpad={;DD-}Yqm*99gfBq`K-~eis+%4sWOc={ocX~uS&&g z((!$|U@O)31v2;*q8CL)#Gd1ynF0uxCkECOQew_%h>4k9W9^?jtE{;(Z|fE>60C-v zGZ(M$PzYo*I;vHL7hX@F>TjCxK~-gVO}TpOQ2^)rAsRKE?r5G@vv9W^xALY*7||3r zY}vpK?acmwx=cj^uQH4e+NoQ0`(}8=$OvKgGT*;DeX53g{cyUdskhVH6EW8>6lG)3 zsl!D`Y$;GlSD)P&KV|N4m*@rqm2gKNO|gv^rT9$~KKTT5M~s}CPBm$O@H^t-Ed=l9 zKO4HejYm&ms1q^4PgKv4k2reCNUeyTMvjalKfwZ$h}V~pebHBY@Wg7>DxCd@3u~vK1k=<>@dAq98*AlBZ1+rO|@D^5u=#ax#_c$_zqE~i6;ZsC*ryJ zc27AaCbz1}#xWImuPC?#LhJ|%DO^glVvb)K{y;$%8Q%H!iR+cbFMge831Qjq7C3EJ% z&#_wR+TvRFz828Jl;u>IXtCEIQSDAEzbiTQMi4zJRFBnxK{#<476;04!+KYI6D=q( zAS0aT$2L#ka4XnJG+A{=M5iaU%O>QF&`@H!2X~B00#nfqecReHNn`GD>BYKmc`4khUW&h+ z;1(dhKhn3GOt!fZc>jKwBH8`5C=`lk;{wmj<<~fR!8BfSd_Bq)ly}{OZ_$<@^YXvG z?x!(a+m7~F-ZhF19F6b1tN^1^lS2l3^0sOUC(W4eX5xal0yAybHCrmX<`ZS}NjM7h z)O&evPWxCNSWj{&jD1W_n#N?@Jghr)4@Tfve-*4D(~o7VlASbr&)5DMHiK*~ud5(& zC{3`t-uo>0^(sbc^Y-{z48&Uw+GTOGy*G%WZ0Dbmk}{5&A>K51h%XvBqjV~H+IPl6 zTPE4{LMp|RHY9N$z27{=?uD~wTplgGyfu#4{Jr(O>uFODFb3?3Z7elt5;_Vryik#H zHqF`;O*tRv#73008=|49U@Ayd=e({4S|P8D$Mw}qkyiLJ!5~QTdUkV?Y4mqD~Ac^TJ!jDvB`Sf0r*s;gmTPy-#)Ic-mQ zEZ07VH^JNCHNF_^l=1?AY&6gBkyj0(6dNWm+K|Tk20GTKqG8!ky{H(f_7{>3;at8G zupmXYBp!fDS+SW@6*VF5yl32tjIO%qSTtQ_qTmpJ_1Q&idzk#up(oWNb?kY@srg&w zf)AU`-9erj(P93vN>+t8KtAAt-SiLrft6*)mL}eCsQ5M3TCEl{K;O|9FOIY zxEuvv>)${!t?aq&;w169B%!Mbj?N4=v2C~VWb5tPlItuHU-giA2o(}>D!%(f{nvq= zrhZ$?{V?#Y5(bz2A#+ue>s~LA3w5mBhkQ(}OLj8CY4e}u%;VDm3h&(gvVDl?E!L~G zOewCO5}cp)lBlFas=v7v$g`=wKHIJT?#p1RRDP5-!{W^}yi%{g_D8+-?hAa_E0QN8 zD{toMKEAaQ-9+`_bdv}$*ST+lXoxa{VO%f+ksFqC%le9>x48}2CF$usRU8LLYJ7Q- z*2gV|Hpjz8Lj{&I*yUA3_7YaGYCGc2dk=O!hz3{ zRJv5=ba#qO@wVKxDi=OH7w37lP$BYUxpT@!@Z}-=Vq|O!)r&bn@Lq+c00@LxL_(GC ze-w(*DP3Qdx}{cRzwBbA+*;Gq$e48qe07)Pqx`4Px_xd~7KAq-#xvq1CG_ z`?6wFSGlOfM3?4dPIORTsoG)C0|+SCUB=l%Rs zx0@?!aa=biV;H*@boaB~A>h%$iG}N9ZpH(2ZNHeD);2zAZABx`o~3o@B{40ynJ#ln zrQVHJbY@RNQ>+8VBPNi3pi+?NMbXXzm0t8*h3oq@GjA186aDP8Zm0LeqKQ2qAdlKi z=g&B3Frt}hV|DYO3f->cOV{4X6rY}4%{`i!L<8gUucSWs_U#Un+L_Gg*p}AU`?Y#r z6w!62UP`+#Ixk;fB|Q>A4XdJ;wiVB^XINLHP+XLkPukW7zAbBXUK?P@R}+u?RNnIZwZJZ`D-T&np835NOr4!Df?SDQ(6;^HG;sK72BSKv zIBB~ae3}gb0s?t0nSFDxLW_}v4(4kqi>TFAk+O$J#!cUryY<#6)*jry?dtK1eP`(A z>-R0@D~}lgbAY*jju|=)A*sUKzm1NCrEFn9>whqQ74(IVECV&<@8;FGy62Zj=WMPBESFyA4uyC?LPI*|k*ujvyM81cR{SnFa>fN>;pYB_1K{t|#Cf3T6>`P{Vdc*ez{SbJ4efUSL}ov6_9N)`?c&LARV`-emGr*8Hi=ltKA&A2&PIN1Lj z06dU+7TW86OJ-NQ0`Nc*-#`!{T@C;qZWb^%&+l<|9tM4N1AvE<12zO597=nq}`O6PPC2*|<%>6?G>#?8$F zt=!8JuU!Tp4q0 zATY%1_*1J8*O7%2D#?Gw+}~%a^BkUEGWV--2}y1Mfc|hCAqz1lWFh9}U}1-(39&;M z;D#8OJX|d79FRPy@98^#`i)Stj#b16nxz3r22xd)hW?#rbvQ!OI?T+SSgeh0jF};y zMno@_v!BEvj{Zfu6sx+1CV&kh9Y}y18wV#eTMS_1Y-ROh;uP19)8zm7 z=#O*9-yemv1Nzp>IqIjk{;-k)ASrNGwhnjg42(@_Dy60{BABGK!I)TfJv zK~u9J$!*YtH%Z7_xX!a^px?OwT+mqqnsp5^zqv1x#~|Oi0T2h~@^?u8xgZPC><{Tu z09I*hE=Y3S#ck5o+<^12z{_kp2V0}NCXg)@NYBPSLtHzE3pARKpQ)sE=)dueV$lt}mv65l}GHjO6g6{R~7i_sqH1| zExg-dkKq~erAcolFY5qHiwmSgkiT&^WrO8{)L?Z26}j*+k+cyc5g#!=Z1dCHJjBTa z9;)BCd%X>BM^~x=L?76!Oc;2g@)RCco#0xyJ`Es0sMMD@6S|8f``b zt8U@3yx-K|c<0)T|CxOF7Cf#bP^MlS3pF0e*~c`uO5AhUbyfXNX@dfS5Fcu$?yEYn z3hvLr7!Mx#kRL>wF?`zI5dFq=sz!LW9`DxYKmM%!9%_tPN=hO^4`{VEgbc z{5IH@Reo^&kbQ;{&K?sDW%fo>dj#P>qExi;!~8>dza|aGV`myn7GVx}T6-?Hvu*bgtMYr#cMBWzQ^48Z^ogp*Rz8 zg^C#KhLyP@EbRzJAw-<+m3KRVO&JbmeU1_6+6KZmh)v(VQ1evq47xk}+^m;0$3n_z z!S)>i6P1J@l~1-tO$-96Cx(!A1oOj=9xRFhy3VYx12{%!2oZ}~6VL5fstDpbHE%O# zDesqyd$|Jz*k$?rP(p*kA|z$w870*XiKD*Ctg^m$=G>I9L8e4g-Z3V8iT9FnS*NdY zDJN6V8OX+@t_T|z-Eo$WA%&{SChf$1#;2DJgH}pReP*rm%Hy3?a}WCJTUJ(e(ao0Y za#KAYPdqEX@}dO0c<$Zx&*h6+ye&QSttFC`>SGjPq zJ2hQTm7i07iMgK(Vr$qp5x=Xa8{NST_AuwjYI)J?00+`u{)lGekw8*0w*_lN#)kH( zpEp=y#wY)oDe?O1+I~Qq4)t)Y4JAsmh_lkGd;!^&Z<=sOE$O{;<#)p2YQ$_K^Ohu+ zisYtDnH{pb=I6tGobz)gdhTVl-_J2pQec0JyX=F&ua`*7Y59>&iylQ^&F_mPT!T|( zJflF-quXVo?{6Sd^`E)0zfk0e7m1h9?dOt+e>x)8b6~~7EM%|U{P^jp$vtz$uq6To zv=S`U-~=>{ei8H~R}9pqPC9dI}KE^}Afopp`d4K-ov1(TJZ~ zJ(p-Mf2Y6~+#^D3M~yxmnn7q8U#d6q&H%Q7i^snN!yxtGd2h&~b5bKnDOK=(q-B@; z1Z-;F^TWscQSmQ;BdkpV_(^)ID_UJAO0Zw-STU*eaV!GhMqn%E@6FZT5JvD7egE`L z&sK%ubihL-?vPW})taOR%NyF6LB5oj>XXj*DKX&X0QRCY8($GN24AyoPNzl2bOe1W_wLU7-(_zoyKMrM*ctFyrt(FoHva%vmAx>gh(-ZZ0Y zMhaFix)E#pyh$ZDr)}wO?QKPsebP*RWBkszh~<+3a#c{VY|Smo5D}5lq@wzXckQA# zrk@858PrxwU>5NOguC0mw<%QBj{s8!c@^h^mCb_gP-`feYQ=M{$J;zbkI3uREr?O9 z3!F3_rzYW)s}Oc8Ya_>7QtHpnvoB)pc>bYiM$yD|G+|vlV5BEw+Eg_kzzj1xXuS;Yf4IWlL ze@WHLShDm^v3o^h3Wm9MYrIaYEyG|!{h+wQmSt`dbYDgf4^+p~5b+u-GGRW?3;~vtWELp zJ?@QX<+;UM4suJ0d8%QV!`rvbu+@%Vz3tgmp{|F!rm7~Otv>s}<2d||>#3Ty>Zj;q z^^-n=ae$m0`{xklO%q15-oksi#*ay~CSSqP9%q%6QZ?liAulq1CbH*cwh z-=N#^g@P+}JNIW~3072aNi|bIk7kb}??FfQ6)EDO$_9Mhyyf}xLai2VRu<`g2bM1ca*j>R7uvK=5KF&XV##@{pzH~@%xzI&t2{3N%`O4NLL67f`C6d%l{sGgKS9s zE-LtwLVqZ9_&s^<-$?EEVZopDdA<@|U03@TxZvM+YC-3VcQvRHa%KAbH`w6MUF}NO0w_*-Mc^Rl-156Rpa#gdK8n3F}EhYFvUKAzznQI3On%+Z|9S4iZxRUof`6;M(7d8S+3PSN>_~ zWa3_jDaqaEFNBxHRl~aY{X|$8%*NzzYCQ|TIl9%{14Bz0PIXNa-b(89i_;PRHUCF9 zm0}iEN-&9K2V`ICv0snC$BFO}Gz@s$+GS7=gB%f;P;! z?X#lhfyC4~(VW#l_%t6hyn4~YcZ={tG|DoB?96NuV9BQZP=wKLY6kdH?B;E7nCa+{ zoD`}CQ5i^ofwx4oDWMlF} zd1P?oH4~1So7fE0KmimOcJU@p!frK1VB>VKZNRAcDZwtWElA52z2~t(Zt+C=ns+8L zux1peHA3{luz69usc}`w78dn!X`3Nu-Xxf_sTSsu|KorZaw?p|8pWHo&ysayMS7>k8Ge=;JkCz;mbla%eJj8E8;z9Dz!UUJqvDDgX z#LOqa&9hjY50Em-{`2Y2+Y*^VQ#HLtcb829Q|<5%X;BtY@OvU}64@LAh#dQ0!oz6O zztuOqPARMsUmza*869kt6vHd*wY>;BuAyT?!zL%`#=|1a0GkpM9)M3Fg_w69HRVZ_ z(e*IZqPp>ZdLz8|`j85zKi9~Vd(<6Yi4+w6erMBLA0Gf95&=i)G*d*gb3ZNfNu0BH zM{h+3qG1FhAMRP|wEAjDI+00qVJ~^1O78~drF__pTSAGAR=?)%(_%hQDm4?*RqYlURRqd=E5{G_^p5VsX5z7A&MzQ>Li=I~vl#(W`!*Ii z$tjJ3d_rkGva-5g&(M5!q;*#)=452w6)9N^2p^1^x>UeFn_Of__nOwe-QK$lN(U#z z_hyM32sN=GEw;6NF>ba&|aPTjaJa;iFINodXoq%b!(pa2j8 zukk?OH5q#8z> z8hn^9NQ$7+4X&6!p1QtqlTv&GDApQ3=8i>AtGdPMH@{p4#C6!_)%#j)G@CCCdiDOu zR+(v5BZfXEN2s;fHZC-eEh^U`rXH3&-l^{vsC!*&i6aD{J)X;Ge4=g~+h5CDmSJeG zMfqxC=`b#0SS9|=3j?UQe&4ELUm+u&$4ynOmX zDIj+$jcY1-w@q~>#?%~*reqEEN#7K%%C@irzT8j-Z@H*e@{?=^y8cS)S_h9(#_c_# zOy-X@2!nmYK@UH7PAXLtk;K(7czf zIFrZ9P@L6Q2ro$Ph5H0)6ermdtnG#O+ZM&Ze11A21Z_?ZOk7XAz;pp*&fb<}1CNRJ zJPkc2G2_0`whGfEFtma zo40Ni&+?!PowX`{(!h(c14qrrttAMWpI580#AJ6rN3W$_dzO$B%E6G;tMfEhiv=J5 z{s_6G#Jb}`W&irJf%{aQg9VFlcn0$j@}rLb!0gn`oKXRE~@buse< zj-5(Z8TH)fJS@@CZ>`Y6ml;xVQbl#SeBrU>Pb*ZNfncHQ3aBg^M2&@ygbqw~XNkDM zuF~@un)h|8)=jytV{SWA;%#D{Y#|xBx}5h@J|%i5ri#p@i7HsI9?JTeq#NPG>>*Fr z#no4-E#A64pBi7Rztiq0#-0-`*L=6P+|ph<)7w@#qXb~tmPN+%#XELPpFj$0$qVzS zK-nD7_0g?6TRcdopijk9EtXYF&LxU3pB9#boBLDMT7m}i*Y#k zxdTvR0K4axNVc(!!UEew{BG8$O<{`@;XUFktXZo`|E<@h^JdqCS6Utg1odxupY41r zIYw=O9eqaNh2T9mVwz&|JnWR>*`c>q-}8^oVciyGPL=zqWJz=7@8c8qJrWXC8*>G1 zJv6ivCCYPq-xAD7=$-Z#CzhST_Fz;z{sr{(i$J`;Lr>>s!(XANi|W!>3_U?2j?N*R z%PQ5N%UB}NWgHRcve-80vf4K2vfMW4vfei6vfwu8vf?)Avg9`CvgS7EJeL9j8C_Q0 z23?lj23^+O23;2323=O(23?lk2A#)KL!P@Vz74vpz74u8zYV&qzYV%9zzw>r!2K8K z>AY><4c~viWBV@>(SF)S``-cz{~tq7f2l+M@8$F_pr@a9&d$5x)v56Jp{JiUc(ou3 z`1hfwpLRme$LiGy?O#AoKeP59H`0E`e}_cS{&qUrPhIVb(;lx9db;Ao$E$>%&gcEB z>uXmCJ)N&aSIF7#r=Y5_&o}A+AoLR|q|w8#PzP*_A?1=XTZ= zvUYXQ)4An$b(~!(^z@$-ApZf(a;2GR7Y6Y!#qD;HgGM!#=e%ghnd1c&PHS~1u|6Un)R|P$R z*nfi*|2Eb?!k+$;xc0w3e7;+9DUkpF@uPnO8L^#*_kP#q_p~f_NaXSV02xhl zLLejkW$@ix17zQ8-941K{gWDIjH;D6lLG2IcBa7V99~^CHxpOatLk8Oa?6T`sMl56 zk^Jt1iN9_kcKErjADJCpVek&bE8g>k}ZsRM1>HL2?3U7K)|{rqZj+Xy5wuAePNY~z$d zo;4kF$bG|cg%Q(@HCq<}6{i&MxLI&i(g(e`^BSswF(5wxIbAE0uvMYs$WQSIh+)T9 zUOuh{Lo}>UfH}91ew-sld*nw*MRHIp<}sMQh4Rf-C{(ux3s#R7r(n4}5qlQJjzs;$ zsn#{)bxf9Lvms*=wQdFy!jecsI?o!}kl+4Sp6KgV6w1x!3Y5SI8&}~7v)QtFtl@!x znNRdL&*F7H*tQC_?hL3cSmL+oGC#Md*?k$3YQs8r>jp3=hz&)>zYCMbi#9-<()SZK zM}c8GPbhJrVwg=MY=4^wy)lw~!^7;km90mrkbkn0$^VfvBr%KjI-#>!_2+C!9`)vf4nTg8DkBV{i#vtq>0GqdP~<9FXR294xz9KS`_ zr@|{G4TyAm*wjTYSyj=dM)mPLGppvatkgJ8b5LoWxClRhlB&kl#O~Xgx}K9-#)A}! zug9D!a|>~5Z@3nT0*lc_ABL1sNKW(Vc~Y2t>rOUJtn_#qzZvwX_{lf>vnjRD2ZAhy zIB(=ad;r|A;&5fT-5C-Af8cg9w6%NH;Shf*>VIw}7B@igcHBcZZ;qfYMzmN_TfC z9fAl-N}ge6JnwevKHFE;_np6HFL2GiSb0Cs@42o!3_`uM>LtwQ6{E?Y^z04Es#~{D zygEk4XPZ}z=5Jn2DUe+W@qa!g8nC;m<)jzCjSR*=M|1%XErz*PM2{S5(8`j1zqR0k zUxnn&B6cPHVT)CZ?}Kg5{phI7J%|Twp_UM)9$m4o;srH|Y(3(Hp1qqW&X^b>Psy$* zyHcvII=+@>{W?325oDEiSL^`CFur{@{8qMqYDi(KTk$QkGZA?B0&F4-47r^b6LUR| z(Lmf)RjnmTV+Kk*SvYGe%f&K5)XeOQ-dp)5wr|8$F7_nU_Qq*;sHL(q`ZMaU>nYbx zI+WkJrz_Xb;A-AWkck%V5UT# z$EA?ervdLZg0QF%j(a1}mFpR7{n_fh@$7h>0HzBwnNFLv}GmsOz1K9^Wy($icwZ(oI6dl+YHpPxpo$}3|>sz5!% z=GwxS54o9^DOlD11X&V^CfAA=L>iy!%;KqWE?*O~)Hk^JPQ{rE`j>Y@BBvL#mnIWP zPQ9nz5$_Hl<53dVCz- ziT0kdrgI)%3H`>z->8cj`!z&w4@cCRO6XoY)Ts$Ui5VX&bMU+|ar+i$;v|no%#3CyfnkTz(S|mmW%fmMy?U~W^%K!a+ZEcZ`q?PtqQgd zKhs4j_I|RMRjcd?g;$c7gi9pj21KGY!{>@TG%|L?6IKEq$1G{k_2e41dW7HC7-q|XQ1<>l zyMwn`>367x<8JuvkC$mwI6W+J>QyOP;oLK1I@5kuFDx%?(v z9Ku_vmu_}QVYt8D+f5YHvP+H_&(DWUIO0UuOFts?bIh$Lp`2V(Q>P&J)71u%v~Bmi(C z-2a>i=RYUH_0I`!f=k5-Z;cE6L^!VCtx}=e2nQFug(h_SWS$+0&tPl6PCntwoH(K3 zA@H9gupcyo1-^~=K4?r6d>iq7&~P{SHvIdb%|c<@AcSKL+CCJq4gWq6%qpbtW6A*R zZ~I=(o*plq0>k};BVdR7m(u=yP6Jwy0~!bkKj*&`^CyGz(>TDc{VkgXei;HM?awjX z&u8%D!UIs*pJTY6X8B?FDsa+Hf#H6Z2Iw-{(_pxtFSWnU7@YoTaS9Cg^R)&n@;wEH z`}u_aqgUdOo*jRV;W+=k`WXHy0`4|Ag$3-VKrHy{5jbt90C7KEY_K;raMDfz;(of= zU_}Ig(*8Ui@~4Z92hi8SX-M2JE;c}^FOV)UXlfgPFHt}VS2D zfnfP4fT;r*#lgqGfT;rt#r^QohQc)X?8oo9z(BB|neTtnf4MU(Y~~;L{eQc_;FB$g zo&SGQyx;PAL4zaz@*e#T?oLv7eiz)Ss#=e8;k)h>OwEZuE4oL48dhU72Kjiif5dDb zf5#(MD_}Y%ycFD9u=aU|incwpn-aX`CCK95`0O$X$2n!Bb2YqLysUn)xAu`3Sp1{0 zm1s~>@3uHzw7F5q?O<)%dw8FuiAkEL^dZx8tQ!;~w3Nr>b{6PWT$D{Mbg>e`iHs4q zOPeXba#{&le-*?+qDEa$Y^Y7+-^Hi+q)9MQiqxYYn?0rL9wdPJkYOfRpM$oQ5S`Z> zBu!I^ooSibqfcL(I5mZnFBK6rhiTOn$t@AwGTcf9vJ4YOcf(qekJW!Dhobo$V^Y}_ z*Bh&pkl_MS*sY6~hQCBJxD@wDKVh?p{Loy9lV?ds!WWFz;e2tUNedtI7K`4#RH8Sd z|1)Gp&seW#q13muV@}LoBcj6Nx8kO)%$y&Rf~}q>sPlT3fIH~Pt;)h0EQ>h{#`S0p zS0mPCn}xpKwR|TWL#q`VCUnQjkczeB=u5f%^W(@=(ME-wcwG%$RL;N@&aR~G(2pYf zmY16`V`Zzf?C0Kfq}=Z`TA$PWwCg;&IJ8t5MR44HW%KRq<>}pK@-IAi4ZSR%2dtXg zDJ>7w;>nwXn;ql~Sh_5VueOFW$2N*hQ461IddPzM;$ovb%VRgBSaDUFn5@dNW=o65 z6|HrO4)GEsmfc99O;R2yW_ZJz4vZ9yK_BluP}C>Ly_qckhN$o$EJ{km{$+SZQkNr% z93^L)`thoc)-+=ZnLKgXtjF7NHZ9YpOeN3RdG1ft@9Hj)*6nwPgrK3M1(Pykh2ays z5SX> zT?93&eQNd7PTJb_Zz=6*WL?i^4yTi|1U@jBuiHIqGqO8ap4+s5Cd=;c4PRdO>i){) zhNr1B6zj~xC!+XjeE7YNy1RG%bW%6lD=^uYZ0@;|5B?UZ%)|#b4;a!t+02z@2-04= zSi5|E@Y?N0w3Qv*?5+eJt?No>f?Sb&-wQGHny5fL*-YNdk1sgRmf=^5(0r_nd_Y&; zGa_Jf(4$l!L!Z!2r7v_Y=2K?w83?g)$Ee?@(nqpU_XzP=xRI+`a~}?8#JVej#HEZ6 z6|k4yVZEmN_6d!yvr&Jm&Sq}(Mv%3wq?u63brSYn zr+&OBt+ChYt40|}Jfa-?GT&y9cucBoc*RcFG5>zOXjh<8jSz!Tj{~n$kydEFe1d$d z+J`o3gOHj&a#SL%a1nPJT03FpWNo~0f0Nj#2du7kO8iNSAxfQ6*_+0K=bk2$e?50D zm;=?g#=>drQW;o2D^dS#?^Ck-n_U+#Wo)Czr*eKyAr&{glFl)qMXoEkk_@Jco~{}2 zRk(ojS&=L|Zn7W(Jlq~3fBgZM^10`RQ?!A`5cQ9I?;+l829Bzma|uuI9iPsU^d+<; zaY72%d-F^2-MH?9dn*r{iYF&@u*l1amG#9EHrFq7uzClaxs*DxXz`#)d_n7uuj<9o zN%9XCn5=|FF?LZJDO6#)^JGy60!lt+dpy34F`sKD(%0{wIrgT;dlH#BYriagBUFve zj>#!o_&PcLbQXk}vAZYnahQ}cvwFg{#ii=cEjCoPj~9kTMYU=y1eHBoX+tk5+Um?N_p3Xvulm7!tZ(+1*FRQTQL5us(V4R! zBFYR`xjtRZiS4~3o7$>-j9)d( z+sOFL(UIKa#puVhN+vk?m9|zhkN?|&yBf0x1*wg_wv6g6p>cICAIXr9r7o%F;-(g8 z^QcZm^-F~;OHO?iHt369NVnh6p6$rSL9Op8HVwtbk$92WcpqnvVugU4Csi`;89|X7 z?~!A^^rwkDe!(x{Xr9IO51p~?*XX{yNCw?hq5u&Hys>80R2(2fRU0jqu+&t3ADv1W zbuf+j{LZj1_XD=cd0f2n8yKt;#0)(9j~kg-Oadux&8xBP@0nPa*~*1#Y0EClpy0a< zJyogF%~d~d5=K0t-E;Un5VfA$;*Kc?GCsAxT-moi5+{pC=2R^t#8;l?Es*$Mi2h9U ze7PLCMPalmS&G9s&?L1Rj~UdJKIisY7BICa%i$z zZ+1>^dK(dh4t3vT&3>2qamZfm8h zZw*brhT$Aw8P`b*qZ5_{g5|oLd?J_RR(p}&Vk7My&-nHLD*>IWeV{UC&w|D@Ry?0aEr)K30ALLan;0{rI) zeGmlmf*`&R0%u--wVJ{Iw(mvm>1VA^!MOfDTL(Yfzm)dxvlc)zF8DeBrIPoy494I0**+bH?@483Zv+23gm{9Xm_e4c`F{VWa8so>KvuAeV8Kxcx% z05UERumL+@02vqjxewg61|Z{tzls2q_UB%+pRfb`^$46c02vqjjSZYM02vp&hyYL; zaEuFH*8nCBP{swXwE)xxnB5Fs{Q;*8NV^%lBK@Vde=pI1WnA#0_)nz($hbg1I7fb{ zsDI;_0L{4IV}oBFmOrUmfn;2;(F$P7fMr}@K*=D`j0-ld1MJ8FY&QeJMw@`C1DbKc z#=wB71B!8he#q!P;Z%rNo8PgUfquvu`LB2W%V^_&A5{G(uJHFj6>ORC_tW=1l#m-r z`FAfav zd}HIm1n(QpOg&&GP`~Z(Liy5LTpD81YIDc^R-IB)t$tw$p$8jpAa44bTMc)`0{XET zSEMo%h#W6rQ{P{HC_E*5hHp?U#|Ry2E34ziai+SfHFt(5;DyvD;}FpppC0tI$pMkg z$j>?xRgGWh3?LEM+c$$9X-U273B_CJ`V9h*d(XQokTNcPyuzm)qYynqub(JrA2r_1h^ObT$Dro&T;|>wb56rqeZ>EaFy;EosnSfriL_=qyDv-Rb_X)s zRo8BmgJyOpgpYZTC_~@ACAeI2Wys)*dV572&J5~<5oX#{Lh=kcg;@i<8O-w{lBjaA zX=oXd!5-N!rD*Xs2=3j9hz>gQ#qhFhZTHP6dG{U>%g8=KB(-!BsuzpXi|JH8eyE%` z1Fk9E=~Ycp%&|v}bsKFFv56D&Pb=?^YFQvCsv@s>j2(=O3Ms+YZmyoLXeO94?&G6% zP{MriOb5!iI@3xVhXUZfX z^>41xM5ha;t0$ikO;^r+sWfssF_6J9c)PVFqpNEer;-+PlQ~wKA^|^3%f$IE>GON*-6;x$QdVY_Xm#GTG?=+W46o0HC<@GBKy&1 zBGqzQgqu^5_~7aRMwVy7M0UeXk#DPoZkzW?HEp@W{2sJPD$1;n=lV*CWj$Byz39Mv ze(jmm{mh4X9B5^Q7DdtHc8!eP*&{ z1T+?D3!Qt;R`NtKSq-~dFScr6nYGuAJ_uLwOP{Z4ua7thdoy|zP93T66YGm_SKr!Q z&QR6x93TF=?y6S$xZ;?lemgHiDvz#{O!;vPh=GYXe`)NYRUz^hg-|Oy^*N+SBdRxE z`Xq@dg`sirxiTNo=9W=I!sE^}so%OpD1<+Yx=kHXRRtkwjxH3rwC_?Df3*l%@sfSq zZQOoGe#aTEj?R$cPG4;BBV!iIz9GSVbjQjVLzlqN7j{Dm*qB6@B*FIXg4K|W`=nok zpSoVW5Hmtv8U7-u_9_#~F+b^R%NJm+M%pzSkCiXCr`_onyi`Ljm9=sgr6RTB%VaQ3 z%Pqc?A<8zniox6yNfds)zq7kHm%rDJeBJC(HygX#_-B(+4Q>NQG?b)|+MR}++5w)4 zXDOITWmi=C)F-J{u(v0YBC2tiM{|Ae_D+#3jOkmGe0m~&Mtj01ftwYb+vM?3k} zk1M7z)1pwv=f2^jc8D%0Rc`8jO*C?s%|T9VB{mbqa0phj|In8sA67FtM}W< zw2GDHl>|aKH`;>+`I6bnSv~LSA&a9dU)&19^RS`{BG-B0BxzlKZ~pd?Bflxmc9EDJ zPu@3Df0_M=%j|7dPZteU`BvY2#&J@TukpYnM5QHn@~?crl9kC3rck`Hv`6r0wf>ms z8{4%}74ZbYyC07HH!QAI*?qFZV~-vcwIzSyHkZ|0<$S}jI$n30rQrRp8tT+s@>B_n z<%sBZDEAHUhODmW+--Rc>X<5L_9Y?eX(Hi=2C@^ri)Xa9&3w+auMD?4-(7BY%PTp* zPjGp@+~t~NY5wOk$M^bc*gKa@YT|Vs-MpkyW20if;>ldWoIKW?f5XpKVM6w9Q+`7LLszO zE5ZTPG>B>eq+sr}>n?LWE;fW$7q#;TeQ1b;mO_gn)KyZn%=bNVw1BzA!n5x^a_KhOC4$;SqQ z)ir=g0~Whn|LelzQ=d@)twkVM^#|Nh0~EW!D$-wS`}YzJVC(`bivLs!kl5v)&HBG_ zOaR9&|Lo8IlXnl0*abFP`Q-`w6J@|+7uX02Fl|6%7udKCICTJ9i-0xl1C3o^V_?9J z9bni6)+FG&tP^sAh$Hze>;j7_`Qx4cGTQiG!7l%4{{(Fr^+U?vf5~9LKdiL+ZWcOO zfAzZzM(w@*7&nPqx90RydTSZ^P3_h`-K>nKA3rBaV?KRsv`~xW$HCd-IsWYH@YM`0=YrC64}|m_IJt3(%_HO1BhAueeY;2r?ooP4*B@7r~+?BCuq{)V-lL*ZaP4 zKSbQGBAVglH815yYFftD6`{Ga1;_SQV9>jTLZ;i~P;MziDctkGc#6eAhOK)ytu;S=r?=5L z>19Ne7NZr{O9_Ruj#1d*tUKOvyHSF&!JIdqAZtEf?;+8~uEZ)uX0RtvY}g*!h%YA| zieEZ=jo#_GAA`NYqQiOXJH&pLS@H$QJ{U`B-e!uX5)i>*L5UQ7s;n%GI%a6TpJ-D> zgxt=$gyoH#4-ol*i+v%_oIHoY!4)_3tjGhVwX!tcib?Oa-<)<^J^S(Hfji+t1-bT$ zmU|QEJ$-HbLOahk?GxD_Pof zaSP96*K4z+pLbhfW^&Z$$b8q3^yr%e-=gomoW?aZSLab=`VOBW3HeNmbjV#YicjL6 z9O5Cu$g`Nnau1>LeotPA1g!I;b{ajwAY(ZCG|RJV|F(rgjW<~uUG8M^6>gv zy?dP^vQ)Rut!QnV%ewRt{CS&{onYZpVz;sv6H@vTx~l%zg15 zr7Sem2x?HExUUFp4aGP14Re7sI`Dc1R{A|f{MG1QezK|_p51Ds3Yq}BMo2L0^>>2{ zd8U^Rbq!o_k={$A+B^y;SR)`M>n|IBaz*0#biN&T=}>3Z`?_FaHt%Udv@h<#EbVzW zL-u9eKj5gOB%i$yXHJO5X138bWp;=otlUR46F?{4mR`%SM|#Y!%BG^4ARuKh9};dd z`b~HJv;6Dc=6n+Ii8Xb+8|vB)2Va*}T(m5e^^&Ionm7FNC_*Dj)mG&LCqRjCiEi+0XWx+v8;yyLktW6{OLzM;== zJ!>YkNY~ZgQOvfuZM#`#Yrt&y_L^yM2hj)}^H@~C ziHhy4#%r++dqZkV9#Q8;RPHeafCy*TW-mi73Qh9bOZg}=g?cN7>sbWWqkt*SQC+<5 z_`+K(;`5A9xNZHp3Z1k;_BVO$4MU!KMd`^eH?91Rfkr9e|Wk}H9l&uUYjkzkA{VmHzqm>`ZC2XVqT}=AVXWVqg=?S;( zR%wdbWh!?4G)4t1?p&_(ankL;_M_c%|Wgo+gTp_m92 zRh)(HmWaZUhg-#2O7^^g8$H!aL4qO9g4mP~H*1SN#mwu2X$a3;7HB`zWFVU-Ww4S# zT!E}jBf9<)t}M9)`s`MBAnswWjQZEFIXstaAJOtuh*6`2zEgLs`nFJ(?eVG`>&;7? zsO)Obc_x)UVq|89a(&csnwpAXhL-AbDusK^j!ov_7_KAWk+8g`NBOMorjh%8p&Isv z;@$%UA2cUE4?(bos9$D3ia4une17Jc1WwHMw1liacg!1$gmZSw*|>A*1Io#FzHLUa zvUIh(_+Fc5>Z}S($a~Ld>l}0~gXyEvZJN@U17q`7W^-{xtkwD@CQ81@3A4T#wELFt z^1%hh=HI9VIAtUa4YDjeTUhOM+sdD7>nn zXQ(+2+Fs{Rew@rr_m)kPTmih(nsxSykETbP%U&Ih!#UJS4;^%$&_<`;W3q&=2bUk1 zHu25c58f1TA=J%&{82!;tU{mvb#mvq-1<=Z7}m!)lv3-RA#GUuH`$mo6LQvV*S-oA zVVJ)a<3AeQJkXrJNVf7;6G!3W&yWoKi&nFLgJkd`>4*G1Fx(b&Do6%~TZXXMVY7wS zRQIVsuxt+~r9uSWfncE)3RGZ3;2jtdcn3xV-hp8e1Sh|T(=ISP6%e`&Hz$E%8O|ra zhtn=FY-JL3n-gv(0&~L6L||AK`jel-=@}Sm7C)h5V3=$E)B&QZjf&`b%xUL4*M9g#|B)|5OTqlnh>#|EUn5DH#|xHu$BQKdJ8l zq-5~X3Si0rrDX6C6kyr_reyGO9dPP^rDX8YCSd9Sret8)7#J{hfKf777XNoyP)Y`$ z|M}73hC;{VusH}Q7~`bkM5M1kH$c!0_!?p8#(yZ;5B%)6 zY)jCf1L*(Y`$70_TjGJXxcpsYrYdd^&DX2hS6QE@d839+;wfovwrnD;VIppdXNgye z%1Uy3lzQ&<`mjAZIjw4_>8MQ9&a#&{HiuWjHv=RF!eA7_*F04BWwB(jx|vhLsR;Rq z3Gm|auVg$djILdp+C=ZKPo@dJ{Y1eblW~^%-b@2m(f-v>QxsOZ{K4{49cX@rboWR; z-n0vU#enu+9Hoo&1^&BZ8eH@Zube5Z>!KFp=z@!?OrGpWAWgJ~Ei=J-g*2^%$h_Ws z(%gdR?FH?pBemlcYFL@bLe3&x*c zdAuXGTQE!In9WU<+Cpg29!J&hWSGKQwCga*+t)p})KoZdalyNr)6+jRg{~`UOJ?cG zRwus_}?5bb|5~e&l$sNkV4^ZK%!SK^SxzGP)Xge8;Y=L^V8si3_C^yCQM?X*M5bJeSqZUcrfw6TI(HC{SzXe0{k1h z)Dw|SPGVa%klyWGp^^l8p2vI@iX)ijQfZj^rVKR{j%4Fom=2)Qz`XnOD!sP16lQ~0 zqawtgp4GfQ6-$G!!cxDhM zuk$?O*qzvWq^4w>KWCzr4Q4YMJjyygQhw~!{WMxM@3UpWl>@v z&m^}mn|9qd#cHB%(=Vb;>!R(hc+;EKTmk81Lf~bo)UCvy7t--o;m0 z)%#YLc7{Q5f^DAXsYhj0(Fel==nQv8AC4!}6>)R17^UoWp<3CLU`_wQx9buGf-QVNBg?wv#LcKr$(oC zyovD1m}|t&V72H>rR~fboAyez|evaEo9iQJ6`D;vLIdW2qpe zRHkT7jTdsFTSv(x*A)aji_x+yupS3zu^l?bXG9#jwO1%TZNwaJaW9jnqRP;jo-?*5 zuqiG~JzT-vaosLL@nBV&4u5qgEQCGpR`j`vhdj|k8P@B^Wc5}B^~y{ode??Nw70*u z!_2G=msA~`TBb3!s$aOI%a%qDti8$KvNM7ZLx8y{lR~cF{@TjNw=jX-obK)}jx=B-KM7!J=jHs&2|v`4sUZ zzUziNx3a>0o>I1jIIWk5CD_dfDmIl+*<|f%eSPWGJ2`jZG%cF?kjH; zW12rUoUgnVuB`EdhcXdEuH~h&(rS{a%6{3sk&q@GNnNu?Z}9LF*Do>=ncvPYWPLw3 zDXc~!!Nxu(mv>Egyh`T7o5Jj&a&|s~ub808)J#It`Ho9I z>Roij{F_2F6GHXb+{~H9xe|_H1KYH<&;v_gfl`-y^XDsgnL< z+$H9iQw}Lz>*=Wrp9k-Wq7z}#-@7`eo{|4v{#?FOGd`umzM_?@5y@*LWD#6pY@+tg zb9F~=`&|9-ST8mk9z3(^#-r4Z9c}wsVYgZp=_UTK*q*QKUiDX8d>77~b*s8Bp~y;t zJ272i8pICR^&M4*k6Je-Yu*zb?6VIVZCn3>6aAvs@83BQ+{E-(GZh%_a{`zXfe~SG zU_@9P7!ei+hD9Afc?}{g4vYwk10%xXpfm1pK7%l%gW;ij(0`BMJFq2GC;KCK5d`jz z0$)S$qH74ga}8ceK`k5b@4JTJMX8J_!LdCxV~zUyAvY@%Cvr5zpT_5wM9Hr{F|Cok3vJ zHck^__Y?5|HfrNEZmOT9o!sugU23P`L_b|>uqPUD(tzYdzX&}&jV}mDPV_@W{OO;u zKysoV@=pMe1|%o?VTJMOwE@YAU~g>T?gJn>5v+&+P#S=o2v*ksCJk6l1go_G)CL?U zf>nRODFc)f!79>UYWw#R4Oll77*-VjsT3eN5v(fzQz3wJBG}mAmumi`ZUvGP!A2{9 zDFc=h!A4MkX#<)QT{{`q0jCaNP6TW|2hg18pCdZ{{C?nIQPrroFBAXc*yX^CDlbN`tn9s7T)FBu^r9gk%zg zXk6-%X;0DbsX2=kqQmGPe7hloCio>Z#%{wa>VD9+IivV<1#Gp9%J5#ov(*i?!-Zbg zTk8E>CZhv#xRN z>TQR#m%fZIWf(sRdP|@|n=NrN_3CH!irZLtGM~31WVzjSLwaT)z$FnHWcQgfb)DXW z@==}=r%_a3Dt4`?jWzHhF~P@k3VAQR{AaHiOx z)51r(72RW+DSZ-T7p`MOw)BzFb6t(GX+7$TDNX538%8!mTiFP2HPPx(YguTJ-M1lM zDYL7bNzfp>>kq{=`3R3zxWz6r<1$3tKr3+xE{(bGRa&|&Tlj|lv81mVv0|Cdvu_kv z{l_qjXF49OC6t$%Z+}VBa!fpDM~*vyvo|<^`^>d5bh4d4IXLub@Gh%g&vB@m`|M@2 zhAbBU5LK7Kuk-pr+}f-i(u8ex|h84L`hSP)Hh=L#9BZRCn>bcCl>6 zG_Q_jNLhqO*GBdZo9#BN(^A?=r=|Iem1+}XTpX3%fjd`H_lw-M(QbUlK>aiX4=Zz4 z+0_;o`c1WOV_m4T2=H_fyc0V=6fty2@BaZ0>YwVu4b^DE^sa1-DcR_xe4hK3r*zI&V_7*`2wSeB67@}!t+m+q(2V&4LyT=LvXZ^o! zv`%flbU3zS5HV+noEy6fKHyrp5*MJ@_tFUGbyVPvZ04o@Qu%lfHH-&*B;^k<>H79k ziXIzTOe!@S=5=I*7pM40y<%)f!l^Q`+UDoAUHwQXsa5Mq*z&-j>=l0*_uW>A?aO(q zTZJFWRP(LZbMNVXGBX&dpIdR7U(yfsQKc6*(Kp$_?^fzSVk@+BA{(aCVUZg;!WM93 zPu3byPpk`hFz%8=vI5GX$7YN(GhtA0{pfFfA+Kc7OfPhqa=U6-nuIwqAt*bWY=K#^ z1GnmPLO_WA%u)fkxmC*i1}|^UXl-8y%7u4%H+Fi{F6loU5M2{n-Sj@ZYtDIgpt3ES z!b1;rayz|6rTfyx`A^YJ;OIE%71QG4t4fk3`pS=-kzSLy3gl{IBzzif1=&%2SY?EE4MkzxGb-#vd$RT5RhwxGfj77`@1u}gCudr z)R|yjl`F*L1`n=we|gQbwtauo)v$|y&GS{4$$0~AZ;#T)p`y@dLXuV5lm@aNF5Aok zj_u@yHoCWmW?f>3u`woHx2hldGky+y`0B!^Cv{JshZYN*eY;bHucM*0JZTkr75C+H zp9JA|>!op3Jq^kF{1*BQkVNzD7MMc&L*$bJ4u z!m0Rc+^^&0l3((7UDrWbR(ms*$W4p&S!;-=AauHey6V#2!Af!NV=TW4fuIG=PMp@w=ASNGs zorJgj;>`|Y^@N$ayIa~wM&_1vI!c`-R(cU_vR#jCDh;0xWD82XgNx0dw?84@3y@vr8ar;ujOw_VbWqG-S~XdD z-i}l-p3o&a!))v0#d=2WBna3OX&`xwzi9TDUpT*s zw7$1#ZcAd2ye@9md>x!-8eTc;zPV&u9h$v%7qM2gB!O{)T4YujwBwJP^29252+` zi>`p84@96G7!fE3Mg+=%5rJ}GM4%iP5hw?Sr|v=bLm(4)FduXqflOfQcA(!2>&Sib zi9j&0UehPr2m}M`qI|NAKspFZ5g1`90wXL%5QL=&I%fexGZ2KO2!gN_K@gUrAJEJ{ z$8!8hsd^d<®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%0ASdEqGld_PT>fN2&v^;z^Ao-J&n}ujEA0}2q@U=; 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 literal 0 HcmV?d00001 diff --git a/órai anyagok/week02/api.tex b/órai anyagok/week02/api.tex new file mode 100644 index 0000000..cf098fd --- /dev/null +++ b/órai anyagok/week02/api.tex @@ -0,0 +1,20 @@ +\documentclass[aspectratio=169]{beamer} +\usepackage{../common/webfejl} + +\title{Webtechnológia és webalkalmazás-fejlesztés} +\subtitle{2. hét -- REST API, Architekturális felépítések, CQRS} + +\begin{document} + +\begin{frame} +\titlepage +\logoalul +\end{frame} + +\input{sections/00-visszatekintes} +\input{sections/01-rest-api} +\input{sections/02-architektura} +\input{sections/03-cqrs} +\input{sections/04-kovetkezo-lepesek} + +\end{document} diff --git a/órai anyagok/week02/sections/00-visszatekintes.tex b/órai anyagok/week02/sections/00-visszatekintes.tex new file mode 100644 index 0000000..37a6fc6 --- /dev/null +++ b/órai anyagok/week02/sections/00-visszatekintes.tex @@ -0,0 +1,31 @@ +\section{Visszatekintés} + +\begin{frame}{Miről volt szó múlt héten?} +\footnotesize +Az első héten megismertük a webes kommunikáció alapköveit: a HTTP protokollt, a Node.js futtatókörnyezetet és az npm csomagkezelőt. Ezek nélkül nem tudnánk elindulni -- de önmagukban még nem elegendők egy jól használható backend rendszer megépítéséhez. + +\begin{itemize} +\item \textbf{HTTP/HTTPS:} Request-Response modell, állapotmentes protokoll, metódusok (GET, POST, PUT, PATCH, DELETE), státuszkódok +\item \textbf{Node.js:} szerveroldali JavaScript futtatókörnyezet, beépített \texttt{http} modul egy egyszerű szerver elindítására +\item \textbf{npm:} csomagkezelés, \texttt{package.json}, függőségek +\end{itemize} + +\begin{block}{A hiányzó darab} +Múlt héten a \texttt{http.createServer}-rel csak egyetlen, mindent kiszolgáló függvényt írtunk. Éles alkalmazásoknál ez gyorsan kezelhetetlenné válik -- szükségünk van egy \emph{tervezési logikára}, ami megmondja, hogyan szervezzük az útvonalainkat, adatainkat és a kódunk rétegeit. +\end{block} +\end{frame} + +\begin{frame}{Mi a célja a mai órának?} +\footnotesize +A mai anyag három, egymásra épülő témát dolgoz fel: hogyan tervezzünk jól használható API-kat, hogyan szervezzük a backend kódunkat rétegekbe, és hogyan válasszuk szét az írási és olvasási műveleteket, ha a rendszerünk ezt megkívánja. + +\begin{itemize} +\item \textbf{REST API alapok} -- hogyan tervezzünk következetes, könnyen használható API-t +\item \textbf{Architekturális felépítések} -- hogyan szervezzük a backend kódunkat rétegekbe, hogy karbantartható maradjon +\item \textbf{CQRS} -- mikor éri meg szétválasztani az írási és olvasási műveleteket +\end{itemize} + +\begin{alertblock}{Fontos} +A mai témák még mindig \emph{tervezési} kérdések -- konkrét kódot Express.js-ben csak a jövő héttől írunk. Most a "miért így?" kérdésre keressük a választ, hogy a következő heti kód már értelmes döntéseken alapuljon. +\end{alertblock} +\end{frame} diff --git a/órai anyagok/week02/sections/01-rest-api.tex b/órai anyagok/week02/sections/01-rest-api.tex new file mode 100644 index 0000000..8dfb994 --- /dev/null +++ b/órai anyagok/week02/sections/01-rest-api.tex @@ -0,0 +1,138 @@ +\section{REST API alapok} + +\begin{frame}{Mi az API?} +\footnotesize +Az \textbf{API} (Application Programming Interface) egy megállapodás arról, hogyan kommunikálhat egymással két szoftverkomponens -- anélkül, hogy az egyiknek ismernie kellene a másik belső működését. Amikor a telefonodon megnyitod egy időjárás-alkalmazást, az alkalmazás egy API-n keresztül kér adatot egy távoli szervertől; neked (és az alkalmazásnak) fogalma sincs, hogyan tárolja a szerver az adatokat belül -- csak azt kell tudnia, milyen kérést küldjön, és milyen választ várhat. + +\begin{itemize} +\item Egyértelmű, dokumentált "szerződés" a kliens és a szerver között +\item Elrejti a belső implementációs részleteket (adatbázis típusa, kód szerkezete, stb.) +\item Web API-k esetén jellemzően HTTP felett kommunikálunk -- ez az, amit az elmúlt órán megismertünk +\end{itemize} + +\begin{block}{REST -- egy konkrét API-stílus} +A \textbf{REST} (Representational State Transfer) nem egy protokoll vagy szabvány, hanem egy architekturális stílus, amit Roy Fielding írt le 2000-ben a doktori disszertációjában. Ma a legelterjedtebb módja a web API-k tervezésének. +\end{block} +\end{frame} + +\begin{frame}{Mitől "RESTful" egy API?} +\footnotesize +Fielding öt fő elvet fogalmazott meg, amiknek egy API-nak meg kell felelnie ahhoz, hogy igazán RESTfulnek nevezzük. A gyakorlatban a legtöbb "REST API"-nak nevezett rendszer csak részben követi ezeket -- de minél többet betartunk belőlük, annál kiszámíthatóbb és skálázhatóbb lesz az API-nk. + +\begin{itemize} +\item \textbf{Kliens-szerver:} a kliens és a szerver különálló felelősséggel bír, egymástól függetlenül fejleszthetők +\item \textbf{Állapotmentesség (statelessness):} minden kérés önmagában tartalmaz minden szükséges információt -- ezt már az 1. héten megismertük a HTTP-nél +\item \textbf{Cache-elhetőség:} a válaszoknak jelezniük kell, hogy gyorsítótárazhatók-e (pl. \texttt{Cache-Control} header) +\item \textbf{Egységes interfész (uniform interface):} az erőforrásokat egységes módon, azonosítható URL-eken keresztül érjük el +\item \textbf{Rétegzett rendszer:} a kliens nem tudja (és nem is kell tudnia), hogy közvetlenül a szerverrel, vagy egy köztes rétegen (pl. load balancer, cache) keresztül kommunikál-e +\end{itemize} +\end{frame} + +\begin{frame}[fragile]{Erőforrás-orientált URL tervezés} +\footnotesize +Az URL-ek \emph{erőforrásokat} (főneveket) azonosítsanak, ne \emph{műveleteket} (igéket) -- a műveletet úgyis a HTTP metódus fejezi ki. + +\begin{block}{Rossz gyakorlat (igealapú URL)} +\begin{verbatim} +GET /getAllUsers +POST /createNewUser +POST /deleteUser?id=123 +\end{verbatim} +\end{block} + +\begin{block}{Jó gyakorlat (erőforrás-alapú, többes szám)} +\begin{verbatim} +GET /users # osszes felhasznalo +POST /users # uj felhasznalo letrehozasa +GET /users/123 # egy adott felhasznalo +DELETE /users/123 # felhasznalo torlese +\end{verbatim} +\end{block} +\end{frame} + +\begin{frame}{CRUD $\to$ HTTP metódus megfeleltetés} +\footnotesize +Ez a táblázat gyakorlatilag a REST API tervezés "alaptörvénye" -- ha ezt következetesen betartod, az API-d azonnal ismerős és kiszámítható lesz bárki számára, aki már használt REST API-t. + +\begin{tabular}{|l|l|l|} +\hline +\textbf{Művelet} & \textbf{HTTP metódus} & \textbf{Végpont példa} \\ +\hline +Create (létrehozás) & POST & \texttt{POST /users} \\ +Read (egy elem) & GET & \texttt{GET /users/123} \\ +Read (lista) & GET & \texttt{GET /users} \\ +Update (teljes) & PUT & \texttt{PUT /users/123} \\ +Update (részleges) & PATCH & \texttt{PATCH /users/123} \\ +Delete (törlés) & DELETE & \texttt{DELETE /users/123} \\ +\hline +\end{tabular} + +\begin{block}{Emlékeztető az 1. hétről} +GET, PUT, DELETE idempotensek -- többszöri hívás ugyanazt az állapotot eredményezi. A POST nem az. +\end{block} +\end{frame} + +\begin{frame}{Richardson Maturity Model} +\footnotesize +Leonard Richardson egy szintekre bontott modellt alkotott, amivel megmérhető, mennyire "RESTful" valójában egy API. A legtöbb valós API a 2. szinten áll -- ez teljesen elfogadható, a 3. szint (HATEOAS) ritkán éri meg a többletbonyolultságot. + +\begin{itemize} +\item \textbf{0. szint:} egyetlen végpont, minden művelet ugyanazon keresztül megy (pl. RPC-szerű, SOAP-hoz hasonló stílus) +\item \textbf{1. szint:} külön erőforrások, saját URL-lel, de a HTTP metódusokat még nem használjuk következetesen +\item \textbf{2. szint:} erőforrások + helyesen használt HTTP metódusok és státuszkódok -- \emph{ez a gyakorlatban elterjedt "REST API" szint} +\item \textbf{3. szint (HATEOAS):} a válasz linkeket is tartalmaz a kapcsolódó műveletekhez, így a kliensnek nem kell előre tudnia az összes URL-t +\end{itemize} +\end{frame} + +\begin{frame}[fragile]{API verziózás} +\footnotesize +Az API-k idővel változnak -- új mezők, módosított viselkedés. Ha egy változás nem visszafelé kompatibilis, szükség van egy módra, hogy a régi klienseket ne törjük el. Erre szolgál a verziózás. + +\begin{block}{URL-alapú verziózás (leggyakoribb)} +\begin{verbatim} +GET /api/v1/users/123 +GET /api/v2/users/123 +\end{verbatim} +Egyszerű, jól látható, könnyen tesztelhető Postmanben is. +\end{block} + +\begin{block}{Header-alapú verziózás} +\begin{verbatim} +GET /api/users/123 +Accept: application/vnd.myapp.v2+json +\end{verbatim} +"Tisztább" URL-eket eredményez, de nehezebb böngészőből tesztelni. +\end{block} +\end{frame} + +\begin{frame}[fragile]{Lapozás, szűrés, rendezés} +\footnotesize +Amikor egy erőforrásból (pl. felhasználók) több ezer is lehet, nem küldhetjük vissza mindet egyszerre -- ezt oldják meg a query paraméterek, amikkel a kliens finomíthatja, pontosan mit szeretne kapni. + +\begin{verbatim} +GET /users?page=2&limit=20 +GET /users?role=admin +GET /users?sort=-createdAt +GET /users?search=alice +\end{verbatim} + +\begin{itemize} +\item \textbf{Lapozás (pagination):} \texttt{page}/\texttt{limit} vagy \texttt{offset}/\texttt{limit} párokkal +\item \textbf{Szűrés (filtering):} egy adott mező szerinti szűkítés (\texttt{role=admin}) +\item \textbf{Rendezés (sorting):} \texttt{sort=mezonev}, mínusz előjellel csökkenő sorrend +\end{itemize} +\end{frame} + +\begin{frame}{Összefoglalás -- REST API} +\footnotesize +\begin{block}{REST API tervezés} +\begin{itemize} +\item API: szerződés két rendszer kommunikációjához; REST: egy elterjedt architekturális stílus rá +\item Fielding elvei: kliens-szerver, statelessness, cache-elhetőség, egységes interfész, rétegzettség +\item URL-ek: erőforrások (főnevek, többes szám), nem műveletek (igék) +\item CRUD $\to$ HTTP metódus: POST/GET/PUT/PATCH/DELETE következetesen +\item Richardson Maturity Model: a legtöbb API a 2. szinten van, ez rendben van +\item Verziózás: URL vagy header alapon; lapozás/szűrés/rendezés: query paraméterekkel +\end{itemize} +\end{block} +\end{frame} diff --git a/órai anyagok/week02/sections/02-architektura.tex b/órai anyagok/week02/sections/02-architektura.tex new file mode 100644 index 0000000..d13e009 --- /dev/null +++ b/órai anyagok/week02/sections/02-architektura.tex @@ -0,0 +1,125 @@ +\section{Architekturális felépítések} + +\begin{frame}{Mi a szoftverarchitektúra, és miért számít?} +\footnotesize +A szoftverarchitektúra azt írja le, hogyan van a kódunk nagy egységekre (rétegekre, modulokra, szolgáltatásokra) felosztva, és ezek hogyan kommunikálnak egymással. Egy kis, egyszemélyes prototípusnál szinte mindegy, hova írjuk a kódot -- de amint a projekt nő, csapatban dolgozunk rajta, vagy hónapok múlva kell hozzányúlni, a jó architektúra dönti el, hogy karbantartható marad-e a rendszer, vagy "spagettikóddá" válik. + +\begin{itemize} +\item Könnyebb megérteni: világos, hogy melyik kód mit csinál, és hol keresendő egy adott logika +\item Könnyebb tesztelni: a rétegek külön-külön, elszigetelten tesztelhetők +\item Könnyebb bővíteni: új funkció hozzáadásakor tudjuk, hova illesztjük be +\item Könnyebb csapatban dolgozni: a felelősségek szét vannak választva +\end{itemize} +\end{frame} + +\begin{frame}{Rétegzett architektúra -- az öt réteg (1/2)} +\footnotesize +A rétegzett felépítésnél a kódot vízszintes rétegekbe szervezzük, ahol minden réteg csak a közvetlenül alatta lévővel kommunikál. Ezen a tárgyon a következő öt réteges felosztást fogjuk következetesen használni -- elsőként a "felső" három réteg: + +\begin{block}{} +\begin{itemize} +\item \textbf{API / Controller:} fogadja a HTTP kéréseket, validálja a bemenetet, meghívja az Application réteget, visszaadja a választ -- ezt Express.js-ben írjuk meg a jövő héten +\item \textbf{Application:} az egyes use case-eket (parancsokat/lekérdezéseket) orchesztrálja -- ide kerülnek majd a CQRS command/query handlerek +\item \textbf{Domain:} a tiszta üzleti logika, entitások, aggregates -- semmilyen technikai függősége nincs, nem "tudja", hogy Express-ben vagy adatbázissal fut +\end{itemize} +\end{block} +\end{frame} + +\begin{frame}{Rétegzett architektúra -- az öt réteg (2/2)} +\footnotesize +A maradék két réteg a rendszer "peremén" helyezkedik el: az egyik a kifelé irányuló adatszerződéseket, a másik a technikai megvalósítást fogja össze. + +\begin{block}{} +\begin{itemize} +\item \textbf{Communication:} a rétegek/külső rendszerek közti szerződések -- DTO-k, mapperek (6. hét) +\item \textbf{Infrastructure:} a konkrét technikai megvalósítás -- adatbázis-kapcsolat, külső szolgáltatások +\end{itemize} +\end{block} + +\begin{alertblock}{Miért éri meg?} +Ha lecseréljük az adatbázisunkat, csak az Infrastructure réteget kell módosítani -- a Domain és az API réteg változatlan marad. +\end{alertblock} +\end{frame} + +\begin{frame}{MVC minta} +\footnotesize +Az MVC (Model-View-Controller) a rétegzett architektúra egyik legismertebb konkrét megvalósítása, eredetileg felhasználói felületekhez, de a backend világban is elterjedt elnevezés lett a hasonló felosztásra. + +\begin{itemize} +\item \textbf{Model:} az adatokat és az azokhoz tartozó szabályokat képviseli (nálunk: a Domain + Infrastructure réteg) +\item \textbf{View:} a megjelenítés -- backend API-nál ez jellemzően a JSON válasz formázása +\item \textbf{Controller:} fogadja a bejövő kérést, meghívja a megfelelő Model-műveletet, és visszaküldi a View-t +\end{itemize} + +\begin{block}{Backend kontextusban} +Amikor a jövő héten Express.js-ben "route handler"-t írunk, az gyakorlatilag az API/Controller réteg szerepét tölti be: fogadja a HTTP kérést, és delegálja a munkát az Application rétegnek. +\end{block} +\end{frame} + +\begin{frame}{Monolit vs mikroszolgáltatás} +\footnotesize +Ez a döntés arról szól, hogy a teljes backend rendszerünket egyetlen, összefüggő alkalmazásként (monolit), vagy sok, önállóan futtatható kis szolgáltatásra bontva (mikroszolgáltatások) építjük-e fel. Egyik sem "jobb" alapból -- a projekt méretétől és a csapat helyzetétől függ. + +\begin{columns} +\begin{column}{0.48\textwidth} +\begin{block}{Monolit} +\begin{itemize} +\item Egyetlen kódbázis, egyetlen futó folyamat +\item Egyszerűbb fejleszteni és deployolni kisebb csapatban +\item Egyszerűbb tranzakciókezelés +\end{itemize} +\end{block} +\end{column} +\begin{column}{0.48\textwidth} +\begin{block}{Mikroszolgáltatások} +\begin{itemize} +\item Sok kis, önálló szolgáltatás, saját adatbázissal +\item Külön-külön skálázhatók és deployolhatók +\item Nagyobb komplexitás: hálózati kommunikáció, elosztott tranzakciók +\end{itemize} +\end{block} +\end{column} +\end{columns} + +\begin{alertblock}{Gyakorlati tanács} +Kezdj monolittal! A tárgy során épített API is monolit lesz -- a mikroszolgáltatásokra való szétbontás egy már működő, jól rétegzett monolitból sokkal könnyebb, mint elölről tervezni. +\end{alertblock} +\end{frame} + +\begin{frame}{Separation of Concerns} +\footnotesize +A "Separation of Concerns" (felelősségek szétválasztása) az az elv, ami az összes eddigi mintát (rétegzés, MVC) megalapozza: minden kódegységnek egyetlen, jól körülhatárolt felelőssége legyen. + +\begin{itemize} +\item Egy függvény/osztály ne csinálja egyszerre a HTTP kérés kezelését \emph{és} az adatbázis-lekérdezést \emph{és} az email küldést +\item Ha egy dolog megváltozik (pl. az adatbázis lekérdezésének módja), az csak egy helyen igényeljen módosítást +\item Könnyebb egyesével, elszigetelten tesztelni az egyes felelősségeket +\end{itemize} + +\begin{block}{Ökölszabály} +Ha egy függvény nevét csak "és"-sel tudod leírni (pl. "validál ÉS ment ÉS emailt küld"), valószínűleg érdemes szétbontani. +\end{block} +\end{frame} + +\begin{frame}{Kitekintés -- mi jön még ebben a témában} +\footnotesize +A rétegzett architektúra és a Separation of Concerns elve két fogalmat is megalapoz, amikkel a félév további részében részletesen foglalkozunk majd -- most csak annyit érdemes megjegyezni, hogy hova illeszkednek. + +\begin{itemize} +\item \textbf{Repositories és Aggregates (5. hét):} az Infrastructure réteg formalizált, ORM-alapú megvalósítása -- a repository "elrejti" az adatbázis-lekérdezéseket egy egyszerű interfész mögé +\item \textbf{Dependency Injection (11. hét):} technika arra, hogy a rétegek közötti függéseket (pl. "a controllernek szüksége van a service-re") ne kézzel drótozzuk be, hanem egy keretrendszer intézze +\end{itemize} +\end{frame} + +\begin{frame}{Összefoglalás -- Architekturális felépítések} +\footnotesize +\begin{block}{Architektúra} +\begin{itemize} +\item A jó architektúra karbantarthatóvá, tesztelhetővé és bővíthetővé teszi a rendszert +\item Rétegzett architektúra (öt réteg): API/Controller -- Application -- Domain -- Communication -- Infrastructure +\item MVC: Model-View-Controller -- a Controller felel meg a jövő heti Express.js route handlernek +\item Monolit vs mikroszolgáltatás: kezdj monolittal, bontsd szét később, ha indokolt +\item Separation of Concerns: minden kódegységnek egy jól körülhatárolt felelőssége legyen +\end{itemize} +\end{block} +\end{frame} diff --git a/órai anyagok/week02/sections/03-cqrs.tex b/órai anyagok/week02/sections/03-cqrs.tex new file mode 100644 index 0000000..9a7f585 --- /dev/null +++ b/órai anyagok/week02/sections/03-cqrs.tex @@ -0,0 +1,115 @@ +\section{CQRS} + +\begin{frame}{A probléma: egy modell, két teljesen más terhelés} +\footnotesize +A legtöbb egyszerű alkalmazásban ugyanaz a kód, ugyanaz az adatmodell szolgálja ki mind az adatok módosítását (írás), mind a lekérdezését (olvasás). Ez sokáig teljesen jól működik -- de bizonyos rendszereknél ez a közös modell egyre inkább korlátozó tényezővé válik. + +\begin{itemize} +\item Az írási műveleteknél fontos a szigorú validáció és az üzleti szabályok betartatása +\item Az olvasási műveleteknél viszont gyakran \emph{más} adatszerkezet lenne ideális (pl. több táblából összefésült, "lapos" nézet egy listázó felülethez) +\item Ha ugyanaz a modell szolgál ki mindkét célt, gyakran kompromisszumot kell kötni -- egyik oldal sem lesz igazán optimális +\end{itemize} + +\begin{block}{Példa} +Egy webshopnál a rendelés \emph{leadása} (írás) sok validációt igényel (készlet, fizetés, kedvezmények), míg a rendelések \emph{listázása} (olvasás) egyszerűen csak gyors, jól szűrhető megjelenítést igényel -- a kettő igénye nagyon eltérő. +\end{block} +\end{frame} + +\begin{frame}{A CQRS lényege} +\footnotesize +A \textbf{CQRS} (Command Query Responsibility Segregation, magyarul "parancs-lekérdezés felelősség szétválasztás") azt mondja ki: válasszuk szét élesen az írási (command) és olvasási (query) műveleteket -- akár külön modellel, külön kóddal, szélsőséges esetben külön adatbázissal is. + +\begin{itemize} +\item \textbf{Command (parancs):} egy szándékot fejez ki valaminek a megváltoztatására (pl. "hozz létre egy rendelést") -- nem ad vissza adatot, legfeljebb egy azonosítót vagy sikerességet +\item \textbf{Query (lekérdezés):} adatot kér le, \emph{nem} változtat semmin -- ez pontosan megfelel a HTTP GET idempotens, csak-olvasó jellegének, amit már az 1. héten megismertünk +\end{itemize} + +\begin{alertblock}{Fontos megkülönböztetés} +A CQRS nem ugyanaz, mint a HTTP metódusok GET/POST felosztása -- az egy protokollszintű konvenció, a CQRS pedig egy \emph{architekturális döntés} arról, hogy a kódunk belső szerkezete is kövesse ezt a felosztást. +\end{alertblock} +\end{frame} + +\begin{frame}[fragile]{Command és Query -- egyszerű példa} +\footnotesize +A lényeg pszeudokódban jól látszik: a Command egy műveletet hajt végre és validál, a Query csak lekérdez -- a kettő felelőssége, sőt akár a visszatérési típusa is más. + +\begin{columns} +\begin{column}{0.48\textwidth} +\begin{block}{Command -- írás} +\begin{lstlisting}[language=JavaScript,style=NodeJS] +function createOrder(data) { + validate(data); + checkStock(data.items); + const order = save(data); + return order.id; +} +\end{lstlisting} +\end{block} +\end{column} +\begin{column}{0.48\textwidth} +\begin{block}{Query -- olvasás} +\begin{lstlisting}[language=JavaScript,style=NodeJS] +function getOrderById(id) { + return db + .orders + .findOne({ id }); +} +\end{lstlisting} +\end{block} +\end{column} +\end{columns} + +\begin{block}{Mi változik igazán CQRS-sel?} +Nem feltétlenül a fájlok fizikai elválasztása a lényeg, hanem az, hogy a Command sosem ad vissza lekérdezési adatot, és a Query sosem módosít állapotot -- ez a szigorú szétválasztás teszi átláthatóvá a rendszert. +\end{block} +\end{frame} + +\begin{frame}{Miért éri meg a CQRS-t bevezetni?} +\footnotesize +A szétválasztás nem öncélú bonyolítás -- konkrét, mérhető előnyöket ad olyan rendszereknél, ahol az írási és olvasási terhelés jelentősen eltér egymástól. + +\begin{itemize} +\item \textbf{Független skálázhatóság:} ha egy rendszerben sokkal több az olvasás, mint az írás (ez a leggyakoribb eset), az olvasási oldalt külön lehet skálázni +\item \textbf{Optimalizált olvasási modellek:} a lekérdező oldalon szabadon kialakíthatunk a megjelenítéshez ideális, denormalizált nézeteket, anélkül hogy az írási oldal adatmodelljét kompromisszumba kényszerítenénk +\item \textbf{Egyszerűbb, célzottabb kód:} egy Command csak a validációra és a módosításra koncentrál, egy Query csak a lekérdezésre -- egyik sem próbál "mindent tudni" +\end{itemize} +\end{frame} + +\begin{frame}{Mikor túlzás a CQRS?} +\footnotesize +A CQRS egy erős eszköz, de nem ingyen jön -- minden architekturális mintánál fontos feltenni a kérdést: \emph{a probléma, amit megold, valóban jelen van-e nálunk?} + +\begin{alertblock}{Ökölszabály} +Egyszerű CRUD alkalmazásoknál (ahol az írás és olvasás igénye hasonló, és nincs komoly skálázási probléma) a CQRS csak felesleges réteget és bonyolultságot ad hozzá -- ilyenkor egy egyszerű, közös modell teljesen megfelelő. +\end{alertblock} + +\begin{itemize} +\item Kis csapatnál, kis projektnél a többletkód karbantartása nem éri meg a hasznot +\item Csak akkor vezessük be, ha ténylegesen tapasztaljuk a "két különböző igény" problémáját +\item A tárgy hátralévő részében épített API-nk egyszerű CRUD marad -- a CQRS itt főleg mint \emph{fogalom} és \emph{gondolkodásmód} fontos +\end{itemize} +\end{frame} + +\begin{frame}{Kitekintés: Event Sourcing} +\footnotesize +A CQRS-t gyakran együtt említik egy másik mintával, az \textbf{Event Sourcing}-gal, bár a kettő nem jár automatikusan együtt. + +\begin{block}{Az alapötlet} +Ahelyett, hogy csak az adat \emph{jelenlegi állapotát} tárolnánk, minden változást (eseményt) elmentünk -- pl. "OrderCreated", "OrderPaid", "OrderShipped". A jelenlegi állapotot ezekből az eseményekből lehet bármikor újraszámolni. +\end{block} + +Ez a tárgy keretein túlmutat, de érdemes tudni, hogy létezik: teljes körű auditnaplót ad ingyen, és jól illeszkedik a CQRS command-oldalához. Ára viszont jelentős többletkomplexitás. +\end{frame} + +\begin{frame}{Összefoglalás -- CQRS} +\footnotesize +\begin{block}{CQRS} +\begin{itemize} +\item A probléma: egy közös modell néha rosszul szolgálja ki mind az írást, mind az olvasást +\item CQRS: Command (írás, nem ad vissza adatot) és Query (olvasás, nem módosít) szigorú szétválasztása +\item Előny: független skálázhatóság, optimalizált olvasási modellek, egyszerűbb, célzottabb kód +\item Csapda: egyszerű CRUD alkalmazásoknál felesleges többletkomplexitás +\item Kapcsolódó fogalom: Event Sourcing (események tárolása állapot helyett) -- ez már a tárgy keretein túlmutat +\end{itemize} +\end{block} +\end{frame} diff --git a/órai anyagok/week02/sections/04-kovetkezo-lepesek.tex b/órai anyagok/week02/sections/04-kovetkezo-lepesek.tex new file mode 100644 index 0000000..4a1468f --- /dev/null +++ b/órai anyagok/week02/sections/04-kovetkezo-lepesek.tex @@ -0,0 +1,17 @@ +\section{Következő lépések} + +\begin{frame}{Következő lépések} +\footnotesize +Ma megismertük, hogyan tervezzünk jól használható REST API-t, hogyan szervezzük a backend kódunkat rétegekbe, és mikor érdemes szétválasztani az írási és olvasási műveleteket. A jövő héten ezekre a tervezési elvekre már konkrét kódot építünk. + +\begin{enumerate} +\item \textbf{Express.js megismerése} -- a jövő heti keretrendszer, amivel az API/Controller réteget ténylegesen megírjuk +\item \textbf{Routing gyakorlása} -- a mai órán tervezett erőforrás-orientált URL-eket Express.js route handlerekként fogjuk implementálni +\item \textbf{Postman telepítése} -- API-k manuális teszteléséhez, hogy a saját végpontjainkat is ki tudjuk próbálni +\item \textbf{TypeScript alapok} -- a jövő héttől fokozatosan áttérünk típusos JavaScriptre +\end{enumerate} + +\begin{alertblock}{Javaslat} +Nézd át még egyszer a CRUD $\to$ HTTP metódus táblázatot -- a jövő héten ezt fogjuk közvetlenül route definíciókra fordítani. +\end{alertblock} +\end{frame}