Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

166 Commits
166 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js

Required

Actual for versions:

  • Node.js 4.2+
  • Mongo 3.2+
  • Redis 3.0+

Program (total: 30h)

Training Overview (15m)

JavaScript

  • Variables
  • Conditions
  • Loops
  • Functions
  • Prototypes
  • Asynchronous functions
  • ...
  • Block scoping
    • let
    • const
  • Collections
    • Map
    • WeakMap
    • Set
    • WeakSet
  • Classes
  • Generators
  • Promises
  • Symbols
  • Template strings
  • Arrow Functions
  • ...
  • Airbnb Coding Style
  • Google JavaScript Style
  • JavaScript "Standard" Style
  • Crockfords’s Coding Standards
  • Node.js Coding Style
  • NPM "Funny" Coding Style
  • Idiomatic JavaScript Coding Style

Node.js

  • Small core
  • Small modules
  • Small surface area
  • Simplicity and pragmatism
  • Conceptions

    • Asynchronous
    • Event Loop
    • IO operations
    • Non blocking
  • Components

    • V8
    • libuv
    • ...
  • Versions of Node.js
  • Installation Node.js
  • CLI commands
  • First scripts
  • System errors

  • Standard JavaScript errors

    • SyntaxError
    • ReferenceError
    • TypeError
  • Assertion Errors

  • Custom errors

  • How it works?
  • Supported formats
  • Order of load and resolving algorithm
  • The module cache
  • NPM registry
  • Console
  • Process
  • Timers
  • Errors
  • Events
  • Stream
  • File System
  • HTTP
  • Crypto
  • Child Processes
  • ...
  • Lodash
  • Async / Neo-async
  • WS
  • MongoDB
  • Redis
  • Postgres
  • ...
  • File structure
  • Deep with package.json
  • Local packages
  • Publish to NPM Registry
  • Using in application
  • ...

Common Patterns in Node.js (1h)

  • Callbacks
  • Error-first
  • Async function in any case
  • Recursive async functions
  • ...
  • Creational Design Patterns

    • Singleton
    • Factory
    • Abstract Factory
    • ...
  • Structural Design Patterns

    • Adapter
    • Composite
    • Decorator
    • Facade
    • Bridge
    • Proxy
    • ...
  • Behavioral Design Patterns

    • Observer
    • ...

Asynchronous Control Flow (2h)

  • The difficulties

    • The callback hell
    • Specific flows
  • Flows

    • Sequential execution
    • Parallel execution
    • Limited parallel execution
  • Solutions

    • Pure JS functions
    • Async library
    • Promises
    • Generators
  • Hardcoded dependency
  • Dependency injection
  • Service locator
  • Dependency injection container

Recipes for yours applications (2h)

  • Run long sync operations
  • Run heavy CPU operations
  • Connection to MongoDB
  • Repository pattern
  • ...
  • What we test?
    • Cases
    • Priority
  • How to do your testing most effective and fast?
    • Classes
    • Boundary
    • Test levels
    • Piramida
  • Approaches
    • TDD
    • BDD
    • Pairwise
    • Mocks
  • Tools and libraries
    • Mocha
    • Should
    • Supertest
    • Sinon
  • Code Coverage
  • Patterns and best practices in testing
  • Continuous Integration
    • Conception
    • Travis CI
  • Continuous Delivery
    • Conception
  • Approaches

    • README Driven Development
    • Reference documentation
    • Unibutique Language
    • Changelog
    • License
  • Formats

    • Markdown
    • RAML

The design and architecture of the application (1h)

  • MVC
  • DDD
  • SOA
  • Micro-services
  • ...
  • 12 factors app
  • Configuration
  • Logging
  • Monitoring
  • Profiling
  • Connection to DBs and external services
  • ...

Project 1: Simple web-site

  • Express
  • Serving static content by Node.js
  • Using Nginx as reverse proxy and server of static content

Project 2: Service with REST API

  • Express
  • REST API design
  • REST API testing

Project 3: Tiny cloud (micro-services)

  • Micro-services overview
  • Communication between services
  • HTTP and Message Broker for communication
  • Testing of micro-services

Performance and Scaling of application and system (2h)

  • Scaling

    • What is scaling?
    • Scaling Law of applications
    • Methods of scaling applications
  • Performance

    • What is performance?
    • What should we measure?
    • Tools for performance tests (Yandex.Tank, ab, siege)
    • Analysis of the results
    • Recommendations for scaling
  • Cache in applications

Profiling and optimizations of application and system (2h)

  • Top most common mistakes which fail performance

  • Profiling

    • Memory
    • CPU
    • Blocking of EventLoop
  • Tools

Yours applications in production (1h)

  • Best practices of logging
  • Orchestration (Ansible)
  • ...

Distribution of your application (Docker) (1h)

  • What is Docker?
  • Create Docker image with your application
  • Run your applications
  • How to run own cloud in 1 click? (Docker Compose)
  • ...

Final Q&A (1h)

Author

License

This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

Creative Commons Attribution-NonCommercial 4.0 International License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.