Commit f9d0f790 authored by Florian Goth's avatar Florian Goth
Browse files

more data

parent 353a01c9
This diff is collapsed.
gfx/shapes_proc2.png

54.8 KB | W: | H:

gfx/shapes_proc2.png

59.8 KB | W: | H:

gfx/shapes_proc2.png
gfx/shapes_proc2.png
gfx/shapes_proc2.png
gfx/shapes_proc2.png
  • 2-up
  • Swipe
  • Onion skin
......@@ -14,6 +14,7 @@
%\usepackage[hyperfootnotes=false,pdfpagelabels,pagebackref,unicode]{hyperref}
%\usepackage[caption=false]{subfig}
\usepackage{placeins}
\usepackage{listings}
%\usepackage{tikz}
\usepackage{pstool}
\usepackage{bbold}
......@@ -121,11 +122,20 @@
\section{Introduction}
\begin{frame}
\frametitle{Some introduction about me}
- PhD in 2015
- Project Z03 in the SFB1170.
- KONWIHR: Basisprojekt Würzburg.
- Founding Member DE-RSE.
\begin{block}{Personal}
\begin{itemize}
\item PhD in 2015 in theoretical physics on Quantum Monte Carlo methods.
\item SFB1170, Project Z03, Optimization and Sustainable SW Development
\item KONWIHR Basis project University of Würzburg – Monte Carlo simulations of topological quantum matter
\item Founding Member DE-RSE, Local DE-RSE chapter Wü-RSE: \url{https://de-rse.org/chapter/wue/}
\end{itemize}
\end{block}
\begin{block}{What this talk is not}
\begin{itemize}
\item New research.
\item A set of definitive rules.
\end{itemize}
\end{block}
\end{frame}
\begin{frame}
......@@ -215,7 +225,10 @@
\begin{center}
A component should have only one reason to change.
\end{center}
\pause
\begin{center}
KYSS: Keep Your Stuff Separate.
\end{center}
\end{frame}
......@@ -293,7 +306,6 @@
\item proper naming helps to determine what should be in the class
\end{itemize}
\end{block}
\end{column}
\end{columns}
\end{frame}
......@@ -329,19 +341,27 @@ When requirements change, you extend the behavior of components by adding new co
\begin{frame}
\frametitle{OCP - ABC}
\strut\vspace{-4em}\strut
\begin{columns}
\begin{column}{0.5\textwidth}
\strut\vspace{-4em}\strut
\includegraphics[width=\textwidth]{gfx/shapes1.png}
\end{column}
\pause
\begin{column}{0.5\textwidth}
\strut\vspace{-4em}\strut
\includegraphics[width=\textwidth]{gfx/shapes2.png}
\end{column}
\end{columns}
$\rightarrow$ Ease of adding types!
\pause
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=0.5\textwidth]{gfx/classdiagram.png}
\end{column}
\pause
\begin{column}{0.5\textwidth}
$\rightarrow$ Ease of adding types!\\
$\rightarrow$ Danger of complecting!
\end{column}
\end{columns}
\end{frame}
\begin{frame}
......@@ -359,80 +379,144 @@ $\rightarrow$ Ease of adding functions!
\end{frame}
\begin{frame}
\frametitle{}
\begin{columns}
\begin{column}{0.5\textwidth}
\vspace{-2em}
\includegraphics[width=\textwidth]{gfx/image4.png}
\end{column}
\pause
\begin{column}{0.5\textwidth}
\begin{block}{OCP}
\begin{itemize}
\item Closed to modification, maintains class invariants
\item extensible via suitable free functions.
\end{itemize}
\end{block}
\end{column}
\end{columns}
\end{frame}
\begin{frame}[fragile]
\frametitle{OCP - misc}
% \begin{block}{
Generic functions are also manifestations of the OCP:
% }
\begin{lstlisting}[language=C++,basicstyle=\tiny,
% directivestyle={\color{black}}
% emph={int,char,double,float,unsigned},
% emphstyle={\color{blue}}
]
output_iterator copy(output_iterator first, input_iterator last, output_iterator dest )
{
while (first != last) {
dest = first
advance(dest)
advance(first)
}
return d_first;
}
\end{lstlisting}
% \end{block}
\pause
Miscellaneous
\begin{itemize}
\item No global variables.
\item Try to make everything private with proper interfaces.
\item You have to decide between types vs. functions. If not: Visitor or Strategy pattern.
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{Interface Segregation Principle}
\begin{verbatim}
Clients should not be forced to depend on methods that they don't use.
\end{verbatim}
\pause
\begin{verbatim}
Many Client Specific Interfaces are better that a generic one.
\end{verbatim}
\pause
\begin{verbatim}
Don't give them what they don't need.
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{Dependency Inversion Principle}
\frametitle{ISP - example}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp1.png}
\end{column}
\pause
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp2.png}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Summary}
- The research cycle requires software that is able to evolve with the growing external needs.
- Workgroups should strive to quickly adapt to changing external demands. This is helped by agile processes.
- Don't expect your code to fit perfectly to future tasks. But make it easily adapteable and changeable to do that.
- The SOLID principles can give you some design principles to look out for.
\frametitle{ISP - example}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp1.png}
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp3.png}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{ISP - example}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp1.png}
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=\textwidth]{gfx/isp4.png}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{ISP - example}
\begin{columns}
\begin{column}{0.6\textwidth}
\includegraphics[width=\textwidth]{gfx/isp5.png}
\end{column}
\begin{column}{0.4\textwidth}
\begin{itemize}
\item Small concrete types vs. abstract interfaces
\item Code top-down on the way down,
bottom-up on the way up.
\end{itemize}
% \begin{frame}
% \frametitle{Cluster of Excellence ct.qmat}
% \vspace{-2em}
% \includegraphics[width=0.7\textwidth]{gfx/logo_transparent.png}
% \vfill
% \begin{itemize}
% \item Two sites: Würzburg, Dresden
% \item Diverse groups across theory and experiment
% \item Established in 2019
% \item Research: Novel topological materials, quantum magnetism, topological photonics, tailoring topological functionality.
% \end{itemize}
% \end{frame}
%
% \begin{frame}
% \frametitle{The original grant proposal (Jan. 2018)}
% \small
% Simulations/Experiment are a cornerstone of good
% scientific practice and are facilitated by data management solutions. Efficient data management allows to document the workflow leading to published data and facilitates
% open access (OA) publication forms where all primary material is accessible.
% In addition, the many locations within the cluster render collaborative tools a necessity.
% Bringing both requirements together we foresee the need for collaborative
% data management solutions that use established tools from the community while
% at the same time leveraging the latest in storage technology.
%
% \begin{block}{What is important}
% \begin{itemize}
% \item Delocalized
% \item Collecting Data
% \item Working on Data
% \end{itemize}
% ->\emph{Collaborative Data Management}
% \end{block}
% \begin{block}{Political/external Pressures}
% \begin{itemize}
% \item Open Access Policy of DFG
% \item Increased pressure for proper data management plans from funders
% \item Publishers require open access to certain data
% \item Reproducibility
% \end{itemize}
% \end{block}
% \end{frame}
%
% \begin{frame}
% \frametitle{Research Cycle}
% \vspace{-2em}
% \begin{center}
% \includegraphics[width=0.8\textwidth]{gfx/Research_cycle}
% \end{center}
% \end{frame}
\end{column}
\end{columns}
\end{frame}
%
% \begin{frame}
% \frametitle{Data Cycle}
% \begin{center}
% \includegraphics[width=0.8\textwidth]{gfx/cyclerdm}
% \end{center}
% \frametitle{Dependency Inversion Principle}
% \end{frame}
\begin{frame}
\frametitle{Summary}
- The research cycle requires software that is able to evolve with the growing external needs.
- Workgroups should strive to quickly adapt to changing external demands. This is helped by agile processes.
- Don't expect your code to fit perfectly to future tasks. But make it easily adapteable and changeable to be reusable.
- The SOLID principles can give you some design principles to look out for, such that you code is suitable for agile processes.
\end{frame}
\begin{frame}
\frametitle{Literature}
\begin{itemize}
\item https://www.youtube.com/watch?v=glYq-dvgby4
\item https://www.youtube.com/watch?v=Ntraj80qN2k
\item https://web.archive.org/web/20110714224327/http://www.objectmentor.com/resources/articles/dip.pdf
https://en.wikipedia.org/wiki/SOLID
\end{itemize}
\end{frame}
\end{document}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment