third week
This commit is contained in:
1 parent
95e62c915f
commit
a935851e22
31 files changed
+1269
-33
No files matched your search
@@ -2,30 +2,31 @@
|
||||
|
||||
\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.
|
||||
Az első héten megismertük a webes kommunikáció alapjait: a HTTP protokollt, a Node.js futtatókörnyezetet, és elindítottunk egy egyszerű szervert a beépített \texttt{http} modullal. Emellett megtanultuk, hogyan kezeljük npm-mel a projekt függőségeit.
|
||||
|
||||
\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
|
||||
\item \textbf{HTTP:} Request-Response modell, metódusok (GET, POST, PUT, PATCH, DELETE), státuszkódok
|
||||
\item \textbf{Node.js:} \texttt{http.createServer} -- egy függvény, ami minden kérést kiszolgál
|
||||
\item \textbf{npm:} \texttt{package.json}, csomagok telepítése, \texttt{npm scripts}
|
||||
\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.
|
||||
A nyers \texttt{http} modullal minden egyes útvonalat, minden HTTP metódust és a kérés törzsének feldolgozását is kézzel, \texttt{if-else} ágakkal kellene megírnunk. Ez pár végpontnál még kezelhető, de gyorsan átláthatatlanná válik.
|
||||
\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.
|
||||
A mai órán egy valódi keretrendszert vezetünk be, amivel a múlt heti kézi munkát nagyrészt kiváltjuk, majd megtanuljuk, hogyan teszteljük és hogyan típusozzuk a kódunkat.
|
||||
|
||||
\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
|
||||
\item \textbf{Express.js} -- a legelterjedtebb Node.js webes keretrendszer, ami elveszi a routing és a kérésfeldolgozás nagy részének terhét
|
||||
\item \textbf{Routing} -- hogyan szervezzük az útvonalainkat, hogyan olvassuk ki a kérés adatait
|
||||
\item \textbf{Postman} -- hogyan teszteljük a saját API-nkat anélkül, hogy frontendet kellene hozzá írnunk
|
||||
\item \textbf{TypeScript} -- hogyan adjunk típusbiztonságot a JavaScript kódunkhoz
|
||||
\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.
|
||||
Ma még mindig egyszerű, tárolás nélküli (memóriában tartott) példákkal dolgozunk -- az adatbázis-kapcsolat csak a 4. héten kerül képbe. Most a keretrendszerre és az eszközökre fókuszálunk.
|
||||
\end{alertblock}
|
||||
\end{frame}
|
||||
Reference in new issue
Block a user