Charles Max Wood
Special Guest: Eyas Sharaiha
This episode of Adventures in Angular has the panelists speaking with Eyas Sharaiha, who is a software engineer working for Google, working primarily with Google Maps . Eyas mostly does back end and infrastructure work, which gives him an interesting view of Angular. The panelists and Eyas discuss his article Data and Page Content refresh Patterns in Angular. Eyas talks about the most common mistakes he sees in using Angular, namely transforming observables and then subscribing to them too early or too late, and putting certain kinds of data transformations in places where they end up making the code a lot less clear. His approach in his articles is to walk readers through with trial and error, rather than laying down some sort of law. Eyas lays out how he deals with changes in Angular, naming the three best things to do to use Angular and RXJS correctly, emphasizing the importance of looking for side effects. His rule of thumb is that if the observable does anything other than the data it is admitting, then something is probably wrong.
The panelists go on to discuss the usefulness of observables. The ask Eyas what the most common code smells he finds in angular apps that frequenly use observables and how he would correct people. Eyas again emphasizes side effects or mutation as a sign of a deeper problem, cautions people against bending over backwards to use an observable, and discusses the importance of unpacking an observable at the correct time. He encourages listeners to try out the ergonomics of AsyncPipe to combine observables where possible, and the importance of using observables correctly.
The shift in Angular becoming more about learning RXJS and non-Angular things than it is about Angular is discussed and length, as well as the difficulty to relate Angular to other things. Eyas feels that this trend has taken away some of the magic of Angular. In fact, NG Conf’s annual survey revealed that the top struggles are RXJS and architectural guidance. The panelists emphasize that programmers should ask themselves why they are doing things this particular way, and to seek creative solutions using different types of programming, such as procedural, reactive, idiomatic, and object oriented programming.
Charles Max Wood