- [Instructor] Design patterns are advanced techniques
that help us improve the way we write code.
Specifically they help us write more scalable solutions
by restructuring our solutions into parts
that communicate with each other.
Some of these parts always stay the same
while others are designed to change, grow, and expand.
Implementing these techniques can be tricky,
so this is not a beginner course.
If you're brand new to programming,
JavaScript, or Node.js, you may want to make sure
that you've taken some time to practice writing code
and building applications before starting this course.
This course is designed to demonstrate proven techniques
that you can use to make code
that you've already written better.
If you are a programmer with experience
in an object-oriented language and you've dabbled
with design patterns in your language,
this course may be for you.
We use JavaScript class syntax in this course
to make it easier for programmers
who are transitioning from some other language to Node.js.
Since we use class syntax, I am expecting that you have
brushed up on your ES6 and you know
how to create and extend classes in JavaScript
with the latest syntax.
It is also extremely important
that we understand that JavaScript
doesn't actually have classes.
It achieves inheritance through the prototype.
It's 2018 so I'm also using a lot of
the latest JavaScript syntax
including class syntax, object destructuring,
object literal enhancement, and arrow functions.
Yes, tons and tons of arrow functions.
Finally, I'm assuming that you've taken
my Node.js Essential Training class
or that you know how to use Node.js.
At the very least that you have Node.js installed
and you've previously run a script with Node.
If you've never used Node and you don't have it installed,
take the time to take my Node.js Essentials Training course.
Otherwise, you're ready for this
intermediate to advanced course
on design patterns with Node.js.