JavaScript libraries like jQuery have empowered Web developers to create very complex Web interactions and animations in the browser using simple syntax and few lines of code. Unfortunately, it has also become easier than ever to write tangled JavaScript code that is untestable while being difficult to read, extend and maintain.
“
Obtiva has an amazing grasp on test-driven development and JUnit and has probably the most extensive Java knowledge of any company I know. I feel that the information and practices that were given the course will be invaluable.
„
B.O., Chicago, IL
Course Outline
Detangling Javascript
- Introductions & Preparation (download demo source code, etc)
- Overview of Demo App Code (it works, but it's tangled)
- Principles of Refactoring (language agnostic)
- Introduction to the Jasmine Testing Framework
- [Demo] Write baseline acceptance (integration) tests using Jasmine
- Discuss Modularization and Namespacing in JavaScript
- [Demo] Apply modularization principles to code
- Discuss Anonymous Functions vs. Named Functions
- [Demo] Apply naming to all anonymous functions
- [Demo] Use "Extract Method" and "Move Method" to modularize logic in the right places
- Q/A (or overflow time)
What you'll learn?
How to write acceptance tests, modularizing and namespace chunks of logic, extract anonymous callbacks into named functions, extract inline business logic and individual functions,move logic to the poper object and much more.
What does the cost include?
Every attendee receives a two-hour training in a focused subject. You will leave with new proficiencies and capabilities, but equally valuable, you'll be a part of the Obtiva alumni network, a community of like-minded professionals that we encourage to stay in touch and help each other connect and collaborate in the months and years ahead. In addition, registration also includes a catered lunch.
What should I bring?
BYOL - Bring Your Own Laptop We tend to favor participants bringing their own (work) laptop to the class.
You'll need to come with your laptop set up in a java environment and a text editor similar to Textmate, vi, or emacs.