enterprise-presentation/deps.tex
2020-02-25 02:29:00 -06:00

104 lines
No EOL
2.5 KiB
TeX

\begin{frame}[fragile]
\frametitle{Deep dive into dependency calculation}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{Verbatim}[fontsize=\small]
component HelloWorld {
model {
name: String = "",
}
view {
<input bind:value="name" />
"Hello, " {name} "!"
}
}
\end{Verbatim}
\end{column}
\begin{column}{0.3\textwidth}
Points of interest:
\begin{itemize}
\item \texttt{bind:value} statement
\item Code segment \texttt{\{name\}}
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Generated dependency chart}
\begin{center}
\includegraphics[width=0.6\textwidth]{{./dot/helloworld.dot}.pdf}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Generated dependency chart}
\begin{columns}
\begin{column}{0.4\textwidth}
\includegraphics[width=\textwidth]{{./dot/helloworld.dot}.pdf}
\end{column}
\begin{column}{0.5\textwidth}
\begin{itemize}[<+>]
\item Symbolizes all interactions within the application.
\item All possible dependent actors are uniquely identified.
\item Simple DFS will tell us all updates that need to occur.
\end{itemize}
\end{column}
\end{columns}
\end{frame}
\begin{frame}
\frametitle{Case study 2: TodoMVC}
\begin{center}
\includegraphics[width=0.7\textwidth]{./todomvc.png}
\end{center}
\end{frame}
\begin{frame}[fragile]
\frametitle{Case study 2: dependencies of TodoMVC}
\begin{center}
\includegraphics[width=0.85\textwidth]{{./dot/todomvc.dot}.pdf}
\begin{BVerbatim}[fontsize=\tiny]
component TodoMVC {
model {
value: String = "",
todos: List<String> = List::new(),
}
view {
<input bind:value="value"
on:submit={|o@todos, o@value| { set!(todos = todos.with(value));
set!(value = ""); }} />
<ul>
[for (key, line) in {todos} : List<String>]
<li>{line}</li>
[/for]
</ul>
}
}
\end{BVerbatim}
\end{center}
\end{frame}
\begin{frame}
\frametitle{Challenges with TodoMVC}
\begin{itemize}
\item Everything within iterator must be parameterized.
\begin{itemize}
\item Generated code must be parameterized as well.
\end{itemize}
\item "Reconciliation", or re-updating the model on change.
\begin{itemize}
\item Consider hash-map-backed linked list implementations.
\end{itemize}
\end{itemize}
\end{frame}