From c23232433c3d9fd357698c45f8c11e15064bf1d9 Mon Sep 17 00:00:00 2001 From: Jim Martens Date: Mon, 10 Oct 2022 19:15:07 +0200 Subject: [PATCH] Added Java in geil --- sonstiges/tex/java-in-geil.tex | 143 +++++++++++++++++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 sonstiges/tex/java-in-geil.tex diff --git a/sonstiges/tex/java-in-geil.tex b/sonstiges/tex/java-in-geil.tex new file mode 100644 index 0000000..7d543cb --- /dev/null +++ b/sonstiges/tex/java-in-geil.tex @@ -0,0 +1,143 @@ +\RequirePackage{pdf14} +\documentclass{beamer} +\usepackage[T1]{fontenc} +\usepackage{fontspec} +\usepackage[utf8]{inputenc} +\usepackage[ngerman]{babel} +%\usepackage{paralist} +%\useoutertheme{infolines} +\usepackage{graphicx} +\usepackage{hyperref} +\usepackage[outputdir=build]{minted} +\usepackage{color} +\usepackage{textcomp} +\usepackage[german=quotes]{csquotes} +%\usepackage[Latin,Greek,Emoticons]{ucharclasses} + + + +\usetheme{Warsaw} +\usecolortheme{crane} +\pagenumbering{arabic} +\def\thesection{\arabic{section})} +\def\thesubsection{\alph{subsection})} +\def\thesubsubsection{(\roman{subsubsection})} +\setbeamertemplate{navigation symbols}{} +\graphicspath{ {src/} {/home/jim/Pictures/} } + +\definecolor{mygreen}{rgb}{0,0.6,0} +\definecolor{mygray}{rgb}{0.5,0.5,0.5} +\definecolor{mymauve}{rgb}{0.58,0,0.82} + +%\MakeOuterQuote{"} + +%\definecolor{craneorange}{RGB}{61,61,61} +%\definecolor{craneblue}{RGB}{255,255,255} + + +\hypersetup{ + pdfauthor=Jim Martens, + pdfstartview=Fit +} + +\expandafter\def\expandafter\insertshorttitle\expandafter{% + \raggedleft \insertframenumber\,/\,\inserttotalframenumber\;} + +%\newfontfamily\latinfont{Latin Modern Sans} +%\newfontfamily\emojifont[Renderer=Harfbuzz]{Noto Color Emoji} +%\setTransitionsFor{Emoticons}{\mydef}{\latinfont} + +\newcommand{\emoji}[1]{ + {\setmainfont{Noto Color Emoji}[Renderer=Harfbuzz]{#1}} +} + +\begin{document} +\author{Jim 2martens} +\title{Java in geil} +\subtitle{Kampf dem Boilerplate} +\date{\today} + +\defverbatim[colored]\stream{ +\begin{minted}[breaklines,fontsize=\footnotesize]{java} +boolean isInvalidTariff = IntStream.range(0, stationsWithoutExitStations.size()) + .mapToObj(index -> LineAndStation.builder() + .station(getStation(stationsWithoutExitStations.get(index))) + .lineKey(lineKeys.get(index)) + .lastPart(isLastPart(lineKeys.size(), index)) + .build()) + .filter(lineAndStation -> lineAndStation.getStation() != null) + .filter(lineAndStation -> isNotExemptedFromDuplicateTariffStationCheck( + lineAndStation.getStation(), line)) + .anyMatch(lineAndStation -> isDuplicateStation(lineAndStation, cn, station, line)); +\end{minted} +} + +\defverbatim[colored]\streamCollect{ +\begin{minted}[breaklines,fontsize=\footnotesize]{java} +tariffStations.stream() + .map(TariffLineService::buildTariffStation) + .collect(Collectors.toList()); +\end{minted} +} + +\defverbatim[colored]\optional{ +\begin{minted}[breaklines,fontsize=\footnotesize]{java} +Optional.ofNullable(TarifServerRequest.searchDestination(line, entryStation, exitStation)) + .map(Station::getKey) + .orElse(null); +\end{minted} +} + +\defverbatim[colored]\data{ +\begin{minted}[breaklines,fontsize=\footnotesize]{java} +@Builder +@Data +public class LineAndStation { + private final Station station; + private final LineKey lineKey; + private final boolean lastPart; +} +\end{minted} +} + +\defverbatim[colored]\record{ +\begin{minted}[breaklines,fontsize=\footnotesize]{java} +@Builder +public record LineAndStation (Station station, LineKey lineKey, boolean lastPart) {} +\end{minted} +} + +\begin{frame} + \titlepage +\end{frame} + +\begin{frame} + \tableofcontents +\end{frame} + +\begin{frame}{Disclaimer} + Ihr werdet nicht unbedingt jedes Syntaxelement verstehen. Das ist kein Problem. +\end{frame} + +\section{Streaming} +\begin{frame}{IntStream statt for-Loop} + \stream +\end{frame} +\begin{frame}{Collection erzeugen mit Stream} + \streamCollect +\end{frame} +\begin{frame}{Optionals} + \optional +\end{frame} + +\section{Lombok} +\begin{frame}{Data, übernehmen Sie} + \data\pause + \vfill + Mit Java 14+ + \record +\end{frame} + + +\end{document} +