Recent Advanced Episodes
Updates Monday and Wednesday
Clear EventsWed, 15 Feb ’17
The cost to develop a new networked behavior has dropped dramatically: from 13 hours for networked pointers to just two hours for networked line drawing. Now we’re going to network our “clear screen” button and see if we can cut that time even further. We start by creating the clear events.
CheaterMon, 13 Feb ’17
We need our network test harness to listen to all possible events, but Socket.IO doesn’t give us that ability. So we cheat. We make a list of the events our tests use and make sure our code fails with a nice error message when we try to use one that isn’t in the list. That allows us to work around Socket.IO’s deficiency and finish off the chapter.
Network RacesWed, 8 Feb ’17
As we continue improving our network test harness, we run smack into network race conditions. There’s no guarantees about when network events will be delivered, or any way to tell if an event’s been delivered at all without asking the network again. Our waitForDrawEvent() method addresses this, but it’s surprisingly difficult to genericize.
Full Series Now Available!
Hat and GownFri, 12 Feb ’16
Our series is complete! Where do you go from here? With the conclusion of this series, if you’ve done the exercises, you’re ready to act as a junior developer on a professional team. Now we talk about what it takes to graduate to the next stage of your career and provide some specific guidance about what to do to get there.
Test DoublesFri, 5 Feb ’16
One of the most common testing techniques you’ll see in the wild is the use of test doubles, also known as “mocking.” We take a close look at this advanced technique. It’s seductive and easily abused. We rebuild one of our tests using mocks so you can understand the concept... and see what to avoid.
CohesionFri, 29 Jan ’16
Our application is done. It works. I’m not entirely happy with the design of our latest code, though. It lacks cohesion. In this episode, we wrap up our tab application with a look at three fundamental design forces: the DRY Principle, Decoupling, and Cohesion. We use what we learn to improve the cohesion of our application’s startup code.
An in-depth screencast about
You've taught me a lot this past year and haveJason Weden
been better than a teacher, a true mentor.
I’m completely new to TDD and this is by farAdam Brodzinski
the most comprehensive TDD for JS... your videos are
a breath of fresh air!
This is a gold mine... This will help a lot in my day job.Timothy Myers
Love what you're doing. It's helped out ourScott Corgan
team tremendously here at Sevenly.
I’m delighted with LCJ. It’s interesting and informative, and theCrispin Bennett
candid way you think aloud makes it personal and engaging.
You’ve done a terrific job.
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 15 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 test against multiple browsers and platforms, including iOS, and we use Node.js on the server.
All videos are DRM-free, available for streaming or download, and all source code is included.
The series consists of four main channels. The “Recorded Live” channel focuses on real-world development, warts and all. It’s meant for experienced programmers.
If you’re a new developer, the “How To” channel is for you. It’s meant for beginners who have recently learned to program and are ready to start their professional career.
The “Lessons Learned” channel provides concise reviews of key topics, such as continuous integration, test-driven development, and build automation. It’s great for review and reference.
Advanced programmers will enjoy “The Lab”, our channel focused on exploring new tools and ideas.
New videos are published every week. A new “Recorded Live” episode is released every Monday and Wednesday. Specials (“Lessons Learned,” “The Lab,” and “How To” episodes) are released when they’re ready.
“Recorded Live” and “How To” episodes are about 15 minutes long. “Lessons Learned” videos are typically about 15-30 minutes long, and episodes of “The Lab” tend to be about an hour.
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.