enterprise-presentation/deps.tex

104 lines
2.5 KiB
TeX
Raw Permalink Normal View History

2020-02-24 23:51:39 -06:00
\begin{frame}[fragile]
2020-02-25 02:29:00 -06:00
\frametitle{Deep dive into dependency calculation}
2020-02-24 23:51:39 -06:00
\begin{columns}
2020-02-25 02:29:00 -06:00
\begin{column}{0.5\textwidth}
\begin{Verbatim}[fontsize=\small]
2020-02-24 23:51:39 -06:00
component HelloWorld {
model {
2020-02-25 02:29:00 -06:00
name: String = "",
2020-02-24 23:51:39 -06:00
}
view {
<input bind:value="name" />
"Hello, " {name} "!"
}
}
2020-02-25 02:29:00 -06:00
\end{Verbatim}
2020-02-24 23:51:39 -06:00
\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}
2020-02-25 02:29:00 -06:00
\frametitle{Generated dependency chart}
2020-02-24 23:51:39 -06:00
\begin{center}
2020-02-25 02:29:00 -06:00
\includegraphics[width=0.6\textwidth]{{./dot/helloworld.dot}.pdf}
2020-02-24 23:51:39 -06:00
\end{center}
\end{frame}
\begin{frame}
2020-02-25 02:29:00 -06:00
\frametitle{Generated dependency chart}
2020-02-24 23:51:39 -06:00
\begin{columns}
\begin{column}{0.4\textwidth}
2020-02-25 02:29:00 -06:00
\includegraphics[width=\textwidth]{{./dot/helloworld.dot}.pdf}
2020-02-24 23:51:39 -06:00
\end{column}
\begin{column}{0.5\textwidth}
2020-02-25 02:29:00 -06:00
\begin{itemize}[<+>]
2020-02-24 23:51:39 -06:00
\item Symbolizes all interactions within the application.
2020-02-25 02:29:00 -06:00
\item All possible dependent actors are uniquely identified.
2020-02-24 23:51:39 -06:00
\item Simple DFS will tell us all updates that need to occur.
\end{itemize}
\end{column}
\end{columns}
\end{frame}
2020-02-25 02:29:00 -06:00
\begin{frame}
\frametitle{Case study 2: TodoMVC}
\begin{center}
\includegraphics[width=0.7\textwidth]{./todomvc.png}
\end{center}
\end{frame}
2020-02-24 23:51:39 -06:00
\begin{frame}[fragile]
2020-02-25 02:29:00 -06:00
\frametitle{Case study 2: dependencies of TodoMVC}
2020-02-24 23:51:39 -06:00
\begin{center}
2020-02-25 02:29:00 -06:00
\includegraphics[width=0.85\textwidth]{{./dot/todomvc.dot}.pdf}
\begin{BVerbatim}[fontsize=\tiny]
2020-02-24 23:51:39 -06:00
component TodoMVC {
model {
value: String = "",
todos: List<String> = List::new(),
}
view {
2020-02-25 02:29:00 -06:00
<input bind:value="value"
on:submit={|o@todos, o@value| { set!(todos = todos.with(value));
set!(value = ""); }} />
2020-02-24 23:51:39 -06:00
<ul>
[for (key, line) in {todos} : List<String>]
<li>{line}</li>
[/for]
</ul>
}
}
2020-02-25 02:29:00 -06:00
\end{BVerbatim}
2020-02-24 23:51:39 -06:00
\end{center}
2020-02-25 02:29:00 -06:00
\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}
2020-02-24 23:51:39 -06:00
\end{frame}