Latest Live Episodes
Element DeduplicationWed, 23 July
We want to use CSS to position our tagline below our logo, and as usual, we want to test-drive it. That’s pretty easy, but first we need to refactor our code to better manage all the elements we’re accumulating.
An Important DistinctionMon, 21 July
We continue test-driving our production page design. As we work, we make an important distinction: rather than talking about CSS properties and rules, our CSS test talks about the resulting layout. We use this approach to position our logo on the page and get started on our tagline.
Visual VerificationWed, 16 July
Our test says our logo is centered, but when we actually look at the page, nothing actually works. We need to set up our images directory, copy in the logo, and then deal with some misconceptions in our test. Nothing too surprising—just steady progress as we figure out how to test-drive our CSS.
Legacy Code Part IV: Unit TestsFri, 6 June
The conclusion of our four-part legacy code series! We’re ready to put unit tests in place for Intro.js, our real-world legacy code example. We extract our scrolling function into its own module, install Karma, and implement honest-to-goodness cross-browser unit tests around it. Challenge completed!
Legacy Code Part III: RefactoringFri, 2 May
Our massive legacy code series continues! With pinning tests in place, we can safely change our legacy Intro.js code. We need to do two things: figure out how the showElement() function works and set the stage for introducing unit tests. To do that, we’ll factor showElement() into its component pieces.
Legacy Code Part II: Pinning TestsFri, 4 Apr
We continue our series on testing and refactoring legacy code. Now that we understand the design of Intro.js and know what we want to change, we need a way to refactor the code safely. Our centerpiece will be pinning tests: rough tests that warn us when we accidentally change the behavior of our legacy code.
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.