- Build a front-end app in Javascript
- Work competently in Javascript
- Reason about asynchronous behaviour in Javascript
- Use Notes/News/Chitter challenges to improve understanding.
- Focus on process rather than completion. Completion absolutely not important. Understand concepts and go to lots of process workshops
- Read more on asynchronous behaviour
- Built single-page Notes App and News App using front-end JS only, no JQuery. I actually compared the two methods in the final challenge, and whilst I see the merits of using front-end JS, I find it preferable to use JQuery in almost all instances, whilst understanding the limitations of using such a library, of course.
- The above challenges demonstrate proficiency in Object-Oriented design, following good TDD process and maintaining a separation of concerns in JS, which I actually find much harder than in Ruby.
- Calling various APIs and waiting for a response, wrapping responses in JSON objects, and using event listeners, for instance, have really improved my understanding of asynchronicity in JS.
- GOAL: Improve understanding of JS obj/prototype framework
- PLAN: Work through JS Objects and Prototypes Practical
- EVIDENCE: Completed these here, and read up online.
- GOAL: Reinforce understanding of module pattern
- PLAN: Use module pattern in Notes App and do lots of console.logging!
- EVIDENCE: In the Notes App I started to create whole constructor functions within modules, exporting them so that functions/variables within the module & outside of the constructor were kept 'private'.
- GOAL: Create own testing library to TDD front-end JS
- PLAN: Develop as simple-as-possible syntax to evaluate boolean and give visibility
- EVIDENCE: Created in News App and to a lesser extent, the Notes App
- GOAL: Understand how hashchanges work, and don't refresh page
- PLAN: Work through NotesApp examples and write code that displays on-screen the hash change result.
- EVIDENCE: Notes App Controller uses a hashchange event listener, takes the new id param from the clicked link URL, and displays a given note.
- GOAL: Refactor Notes App so that the Index/Controller are as lean as possible.
- PLAN: Move any dynamic tag creation etc. into the model layer, keep controller skinny and easy to read!
- EVIDENCE: Skinny!