database added
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
\section{Mapper}
|
||||
|
||||
\begin{frame}{Mapper minta szerepe}
|
||||
\begin{block}{Mi a mapper?}
|
||||
\begin{itemize}
|
||||
\item Átalakítás domain objektumok és DTO-k között
|
||||
\item Elválasztja az adatformátumot az üzleti modelltől
|
||||
\item Központi helyen tartja az átalakítás logikáját
|
||||
\end{itemize}
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Miért hasznos?}
|
||||
\begin{itemize}
|
||||
\item Csökkenti a duplikált átalakításokat
|
||||
\item Stabil API-szerződések (DTO-k) a változó domain mellett
|
||||
\item Tesztelhető, moduláris és újrafelhasználható kód
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]{Egyszerű mapper példa}
|
||||
\begin{lstlisting}[language=JavaScript]
|
||||
// Domain objektum
|
||||
const user = {
|
||||
id: 1, name: "John Doe",
|
||||
email: "john@example.com", passwordHash: "..."
|
||||
};
|
||||
|
||||
// Mapper függvény
|
||||
const toUserDto = (u) => ({
|
||||
id: u.id, name: u.name, email: u.email
|
||||
});
|
||||
\end{lstlisting}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]{Kétirányú mapper}
|
||||
\begin{lstlisting}[language=JavaScript]
|
||||
const toUserEntity = (dto) => ({
|
||||
id: dto.id ?? undefined,
|
||||
name: dto.name,
|
||||
email: dto.email
|
||||
});
|
||||
\end{lstlisting}
|
||||
|
||||
\begin{block}{Megjegyzés}
|
||||
Írhatsz külön mappert bejövő és kimenő adatokra.
|
||||
\end{block}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Mapper és repository}
|
||||
\begin{itemize}
|
||||
\item Repository a tárolást kezeli
|
||||
\item Mapper az objektumok formátumát kezeli
|
||||
\item Két külön felelősségi kör
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}{Jó gyakorlatok}
|
||||
\begin{itemize}
|
||||
\item Ne másolj át érzékeny mezőket (pl. jelszó)
|
||||
\item Tartsd egy helyen az átalakításokat
|
||||
\item Használj tiszta függvényeket és kis helper-eket
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
Reference in New Issue
Block a user