I am not going to go quite as in depth in this review as I do for some other courses. Do not think that this has anything to do with the quality of the course. The only reason is I watched this course a couple of years ago and would prefer to give a quick summary than rewatch the whole course again.
It is one of the intermediate level courses in the Node JS Learning Path
Large scale tends to be subjective, but that doesn’t prevent us from using good technique throughout our development.
The three keys that will be the theme of this course are:
Frameworks and meta languages can help, but they must be backed up with good development practices.
This module covers techniques for creating code that is more maintainable over time.
- Avoiding Global scope means we have one less collision to worry about
- Using strict mode will help highlight errors earlier
- Structuring your code into modular units will increase stability
- Injecting dependencies allows us to not handle the wiring up of dependencies
- Abandon nested callbacks in favor of promises and async patterns
- Use eventing and messaging to loosely couple your modules.
- Knowing you have a problem is the first task
- Focusing on better code will make your application scale better
- In most cases being lazy about how we are executing our code is the best approach
- Minification will help you improve performance of downloads and parsing
This module stresses the importance of unit testing our code.
- Too many mixed concerns are a problem to testing
- Unit testing is critical, but don’t get bogged down with dogma of process (are TDD or BDD etc)
- Jasmine and GruntJS are a great combination to simplify this
- Automating running unit tests can speed up your overall testing
I have been using Jasmine for a couple of years now, however Mocha and Ava are two popular alternatives that you may want to check out.
Mocha is used in Cory House’s course Building Applications with React and Redux in ES6
Gulp and NPM Scripts are alternatives to Grunt JS which many people prefer today.
- It isn’t magically suited to large scale projects (as with other server-side technologies)
- Still needs to be Maintainable, Scalable and Testable
- You still need to test your code, even if its just on the server