Added Java in geil

This commit is contained in:
Jim Martens 2022-10-10 19:15:07 +02:00
parent 1f29176d96
commit c23232433c
1 changed files with 143 additions and 0 deletions

View File

@ -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}