In this section, we will discuss key layers of the Lightning architecture, which will allow you to have a better framework of understanding as we go deeper.
A key aspect that took me by surprise at first is the need to write client-side controllers in JavaScript. This can be particularly puzzling at first if you are a Visualforce developer, but it is a vital part of being a Lightning developer and is a reflection of its client-side architecture. As we saw in the previous chapter, Apex server-side controllers still play a part, but are mainly used for accessing your backend Apex Services and Selectors.
In general, Lightning development is much more componentized. In terms of how the UI is designed and how the code is factored, the two are much more aligned, making it easier to maintain and navigate code. This also gives a much greater emphasis on the separation...