From 5cba3e969dc253f95882bc7a964aad7430eb5e07 Mon Sep 17 00:00:00 2001 From: ben Date: Mon, 25 Feb 2019 23:01:46 +0100 Subject: [PATCH] Made partly-complete Lat --- parts/01_layered-arc.tex | 80 +++++++++++++++++++++++++++++++++++++-- sw-arc.tex | 8 ++-- ~$tchriftBenjiToni.docx | Bin 0 -> 162 bytes 3 files changed, 81 insertions(+), 7 deletions(-) create mode 100644 ~$tchriftBenjiToni.docx diff --git a/parts/01_layered-arc.tex b/parts/01_layered-arc.tex index 7723f6f..eecdc5d 100644 --- a/parts/01_layered-arc.tex +++ b/parts/01_layered-arc.tex @@ -243,6 +243,16 @@ \item nimmt Komplexität \item steigert Effizienz da weniger Aufrufe über Remotegrenze \end{itemize} +\subsection{Page-Object-Pattern} +PageObjectPattern + +HTML – wrappen mit JavaCode, um es zu manipulieren + +GUI-Test-Klasse und Page-Object + +Über die Page-Object-Klasse manipuliere ich das HTML-Dokument + +Bei HTML-Änderung muss ich nur Page-Objekt ändern und ansonsten nichts angreifen (Verkapselung) \section{Remote} \subsection{Beschreibe die Unterschiede zwischen lokalem und Remote Interface Design} \begin{itemize} @@ -325,6 +335,70 @@ \item durch verschiedene Log-level können Logs gefiltert erstellt werden \item Layout für Ausgabe kann zentral definiert/geändert werden \end{itemize} -\section{Durchlesen: JEE Web Tier} -\section{Durchlesen: JavaServer Faces} -\section{Durchlesen: Wildfly Overview} \ No newline at end of file +\section{Toni} +\subsection{Annotationen} +@Produces – kommt während deployment, markiert Factory Method damit man nicht direkt auf die Klasse zugreifen muss +@Typed – zeigt die Vererbung Wieso bei uns allein stehend? +@Named – Zeigt bei Mehrdeutigkeit das richtige Objekt mit dem Namen +@Resource – fast wie Dependency Injection +@Stateless – speichert den Client Status nicht +@Entity – Data Access Layer +@Table – Tabellenname im SQL +@Column – SQL-Spalten nullable=false +@OneToMany Beziehung +@JoinColums – welche Spalten zusammen gehören FK +@OneToMany FK auf anderen Seite +@ApplicationScoped – lebt die ganze Applikation lang, wird einmal gemacht. +@PersistenceContext – persistance.xml auslesen für Treiber und andere JPA Geschichten + Data Source. Entity Manager Injection. +@Id – das ist die id +@GeneratedValue – Wert kommt aus der DB +@Local – Klasse für lokale Aufrufe. +@Remote – interprozessaufrufe. RMI +@ApplicationException – Rollback wenn so eine Exception kommt, Nachricht zum Client. +\subsection{Patterns in Practice} +Data Access Layer +Entity – Java Repräsentation vom DB Entity +DAO damit man auf die Entities zugreifen kann. DB abstrahieren. Methoden mit denen man auf die DB zugreifen kann. +DAOImpl – Implementierung +DAOImpl – DAOException fehlt. Schlecht weil Input wird nicht kontrolliert. EntityManager in try catch, sonst kann es kleschen. Zudätzlich in DaoException wrappen. +AbstractEntity – hier wird die id gemanaged +Service Layer +DTO – Aufrufgeschw. Verringern, nicht jedes Objekt einzeln aufrufen, sondern mit einmal alle notwendigen Objekte. +Mapper – von DTO in Entity und Entity ins DTO. + +FrontController web.xml +ViewHelper *ServiceImpl +\subsection{Konfigurationsdateien (pom.xml), (persistence.xml) und noch a bissl mehr Scheiß} +Resource plugin – klar für Ressourcen +Wildfly – server +Primeafce = jsf Framework +Jacoco = test Coverage +Slf4j = logger +Jaxb – xml +Cdi = context dependancy injection +\subsection{Reihenfolge - Wildfly - Abfolge - einzelne Schritte} +Reihenfolge: +1. Compile +2. Surefire (unitTests) +3. Deploy (warplugin) +4. Failsafe IT-test +5. MVN site +6. Gui test +\subsection{Frageart Prüfung} +Welche Fehler können bei Exception-Handling vorkommen in unserem Projekt?? – wie funktioniert es grundsätzlich in unserem Code + +DocumentDAO – DocumentService – DocumentController – so sollte Exception-Handling implementiert warden + +DAO wirft Exception – im ServiceLayer wird dies gefangen und der Stack-Trace wird im weggeloggt und eine benutzerfreundliche Fehlermeldung wird ausgegeben (Destructive Wrapping). + +Alle Patterns, die vorkommen – praktische Beispiele aus dem Code + +Was sind JavaBeans? Wie funktioniert das Konzept? Wie wird es genau implementiert? +NamedBean, TypedBean etc. + +DTO + + + + + diff --git a/sw-arc.tex b/sw-arc.tex index ce1b7bb..d830dd4 100644 --- a/sw-arc.tex +++ b/sw-arc.tex @@ -17,11 +17,11 @@ \title{Enterprise Software Architecture - FAQ Ausarbeitung} \maketitle \pagebreak - % \tableofcontents - % \pagebreak + \tableofcontents + \pagebreak \include{parts/01_layered-arc} - \include{parts/02_comp-based_arc} - \include{parts/03_service-orientated_arc} + %\include{parts/02_comp-based_arc} + %\include{parts/03_service-orientated_arc} \end{document} diff --git a/~$tchriftBenjiToni.docx b/~$tchriftBenjiToni.docx new file mode 100644 index 0000000000000000000000000000000000000000..e3c229c8e31f7822a020ad849181e2e688f4a2f1 GIT binary patch literal 162 zcma)!O%6aX6okJMID;Elxqv+zCun$!ingMaIKClb?JeH?Wv1#=w!Q8wE-v`UzpLm; uWQ?7fP8eBm1iTnu)-WhLDNL+#4`v!h>6>}|@Msg7_R721%H6c>)Vly?V;Kqn literal 0 HcmV?d00001