\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 { "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 = List::new(), } view { } } \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}