3434\note [itemize] {
3535 \item Welcome
3636 \item I am Manuel
37- \item Master Student, OST, Switzerland
38- \item I want to tell you a short story...
39- \item State of debugging for RxJS
40- \item You might think, well:
41- \item `` It has JS in its name ''
42- \item JavaScript and Engineering?
37+ \item Frontend Engineer for 7 years
38+ \item Web and native mobile
39+ \item Now: Senior Frontend Engineer, Swiss Fintech
40+ \item Now: Master Student, OST, Switzerland
41+ \item In my talk about: State of debugging for RxJS
42+ \item I want to tell a story
4343}
4444
4545\section {Introduction }
@@ -55,7 +55,7 @@ \subsection{Why?}
5555\end {frame }
5656
5757\note [itemize] {
58- \item Thats frontend stuff!
58+ \item JS, frontend, frontend engineer...
5959 \item Are `` Frontend Engineers'' Engineers?
6060 \item Because of things like RxJS...
6161 \item Frontend Engineering came a long way!
@@ -64,7 +64,8 @@ \subsection{Why?}
6464 \item Nice: RxJS is core part of Googles Angular
6565 \item Nice: Describe data flows
6666 \item Wait? Sales pitch?
67- \item I have a story of frustration to tell: Debugging
67+ \item I have another story:
68+ \item About: Debugging
6869}
6970
7071\begin {frame }[fragile]{Debugging: First Intuition}
@@ -79,10 +80,21 @@ \subsection{Why?}
7980 \item Back when i started with RP
8081 \item Debug? Ha! Breakpoint!
8182 \item Helped sometimes (lambda functions, ...)
83+ }
84+
85+ \begin {frame }[fragile]{Debugging: First Intuition}
86+ \begin {figure }[H]
87+ \centering
88+ \includegraphics [height=\textheight /2]{figures/stacktrace.png}
89+ \caption {Stack Trace}
90+ \end {figure }
91+ \end {frame }
92+
93+ \note [itemize] {
8294 \item Often felt lost though
8395 \item Stack traces
8496 \item program step controls: Operator? No: Internals!
85- \item What else?
97+ \item What else is possible ?
8698}
8799
88100\begin {frame }[fragile]{Debugging: The Reality}
@@ -97,6 +109,17 @@ \subsection{Why?}
97109 \item Especially when stuff gets complicated
98110 \item Debugging === Trace Logs
99111 \item Sprinkle log statements
112+ }
113+
114+ \begin {frame }[fragile]{Debugging: The Reality}
115+ \begin {figure }[H]
116+ \centering
117+ \includegraphics [height=\textheight /2]{figures/tracelogs.png}
118+ \caption {Flood of Trace Logs}
119+ \end {figure }
120+ \end {frame }
121+
122+ \note [itemize] {
100123 \item Analyze flood of logs
101124 \item Find problem
102125 \item Remove log states
@@ -116,8 +139,26 @@ \subsection{Why?}
116139 \item Frustrated!
117140 \item Mature Software Engineer has to feel different
118141 \item Looked for existing solutions
119- \item Good concepts for other languages (Scala)
120- \item RxJS less stuff
142+ }
143+
144+ \begin {frame }[fragile]{A New Hope?}
145+ \begin {vfilleditems }
146+ \item \textbf {Reactive Inspector } for REScala \cite {10.1145 /2577080.2577083 }, Salvaneschi et al. \cite {10.1145 /2884781.2884815 } \cite {10.1145 /2889160.2893174 }
147+ \item \textbf {RxFiddle }, Banken et al. \cite {10.1145 /3180155.3180156 }
148+ \item Better trace logs using \textbf {rxjs-spy } \cite {rxjsspy }
149+ \end {vfilleditems }
150+ \end {frame }
151+
152+ \note [itemize] {
153+ \item Own research
154+ \item Some interesting findings
155+ \item Most elaborate: Reactive Inspector
156+ \item Salvaneschi et al
157+ \item REScala, Scala
158+ \item Some, but not a lot for RxJS
159+ \item rxfiddle, banken et al -> Visualizer Externally
160+ \item rxjs-spy: Better logs, but still: trace log approach
161+ \item MEH!
121162 \item Lets do this on our own!
122163 \item -> Started with research questions
123164}
@@ -181,44 +222,41 @@ \subsection{Study 1: Interviews and War Stories}
181222
182223\note [itemize] {
183224 \item Recruiting via Twitter and Email
184- \item Personal Network
185225 \item 10 participants
186226 \item Daily users of RP
187227 \item One RxJS Core team member
188228 \item Two Google Dev Experts on Angular
189229}
190230
191- \begin {frame }[fragile]{Five One-to-One Interviews}
192- \begin {vfilleditems }
193- \item How do you \textbf {use } Reactive Programming?
194- \item Which aspects do you \textbf {like } on Reactive Programming?
195- \item Which do you \textbf {dislike }?
196- \end {vfilleditems }
231+ \begin {frame }[fragile]{Scope}
232+ \begin {columns }[T]
233+ \begin {column }{.4\linewidth }
234+
235+ \begin {vfilleditems }
236+ \item Five \textbf {Interviews }\vspace {1em}
237+ \item General \textbf {Experience } with Reactive Programming\vspace {0.5em}
238+ \item What do you \textbf {like }?\vspace {0.5em}
239+ \item What do you \textbf {dislike }?
240+ \end {vfilleditems }
241+ \end {column }
242+ \begin {column }{.4\linewidth }
243+ \begin {vfilleditems }
244+ \item Five War Story \textbf {Reports }\vspace {1em}
245+ \item Recall a specific \textbf {challenging } debugging situation?\vspace {0.5em}
246+ \item How did you \textbf {solve } it?
247+ \end {vfilleditems }
248+ \end {column }
249+ \end {columns }
197250\end {frame }
198251
199252\note [itemize] {
200- \item Interviews had no focus on debugging yet
201- \item Interested in experience with RP
253+ \item Experience with RP
202254 \item Pros
203- \item Cons
204- \item Pain Points
205- }
206-
207- \begin {frame }[fragile]{Five Written War Story Reports}
208- \begin {vfilleditems }
209- \item When did you \textbf {last } have to debug an RxJS-based Application?
210- \item Do you remember a specific \textbf {challenging } debugging situation?
211- \item How did you \textbf {solve } it? (If at all?)
212- \end {vfilleditems }
213- \end {frame }
214-
215- \note [itemize] {
216- \item This time: Focused on debugging
217- \item Hear about specific situations
255+ \item Cons / Pain Points
218256 \item They should recall particular scenario
219257 \item Step by step
220- \item What problems did they face tool ?
221- \item How did they overcome them?
258+ \item What problems?
259+ \item How did they solve them?
222260}
223261
224262\begin {frame }[fragile]{Mentioned Debugging Techniques}
@@ -494,7 +532,6 @@ \section{Conclusion}
494532 \item Lower the boundary to use the right tool
495533 \item At the right time
496534 \item Integrate the right tools where they are expected the most
497- \item Example: Async Stack Traces in Google Chrome
498535 \item Dont look for it: Its there where it belongs.
499536 \item Hence, outlook to future work...
500537}
@@ -542,9 +579,16 @@ \section{Future Work}
542579 \item Happy to answer questions
543580}
544581
545- % \appendix
546- % \begin{frame}[allowframebreaks]{References}
547- % \printbibliography
548- % \end{frame}
582+ \appendix
583+ \begin {frame }[allowframebreaks]{References}
584+ \printbibliography
585+ \end {frame }
586+
587+ \begin {frame }[plain, noframenumbering]{}
588+ \centering
589+ \vfill
590+ {\fontsize {30}{40}\selectfont\color {white}{Backup Slides}}
591+ \vfill
592+ \end {frame }
549593
550594\end {document }
0 commit comments