Episode 75

075 JSJ Maintainable JavaScript with Nicholas Zakas


September 13th, 2013

57 mins 41 secs

Your Hosts
Special Guest

About this Episode


Nicholas C. Zakas (twitter github blog)
Joe Eames (twitter github blog)
AJ O’Neal (twitter github blog)
Jamison Dance (twitter github blog)
Merrick Christensen (twitter github)
Charles Max Wood (twitter github Teach Me To Code Rails Ramp Up)

01:24 - Nicholas Zakas Introduction

Maintainable JavaScript by Nicholas C. Zakas
High Performance JavaScript (Build Faster Web Application Interfaces) by Nicholas C. Zakas

02:19 - What Makes Maintainable JavaScript?

Code Layout
Clever Solutions (“Chicken Blood Solutions”)

04:39 - Formatting

Thinking, Fast and Slow by Daniel Kahneman
Broken Window Theory

07:33 - Architecture

Nicholas Zakas: The Scalable JavaScript Application Architecture
Feature Encapsulation

14:11 - 'High Performance Javascript' and the balance between short-term and long-term knowledge
19:17 - Important conventions for a team to follow

Mini Design Patterns

26:14 - Tools & Techniques

Style Guide

28:31 - Breaking the continuous integration build
31:14 - Linting


32:35 - Developing skills for architecting things

Personal Trait of Curiosity
Component-based and Systems-based software engineers

37:52 - Architecture and Maintainability


43:28 - Creating common conventions that will apply across projects


Domo (Joe)
Pluralsight (Joe)
Game Dev Tycoon (Joe)
The Star Wars (Joe)
Foundation Actionscript 3.0 Animation: Making Things Move! by Keith Peters (Merrick)
ng-conf (Merrick)
Kveikur by Sigur Rós (Merrick)
makemeasandwich (AJ)
Sleep (AJ)
Jekyll Themes (Jamison)
Growing Object-Oriented Software, Guided by Tests by Steve Freeman (Jamison)
A Canticle For Leibowitz by Walter M. Miller Jr. (Jamison)
DevChat.tv (Chuck)
Thinking, Fast and Slow by Daniel Kahneman (Nicholas)
StePhest Colbchella '013 - Time to Dance (Nicholas)
Evolution of Music - Pentatonix (Nicholas)

Next Week
Meteor.js with Marcus Phillips and Fred Zirdung

[Hosting and bandwidth provided by the Blue Box Group. Check them out at BlueBox.net.] 

[This episode is sponsored by Component One, makers of Wijmo. If you need stunning UI elements or awesome graphs and charts, then go to Wijmo.com and check them out.] 

[This podcast is sponsored by JetBrains, makers of WebStorm. Whether you’re working with Node.js or building the frontend of your web application, WebStorm is the tool for you. It has great code quality and code exploration tools and works with HTML5, Node, TypeScript, CoffeeScript, Harmony, LESS, Sass, Jade, JSLint, JSHint, and the Google Closure Compiler. Check it out at JetBrains.com/WebStorm.]

CHUCK:  Hey everybody and welcome to episode 75 of the JavaScript Jabber show. This week on our panel, we have Joe Eames.

JOE:  Hey, everyone.

CHUCK:  AJ O’Neal.

AJ:  I can hit unmute. I'm here.

CHUCK:  Jamison Dance.

JAMISON:  Hello, friends.

CHUCK:  Merrick Christensen.

MERRICK:  Hey, guys.

CHUCK:  I’m Charles Max Wood from DevChat.TV. This week, we have a special guest, that’s Nicholas Zakas.

NICHOLAS:  Yup, you got it.

CHUCK:  So, since you haven’t been on the show before, do you want to introduce yourself?

NICHOLAS:  Sure. I'm a software engineer that is working for Box currently. I think a lot of people probably know me from the books that I've written, mostly on the topic of JavaScript and the talks that I've given also on that topic. And a lot of that relates back to my work when I was at Yahoo. I was there for about five years and was the lead on the Yahoo homepage redesign. And a lot of what I do is really just try to solve problems in real life and then share what I did with everybody else in whatever way I think is most appropriate - writing or speaking or coming on podcasts.

CHUCK:  Yes, you're being modest. You have a book,