-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathNodeJS-Async-2024.html
162 lines (154 loc) Β· 8.49 KB
/
NodeJS-Async-2024.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Node.js and Async 2024 Training Course</title>
<style>
body { font-family: 'Courier New', Courier, monospace; background: #121212; color: #ccc; }
header, section { padding: 20px; border-bottom: 1px solid #333; }
h1, h2, h3 { color: #8ab4f8; }
p { line-height: 1.6; }
.button { background: linear-gradient(to right, #0d47a1, #1976d2); border: none; padding: 10px 20px; color: white; border-radius: 5px; cursor: pointer; }
.register { background: #202124; padding: 20px; }
input, textarea { width: 100%; padding: 10px; margin-top: 5px; background: #333; border: 1px solid #555; color: white; border-radius: 5px; }
form { max-width: 400px; margin: auto; }
.case-study { background: #333; padding: 20px; margin: 15px 0; }
.testimonial { font-style: italic; background: #252526; padding: 10px; margin-bottom: 10px; }
</style>
</head>
<body>
<header>
<h1>π Node.js and Async 2024 Training</h1>
<p>Asynchronous programming and Node.js for applied developers. Sign up today to advance your skills!</p>
</header>
<section>
<h2>Course Structure</h2>
<p>This course covers essential topics including:</p>
<ul>
<li>π Node.js: introduction to technology</li>
<li>π§βπ» HTTP server for statics files</li>
<li>𧩠Comparison of HTTP, TCP and UDP clustering on processes and threads</li>
<li>𧩠Asynchrony and event loop phases</li>
<li>β Application structure: modularity systems, packages and dependencies</li>
<li>π» Modularity systems, CommonJS, ESModules, implementation of your own modularity system</li>
<li>π» Packages and their loading in different modular systems</li>
<li>β Application architecture: layers and dependency injection</li>
<li>𧩠Why is middleware bad?</li>
<li>β Layers and Low Coupling using the example of config and transport</li>
<li>β Databases, model, .d.ts headers and linters</li>
<li>β Cryptography: crypto, password hashing with salt, session token, UUID, random numbers</li>
<li>π» Implementation of randomPrefetcher from the metautil library</li>
<li>π» UUID generation</li>
<li>β Using Chat GPT in JavaScript optimization for Node.js</li>
<li>β Server class structure and GoF patterns in Node.js</li>
<li>β Authentication subsystem</li>
<li>β Role Based Access Control subsystem</li>
<li>β Streams Readable, Writable, Transform, open constructor, buffering, backpressure</li>
<li>β Infrastructure and tools: typings, testing, linters, CI/CD, built-in testing framework</li>
<li>β Working with errors and exceptions, Graceful shutdown in Node.js, unhandled exceptions, async stack trace</li>
<li>π» Async stack trace</li>
<li>π» Graceful shutdown</li>
<li>π» Correct error handling</li>
<li>β Working with files and file streams, monitoring the file system</li>
<li>β¨ Buffers and file streams</li>
<li>β GRASP and SOLID principles in JavaScript with adaptation for Node.js</li>
<li>π» Inversoion of Control and Dedendency Injection</li>
<li>β Security issues: DoS, XSS, Path traversal, CSRF, SQL injection</li>
<li>β¨ Node.js application security</li>
<li>β C/C++ Addons, Node-API (n-api)</li>
<li>β WebAssembly: Rust, WAT, C++, AssemblyScript</li>
<li>β Tracking asynchronous contexts: AsyncLocalStorage, AsyncResource</li>
<li>β API design and contract verification in runtime</li>
<li>β¨ Contract programming</li>
<li>β Subsystems as separate microservices</li>
<li>β Performance hooks, resource telemetry and optimization</li>
<li>β¨ I/O bound, CPU bound, memory bound, profiling</li>
<li>β Serverless and cloud FaaS solutions based on Node.js</li>
<li>β Near real-time applications, Websocket, interactivity and collaborative applications</li>
<li>π’ Interactivity and collaborative applications</li>
<li>β Distributed systems, high-load systems, load balancing, clustering and scaling, IP sticky</li>
<li>β¨ HTTP server on Node.js (routing, cluster, IP sticky)</li>
<li>β HTTP Proxy implementation</li>
<li>β Build Node.js applications into single executable</li>
<li>β Automatic restart of processes with --watch</li>
<li>β Review of Web API ported to Node.js: Web Crypro, Web Streams, Intl</li>
<li>β Built-in Permissions system to restrict access to the file system, network, and other APIs</li>
<li>π― Asynchrony contracts based on callback</li>
<li>π― Minimum required understanding of runtime: event loop, I/O, timers</li>
<li>π― Event-based contracts: EventTarget, EventEmitter</li>
<li>π― Stream abstraction: Readable, Writable, Transform</li>
<li>β¨ Pattern open constructor (Revealing Constructor), buffering, backpressure</li>
<li>β Thenabe Contract</li>
<li>π― Promise Contract</li>
<li>β Promise: then/catch/finally and class methods all, allSettled, race, any</li>
<li>π― Contract of asynchronous functions async/await</li>
<li>β Asynchronous functions</li>
<li>π― Signals: signal, computed, effect</li>
<li>π― Handling errors, identifying them and solving problems with stack traces</li>
<li>π§βπ Asynchronous queue AsyncQueue</li>
<li>π§βπ Asynchronous pool AsyncPool</li>
<li>π§βπ Asynchronous Collection Collector</li>
<li>𧩠Asynchronous collections (collecting values until ready)</li>
<li>π§βπ Chain of responsibility pattern</li>
<li>π§βπ Contract converters asyncify, callbackify, code joining in different styles</li>
<li>β Asynchronous adapters (in preparation)</li>
<li>π§βπ Preventing data and control race conditions in asynchronous code</li>
<li>π§βπ Canceling asynchronous operations: AbortController, AbortSignal</li>
<li>π§βπ Async Generator and Async Iterator</li>
<li>βοΈ Abstractions ported from parallel programming: Semaphore, Mutex, Locks</li>
<li>𧩠System abstractions: threads, processes</li>
<li>𧩠Inter-process and inter-thread communication, MessageChannel, BroadcastChannel</li>
<li>𧩠Coroutines coroutines</li>
<li>π§βπ Asynchronous generators and asynchronous iterators</li>
<li>π§βπ Composition of functions on callbacks compose callbacks</li>
<li>π§βπ Composition of asynchronous functions async compose</li>
<li>π§βπ Asynchrony with RxJS event streams</li>
<li>π§βπ Actor model</li>
<li>π§βπ Functional asynchronous programming, Future contract</li>
<li>β οΈ Asynchrony on synchronous generators function*/yield</li>
<li>βοΈ Tracking asynchronous contexts</li>
<li>β AsyncLocalStorage, AsyncResource</li>
<li>𧩠Multithreading in Node.js</li>
<li>𧩠Web Locks API in Node.js and browser</li>
</ul>
</section>
<section class="case-study">
<h2>Case Study</h2>
<p>Explore how top tech companies optimize their back-end operations using Node.js async patterns.</p>
</section>
<section>
<h2>Why Choose This Course?</h2>
<p>Unique insights into modern backend technologies and best practices in a hands-on, project-based learning environment.</p>
</section>
<section>
<h2>Previous Success Stories</h2>
<div class="testimonial">
<p>"This course transformed my understanding of backend architectures." - Your , Software Engineer</p>
</div>
<div class="testimonial">
<p>"Practical, in-depth and immediately applicable techniques." - Your Name, Developer</p>
</div>
</section>
<section>
<h2>Unique on The Market</h2>
<p>Our course is the only one that provides real-world...</p>
</section>
<section class="register">
<h2>Π Π΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π½Π° ΠΊΡΡΡ</h2>
<form action="https://metarhia.com/register" method="POST">
<input type="text" placeholder="Name" required>
<input type="email" placeholder="Email" required>
<textarea placeholder="ΠΠΎΡΠ΅ΠΌΡ ΠΡ Ρ
ΠΎΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠ°ΡΡΡΡ?"></textarea>
<button type="submit" class="button">Register Now</button>
</form>
</section>
<section>
<h2>About the Author</h2>
<p>Timur Shemsedinov - 28 years in IT, expert in node.js & javascript, private clouds, software engineering, cybernetics, distributed systems, architecture, databases</p>
</section>
<footer>
<p>For more information, please visit our <a href="https://github.com/metatech-university" style="color: #8ab4f8;">GitHub page</a> or contact us directly.</p>
</footer>
</body>
</html>