Latest Live Episodes
Clean CodeWed, 5 Mar
In this short episode, we put a bow on our HtmlElement refactorings and take a quick detour into Modernizr’s touch detection, too. Everything goes smoothly. That finishes off our refactoring chapter.
The Itch to ShipMon, 3 Mar
Refactoring is a balancing act. Time spent on refactoring is (hopefully!) less time spent on technical debt in the future. But there’s unlimited refactoring you can do, and if you spend all your time cleaning up, then you’ll never ship anything. In this episode, we finish cleaning up our tests and start feeling the itch to ship.
Better EnoughWed, 26 Feb
The important thing when refactoring isn’t to fix everything, but to make it better *enough*. A little bit better every time leads to big improvements in the long term. This is particularly important when dealing with code you’re not sure how to improve. Make the small improvements now and the big improvements will become clear eventually.
Legacy Code Part I: Reflective DesignFri, 7 Mar
Legacy code. It’s a problem everyone must face at some point in their career. What do you do when you inherit a codebase that you don’t understand? How do you add tests to existing code? Today in The Lab, we start a massive three-part series on testing legacy code. First up: reverse-engineering the design of existing code and creating a test strategy.
CasperJSFri, 7 Feb
We’ve used PhantomJS, the headless web browser, to automate our smoke tests. PhantomJS is fairly low-level, however, which makes writing tests pretty painful. Enter CasperJS. CasperJS is a wrapper that promises to make PhantomJS much more convenient. Today in The Lab, we put it to the test. How does CasperJS work, and will it live up to its promise?
Test Them Test’emFri, 3 Jan
For months, we’ve been using Karma for cross-browser testing, but I’ve also heard great things about Test’em ’Scripts. Today in The Lab, we put it to the test. Can Test’em supplant Karma as our test runner of choice? Or will our needs prove to be too much?
A brand-new screencast about
I will be using it as *the* goto reference for
any JS development for some time to come.
It has the right number of details that you don’t get by
reading book but only working with exceptional people.
I like the variety of technologies used and the
complete integration of them shown together.
I like seeing *all* aspects of the development:
the dead ends, the surprises, the wins, etc.
Quality is excellent, and I love that I can
download them and not have to stream them.
What is Test-Driven Development?
Who am I?
I’m James Shore. I’ve been building applications using test-driven development and other Agile techniques for over 13 years. I’m a recipient of the Agile Alliance’s Gordon Pask Award for Contributions to Agile Practice and I wrote a book called The Art of Agile Development.
What You Get
This screencast series focuses on rigorous, professional web development. That means test-driven development, of course, and also techniques such as build automation, continuous integration, refactoring, and evolutionary design. We support multiple browsers and platforms, including iOS, and we use Node.js on the server. The testing tools we’re using include NodeUnit, Mocha, expect.js, Karma, and PhantomJS.
All videos are DRM-free, viewable on the web and downloadable, and all source code is included.
The “Live” Channel
The series consists of three main channels. “Recorded Live” episodes are a live recording of an application as it’s developed, with commentary. I edit out dead-ends and time spent in research so each episode is focused and meaningful. Each “Live” episode is about 15 minutes long and comes out twice per week, on Monday and Wednesday.
The application itself is a real-time multi-user drawing application, developed from scratch and continually enhanced in each episode.
In addition to the “Live” episodes, you also get a special “Lessons Learned” or “The Lab” episode every month.
“Lessons Learned” episodes are for people wanting a refresher, a quick reference, or who simply want to catch up. They provide a distilled look at a specific topic, such as automating Lint, testing a Node.js server, or automating cross-browser testing.
“The Lab” is about exploration and experimentation. These episodes examine topics that don’t fit into the other two channels.
I have learned so much more than I expected.
I really enjoy your approach to screencasting and
wish the series wouldn’t end some day.