Урок 1. 00:00:57
How to Get Help
Урок 2. 00:03:20
What Is a Microservice?
Урок 3. 00:07:35
Data in Microservices
Урок 4. 00:05:09
Big Problems with Data
Урок 5. 00:06:54
Sync Communication Between Services
Урок 6. 00:05:20
Event-Based Communication
Урок 7. 00:09:50
A Crazy Way of Storing Data
Урок 8. 00:06:16
Pros and Cons of Async Communication
Урок 9. 00:05:45
App Overview
Урок 10. 00:04:58
Project Setup
Урок 11. 00:08:19
Posts Service Creation
Урок 12. 00:04:06
Testing the Posts Service
Урок 13. 00:08:23
Implementing a Comments Service
Урок 14. 00:03:58
Quick Comments Test
Урок 15. 00:05:01
React Project Setup
Урок 16. 00:09:55
Building Post Submission
Урок 17. 00:04:10
Handling CORS Errors
Урок 18. 00:10:05
Fetching and Rendering Posts
Урок 19. 00:08:10
Creating Comments
Урок 20. 00:07:24
Displaying Comments
Урок 21. 00:04:55
Request Minimization Strategies
Урок 22. 00:07:17
An Async Solution
Урок 23. 00:04:15
Common Questions Around Async Events
Урок 24. 00:05:15
Event Bus Overview
Урок 25. 00:05:23
A Basic Event Bus Implementation
Урок 26. 00:05:19
Emitting Events
Урок 27. 00:03:46
Emitting Comment Creation Events
Урок 28. 00:04:34
Receiving Events
Урок 29. 00:04:43
Creating the Data Query Service
Урок 30. 00:07:03
Parsing Incoming Events
Урок 31. 00:07:11
Using the Query Service
Урок 32. 00:04:47
Adding a Simple Feature
Урок 33. 00:07:44
Issues with Comment Filtering
Урок 34. 00:05:38
A Second Approach
Урок 35. 00:04:46
How to Handle Resource Updates
Урок 36. 00:04:53
Creating the Moderation Service
Урок 37. 00:04:27
Adding Comment Moderation
Урок 38. 00:05:31
Handling Moderation
Урок 39. 00:05:00
Updating Comment Content
Урок 40. 00:05:58
A Quick Test
Урок 41. 00:03:27
Rendering Comments by Status
Урок 42. 00:10:25
Dealing with Missing Events
Урок 43. 00:06:12
Implementing Event Sync
Урок 44. 00:04:17
Event Syncing in Action
Урок 45. 00:06:56
Deployment Issues
Урок 46. 00:02:56
Why Docker?
Урок 47. 00:05:48
Why Kubernetes?
Урок 48. 00:01:18
Don't Know Docker? Watch This.
Урок 49. 00:04:03
Dockerizing the Posts Service
Урок 50. 00:05:24
Review Some Basic Commands
Урок 51. 00:03:02
Dockering Other Services
Урок 52. 00:03:20
Installing Kubernetes
Урок 53. 00:09:46
A Kubernetes Tour
Урок 54. 00:02:53
Important Kubernetes Terminology
Урок 55. 00:03:12
Notes on Config Files
Урок 56. 00:06:42
Creating a Pod
Урок 57. 00:05:16
Understanding a Pod Spec
Урок 58. 00:04:45
Common Kubectl Commands
Урок 59. 00:02:27
A Time-Saving Alias
Урок 60. 00:03:29
Introducing Deployments
Урок 61. 00:06:13
Creating a Deployment
Урок 62. 00:04:37
Common Commands Around Deployments
Урок 63. 00:06:03
Updating Deployments
Урок 64. 00:05:43
Preferred Method for Updating Deployments
Урок 65. 00:04:16
Networking With Services
Урок 66. 00:07:53
Creating a NodePort Service
Урок 67. 00:05:10
Accessing NodePort Services
Урок 68. 00:03:13
Setting Up Cluster IP Services
Урок 69. 00:05:36
Building a Deployment for the Event Bus
Урок 70. 00:07:38
Adding ClusterIP Services
Урок 71. 00:04:10
How to Communicate Between Services
Урок 72. 00:06:28
Updating Service Addresses
Урок 73. 00:05:01
Verifying Communication
Урок 74. 00:09:58
Adding Query, Moderation and Comments
Урок 75. 00:05:30
Testing Communication
Урок 76. 00:05:14
Load Balancer Services
Урок 77. 00:06:40
Load Balancers and Ingress
Урок 78. 00:07:41
Installing Ingress-Nginx
Урок 79. 00:04:48
Writing Ingress Config Files
Урок 80. 00:06:17
Hosts File Tweak
Урок 81. 00:06:10
Deploying the React App
Урок 82. 00:06:56
Unique Route Paths
Урок 83. 00:06:33
Final Route Config
Урок 84. 00:03:09
Introducing Skaffold
Урок 85. 00:09:18
Skaffold Setup
Урок 86. 00:01:01
First Time Skaffold Startup
Урок 87. 00:06:31
A Few Notes on Skaffold
Урок 88. 00:15:12
Big Ticket Items
Урок 89. 00:08:54
App Overview
Урок 90. 00:03:24
Resource Types
Урок 91. 00:03:39
Service Types
Урок 92. 00:03:49
Events and Architecture Design
Урок 93. 00:04:52
Auth Service Setup
Урок 94. 00:08:16
Auth K8s Setup
Урок 95. 00:05:37
Adding Skaffold
Урок 96. 00:07:20
Ingress-Nginx Setup
Урок 97. 00:04:07
Hosts File and Security Warning
Урок 98. 00:02:52
Note on Remote Development
Урок 99. 00:06:36
Remote Dev with Skaffold
Урок 100. 00:02:44
Google Cloud Initial Setup
Урок 101. 00:04:00
Kubernetes Cluster Creation
Урок 102. 00:03:50
Kubectl Contexts
Урок 103. 00:05:04
Initializing the GCloud SDK
Урок 104. 00:04:18
Installing the GCloud Context
Урок 105. 00:04:36
Updating the Skaffold Config
Урок 106. 00:01:07
More Skaffold Updates
Урок 107. 00:05:13
Creating a Load Balancer
Урок 108. 00:06:26
Final Config and Test
Урок 109. 00:05:42
Creating Route Handlers
Урок 110. 00:04:06
Scaffolding Routes
Урок 111. 00:08:39
Adding Validation
Урок 112. 00:06:19
Handling Validation Errors
Урок 113. 00:06:08
Surprising Complexity Around Errors
Урок 114. 00:04:18
Other Sources of Errors
Урок 115. 00:04:51
Solution for Error Handling
Урок 116. 00:07:39
Building an Error Handling Middleware
Урок 117. 00:05:25
Communicating More Info to the Error Handler
Урок 118. 00:04:36
Encoding More Information In an Error
Урок 119. 00:08:18
Subclassing for Custom Errors
Урок 120. 00:03:11
Determining Error Type
Урок 121. 00:10:13
Converting Errors to Responses
Урок 122. 00:08:37
Moving Logic Into Errors
Урок 123. 00:08:35
Verifying Our Custom Errors
Урок 124. 00:10:20
Final Error Related Code
Урок 125. 00:05:02
How to Define New Custom Errors
Урок 126. 00:05:51
Uh Oh... Async Error Handling
Урок 127. 00:08:26
Creating Databases in Kubernetes
Урок 128. 00:07:54
Connecting to MongoDB
Урок 129. 00:04:26
Understanding the Signup Flow
Урок 130. 00:05:22
Getting TypeScript and Mongoose to Cooperate
Урок 131. 00:04:55
Creating the User Model
Урок 132. 00:06:02
Type Checking User Properties
Урок 133. 00:06:01
Adding Static Properties to a Model
Урок 134. 00:04:54
Defining Extra Document Properties
Урок 135. 00:03:53
What's That Angle Bracket For?
Урок 136. 00:06:48
User Creation
Урок 137. 00:07:27
Proper Error Handling
Урок 138. 00:04:59
Reminder on Password Hashing
Урок 139. 00:06:58
Adding Password Hashing
Урок 140. 00:02:55
Comparing Hashed Password
Урок 141. 00:05:54
Mongoose Pre-Save Hooks
Урок 142. 00:08:59
Fundamental Authentication Strategies
Урок 143. 00:07:33
Huge Issues with Authentication Strategies
Урок 144. 00:02:59
So Which Option?
Урок 145. 00:08:27
Solving Issues with Option #2
Урок 146. 00:06:22
Reminder on Cookies vs JWT's
Урок 147. 00:11:01
Microservices Auth Requirements
Урок 148. 00:09:59
Issues with JWT's and Server Side Rendering
Урок 149. 00:04:52
Cookies and Encryption
Урок 150. 00:03:12
Adding Session Support
Урок 151. 00:08:30
Generating a JWT
Урок 152. 00:04:58
JWT Signing Keys
Урок 153. 00:02:14
Securely Storing Secrets with Kubernetes
Урок 154. 00:09:19
Creating and Accessing Secrets
Урок 155. 00:05:19
Accessing Env Variables in a Pod
Урок 156. 00:04:42
Common Response Properties
Урок 157. 00:10:40
Formatting JSON Properties
Урок 158. 00:07:50
The Signin Flow
Урок 159. 00:05:34
Common Request Validation Middleware
Урок 160. 00:06:50
Sign In Logic
Урок 161. 00:01:54
Quick Sign In Test
Урок 162. 00:03:02
Current User Handler
Урок 163. 00:08:56
Returning the Current User
Урок 164. 00:02:49
Signing Out
Урок 165. 00:06:56
Creating a Current User Middleware
Урок 166. 00:07:47
Augmenting Type Definitions
Урок 167. 00:07:47
Requiring Auth for Route Access
Урок 168. 00:04:29
Scope of Testing
Урок 169. 00:04:33
Testing Goals
Урок 170. 00:07:52
Testing Architecture
Урок 171. 00:02:55
Index to App Refactor
Урок 172. 00:03:34
A Few Dependencies
Урок 173. 00:08:13
Test Environment Setup
Урок 174. 00:06:25
Our First Test
Урок 175. 00:01:32
An Important Note
Урок 176. 00:05:14
Testing Invalid Input
Урок 177. 00:01:47
Requiring Unique Emails
Урок 178. 00:05:44
Changing Node Env During Tests
Урок 179. 00:06:27
Tests Around Sign In Functionality
Урок 180. 00:04:32
Testing Sign Out
Урок 181. 00:05:20
Issues with Cookies During Testing
Урок 182. 00:03:04
Easy Auth Solution
Урок 183. 00:07:13
Auth Helper Function
Урок 184. 00:01:45
Testing Non-Authed Requests
Урок 185. 00:02:12
Starting the React App
Урок 186. 00:03:39
Reminder on Server Side Rendering
Урок 187. 00:05:25
Basics of Next JS
Урок 188. 00:04:29
Building a Next Image
Урок 189. 00:10:13
Running Next in Kubernetes
Урок 190. 00:04:27
Note on File Change Detection
Урок 191. 00:05:10
Adding Global CSS
Урок 192. 00:03:12
Adding a Sign Up Form
Урок 193. 00:03:43
Handling Email and Password Inputs
Урок 194. 00:05:13
Successful Account Signup
Урок 195. 00:06:54
Handling Validation Errors
Урок 196. 00:07:00
The useRequest Hook
Урок 197. 00:03:41
Using the useRequest Hook
Урок 198. 00:05:39
An onSuccess Callback
Урок 199. 00:06:48
Overview on Server Side Rendering
Урок 200. 00:05:08
Fetching Data During SSR
Урок 201. 00:09:01
Why the Error?
Урок 202. 00:07:05
Two Possible Solutions
Урок 203. 00:07:46
Cross Namespace Service Communication
Урок 204. 00:06:47
When is GetInitialProps Called?
Урок 205. 00:02:02
On the Server or the Browser
Урок 206. 00:08:24
Specifying the Host
Урок 207. 00:04:02
Passing Through the Cookies
Урок 208. 00:07:06
A Reusable API Client
Урок 209. 00:02:02
Content on the Landing Page
Урок 210. 00:03:13
The Sign In Form
Урок 211. 00:05:01
A Reusable Header
Урок 212. 00:02:12
Moving GetInitialProps
Урок 213. 00:06:43
Issues with Custom App GetInitialProps
Урок 214. 00:06:09
Handling Multiple GetInitialProps
Урок 215. 00:03:04
Passing Props Through
Урок 216. 00:05:06
Building the Header
Урок 217. 00:05:59
Conditionally Showing Links
Урок 218. 00:04:37
Signing Out
Урок 219. 00:04:35
Shared Logic Between Services
Урок 220. 00:04:47
Options for Code Sharing
Урок 221. 00:04:28
NPM Organizations
Урок 222. 00:04:07
Publishing NPM Modules
Урок 223. 00:07:35
Project Setup
Урок 224. 00:07:27
An Easy Publish Command
Урок 225. 00:07:30
Relocating Shared Code
Урок 226. 00:05:18
Updating Import Statements
Урок 227. 00:05:35
Updating the Common Module
Урок 228. 00:03:04
Ticketing Service Overview
Урок 229. 00:05:26
Project Setup
Урок 230. 00:06:06
Running the Ticket Service
Урок 231. 00:08:15
Mongo Connection URI
Урок 232. 00:01:48
Quick Auth Update
Урок 233. 00:04:20
Test-First Approach
Урок 234. 00:04:57
Creating the Router
Урок 235. 00:08:05
Adding Auth Protection
Урок 236. 00:07:11
Faking Authentication During Tests
Урок 237. 00:05:40
Building a Session
Урок 238. 00:04:13
Testing Request Validation
Урок 239. 00:04:10
Validating Title and Price
Урок 240. 00:07:13
Reminder on Mongoose with TypeScript
Урок 241. 00:03:50
Defining the Ticket Model
Урок 242. 00:08:22
Creation via Route Handler
Урок 243. 00:06:53
Testing Show Routes
Урок 244. 00:05:30
Unexpected Failure!
Урок 245. 00:08:58
What's that Error?!
Урок 246. 00:05:12
Better Error Logging
Урок 247. 00:06:32
Complete Index Route Implementation
Урок 248. 00:06:16
Ticket Updating
Урок 249. 00:04:16
Handling Updates
Урок 250. 00:06:50
Permission Checking
Урок 251. 00:09:05
Final Update Changes
Урок 252. 00:05:37
Manual Testing
Урок 253. 00:02:51
What Now?
Урок 254. 00:04:35
Three Important Items
Урок 255. 00:06:26
Creating a NATS Streaming Deployment
Урок 256. 00:09:54
Big Notes on NATS Streaming
Урок 257. 00:07:32
Building a NATS Test Project
Урок 258. 00:04:41
Port-Forwarding with Kubectl
Урок 259. 00:06:22
Publishing Events
Урок 260. 00:06:56
Listening For Data
Урок 261. 00:06:57
Accessing Event Data
Урок 262. 00:04:49
Client ID Generation
Урок 263. 00:07:29
Queue Groups
Урок 264. 00:09:53
Manual Ack Mode
Урок 265. 00:09:46
Client Health Checks
Урок 266. 00:06:43
Graceful Client Shutdown
Урок 267. 00:12:57
Core Concurrency Issues
Урок 268. 00:08:09
Common Questions
Урок 269. 00:16:43
[Optional] More Possible Concurrency Solutions
Урок 270. 00:20:06
Solving Concurrency Issues
Урок 271. 00:09:41
Concurrency Control with the Tickets App
Урок 272. 00:04:36
Event Redelivery
Урок 273. 00:09:00
Durable Subscriptions
Урок 274. 00:04:34
Reusable NATS Listeners
Урок 275. 00:09:28
The Listener Abstract Class
Урок 276. 00:05:54
Extending the Listener
Урок 277. 00:03:19
Quick Refactor
Урок 278. 00:05:29
Leveraging TypeScript for Listener Validation
Урок 279. 00:03:30
Subjects Enum
Урок 280. 00:02:27
Custom Event Interface
Урок 281. 00:07:23
Enforcing Listener Subjects
Урок 282. 00:03:55
Enforcing Data Types
Урок 283. 00:02:50
Where Does this Get Used?
Урок 284. 00:08:12
Custom Publisher
Урок 285. 00:03:51
Using the Custom Publisher
Урок 286. 00:04:29
Awaiting Event Publication
Урок 287. 00:06:27
Common Event Definitions Summary
Урок 288. 00:07:36
Updating the Common Module
Урок 289. 00:02:11
Restarting NATS
Урок 290. 00:03:49
Publishing Ticket Creation
Урок 291. 00:03:20
More on Publishing
Урок 292. 00:05:25
NATS Client Singleton
Урок 293. 00:04:58
Remember Mongoose?
Урок 294. 00:09:05
Singleton Implementation
Урок 295. 00:04:29
Accessing the NATS Client
Урок 296. 00:06:56
Graceful Shutdown
Урок 297. 00:03:24
Successful Listen!
Урок 298. 00:04:29
Ticket Update Publishing
Урок 299. 00:07:04
Failed Event Publishing
Урок 300. 00:06:03
Handling Publish Failures
Урок 301. 00:03:53
Fixing a Few Tests
Урок 302. 00:05:36
Redirecting Imports
Урок 303. 00:09:10
Providing a Mock Implementation
Урок 304. 00:02:13
Test-Suite Wide Mocks
Урок 305. 00:09:14
Ensuring Mock Invocations
Урок 306. 00:08:02
NATS Env Variables
Урок 307. 00:05:03
The Orders Service
Урок 308. 00:04:40
Scaffolding the Orders Service
Урок 309. 00:07:34
A Touch More Setup
Урок 310. 00:01:55
Ingress Routing Rules
Урок 311. 00:09:56
Scaffolding a Few Route Handlers
Урок 312. 00:06:44
Subtle Service Coupling
Урок 313. 00:06:50
Associating Orders and Tickets
Урок 314. 00:08:53
Order Model Setup
Урок 315. 00:05:57
The Need for an Enum
Урок 316. 00:08:32
Creating an Order Status Enum
Урок 317. 00:02:59
More on Mongoose Refs
Урок 318. 00:07:10
Defining the Ticket Model
Урок 319. 00:05:46
Order Creation Logic
Урок 320. 00:06:11
Finding Reserved Tickets
Урок 321. 00:07:38
Convenience Document Methods
Урок 322. 00:06:06
Order Expiration Times
Урок 323. 00:02:37
Test Suite Setup
Урок 324. 00:06:09
Asserting Tickets Exist
Урок 325. 00:05:06
Asserting Reserved Tickets
Урок 326. 00:04:10
Testing the Success Case
Урок 327. 00:05:25
Fetching a User's Orders
Урок 328. 00:12:24
A Slightly Complicated Test
Урок 329. 00:04:37
Fetching Individual Orders
Урок 330. 00:07:18
Does Fetching Work?
Урок 331. 00:04:33
Cancelling an Order
Урок 332. 00:09:13
Can We Cancel?
Урок 333. 00:04:44
Orders Service Events
Урок 334. 00:09:24
Creating the Events
Урок 335. 00:03:14
Implementing the Publishers
Урок 336. 00:05:04
Publishing the Order Creation
Урок 337. 00:02:34
Publishing Order Cancellation
Урок 338. 00:05:34
Testing Event Publishing
Урок 339. 00:02:13
Time for Listeners!
Урок 340. 00:01:55
Reminder on Listeners
Урок 341. 00:03:40
Blueprint for Listeners
Урок 342. 00:05:27
A Few More Reminders
Урок 343. 00:02:18
Simple onMessage Implementation
Урок 344. 00:05:45
ID Adjustment
Урок 345. 00:04:33
Ticket Updated Listener Implementation
Урок 346. 00:02:45
Initializing the Listeners
Урок 347. 00:03:17
A Quick Manual Test
Урок 348. 00:13:00
Clear Concurrency Issues
Урок 349. 00:06:42
Reminder on Versioning Records
Урок 350. 00:05:38
Optimistic Concurrency Control
Урок 351. 00:03:47
Mongoose Update-If-Current
Урок 352. 00:04:03
Implementing OCC with Mongoose
Урок 353. 00:09:08
Testing OCC
Урок 354. 00:03:46
One More Test
Урок 355. 00:06:30
Who Updates Versions?
Урок 356. 00:03:00
Including Versions in Events
Урок 357. 00:03:56
Updating Tickets Event Definitions
Урок 358. 00:07:15
Applying a Version Query
Урок 359. 00:04:32
Did it Work?
Урок 360. 00:05:43
Abstracted Query Method
Урок 361. 00:18:35
[Optional] Versioning Without Update-If-Current
Урок 362. 00:04:56
Testing Listeners
Урок 363. 00:09:26
A Complete Listener Test
Урок 364. 00:02:10
Testing the Ack Call
Урок 365. 00:08:22
Testing the Ticket Updated Listener
Урок 366. 00:04:50
Success Case Testing
Урок 367. 00:04:52
Out-Of-Order Events
Урок 368. 00:03:40
The Next Few Videos
Урок 369. 00:06:37
Fixing a Few Tests
Урок 370. 00:01:48
Listeners in the Tickets Service
Урок 371. 00:05:00
Building the Listener
Урок 372. 00:05:29
Strategies for Locking a Ticket
Урок 373. 00:03:43
Reserving a Ticket
Урок 374. 00:07:01
Setup for Testing Reservation
Урок 375. 00:04:30
Test Implementation
Урок 376. 00:06:15
Missing Update Event
Урок 377. 00:06:55
Private vs Protected Properties
Урок 378. 00:06:43
Publishing While Listening
Урок 379. 00:09:50
Mock Function Arguments
Урок 380. 00:06:52
Order Cancelled Listener
Урок 381. 00:07:29
A Lightning-Quick Test
Урок 382. 00:02:22
Don't Forget to Listen!
Урок 383. 00:06:16
Rejecting Edits of Reserved Tickets
Урок 384. 00:02:39
The Expiration Service
Урок 385. 00:07:56
Expiration Options
Урок 386. 00:06:15
Initial Setup
Урок 387. 00:07:45
A Touch of Kubernetes Setup
Урок 388. 00:02:33
File Sync Setup
Урок 389. 00:03:43
Listener Creation
Урок 390. 00:03:57
What's Bull All About?
Урок 391. 00:09:08
Creating a Queue
Урок 392. 00:05:11
Queueing a Job on Event Arrival
Урок 393. 00:03:18
Testing Job Processing
Урок 394. 00:05:24
Delaying Job Processing
Урок 395. 00:03:51
Defining the Expiration Complete Event
Урок 396. 00:06:28
Publishing an Event on Job Processing
Урок 397. 00:06:01
Handling an Expiration Event
Урок 398. 00:05:38
Emitting the Order Cancelled Event
Урок 399. 00:05:53
Testing the Expiration Complete Listener
Урок 400. 00:07:21
A Touch More Testing
Урок 401. 00:02:21
Listening for Expiration
Урок 402. 00:02:12
The Payments Service
Урок 403. 00:08:47
Initial Setup
Урок 404. 00:05:58
Replicated Fields
Урок 405. 00:07:31
Another Order Model!
Урок 406. 00:01:18
Update-If-Current
Урок 407. 00:04:08
Replicating Orders
Урок 408. 00:06:13
Testing Order Creation
Урок 409. 00:05:40
Marking an Order as Cancelled
Урок 410. 00:06:43
Cancelled Testing
Урок 411. 00:03:55
Starting the Listeners
Урок 412. 00:05:11
Payments Flow with Stripe
Урок 413. 00:08:33
Implementing the Create Charge Handler
Урок 414. 00:04:04
Validating Order Payment
Урок 415. 00:07:00
Testing Order Validation Before Payment
Урок 416. 00:05:11
Testing Same-User Validation
Урок 417. 00:03:59
Stripe Setup
Урок 418. 00:03:21
Creating a Stripe Secret
Урок 419. 00:06:10
Creating a Charge with Stripe
Урок 420. 00:06:36
Manual Testing of Payments
Урок 421. 00:06:28
Automated Payment Testing
Урок 422. 00:04:24
Mocked Stripe Client
Урок 423. 00:09:17
A More Realistic Test Setup
Урок 424. 00:06:16
Realistic Test Implementation
Урок 425. 00:07:19
Tying an Order and Charge Together
Урок 426. 00:06:14
Testing Payment Creation
Урок 427. 00:06:32
Publishing a Payment Created Event
Урок 428. 00:03:19
More on Publishing
Урок 429. 00:06:19
Marking an Order as Complete
Урок 430. 00:01:02
Don't Cancel Completed Orders!
Урок 431. 00:06:17
A Few More Pages
Урок 432. 00:06:10
Reminder on Data Fetching with Next
Урок 433. 00:05:44
Two Quick Fixes
Урок 434. 00:03:44
Scaffolding a Form
Урок 435. 00:06:30
Sanitizing Price Input
Урок 436. 00:06:45
Ticket Creation
Урок 437. 00:07:42
Listing All Tickets
Урок 438. 00:07:08
Linking to Wildcard Routes
Урок 439. 00:07:26
Creating an Order
Урок 440. 00:04:17
Programmatic Navigation to Wildcard Routes
Урок 441. 00:10:55
The Expiration Timer
Урок 442. 00:01:02
Displaying the Expiration
Урок 443. 00:03:07
Showing a Stripe Payment Form
Урок 444. 00:04:24
Configuring Stripe
Урок 445. 00:01:59
Test Credit Card Numbers
Урок 446. 00:09:25
Paying for an Order
Урок 447. 00:02:28
Filtering Reserved Tickets
Урок 448. 00:01:48
Header Links
Урок 449. 00:06:21
Rendering a List of Orders
Урок 450. 00:03:40
Development Workflow
Урок 451. 00:06:06
Git Repository Approaches
Урок 452. 00:07:12
Creating a GitHub Action
Урок 453. 00:02:43
Adding a CI Test Script
Урок 454. 00:04:49
Running Tests on PR Creation
Урок 455. 00:05:49
Output of Failing Tests
Урок 456. 00:07:29
Running Tests in Parallel
Урок 457. 00:03:02
Verifying a Test Run
Урок 458. 00:05:45
Selective Test Execution
Урок 459. 00:07:41
Deployment Options
Урок 460. 00:02:40
Creating a Hosted Cluster
Урок 461. 00:03:33
Reminder on Kubernetes Context
Урок 462. 00:03:57
Reminder on Swapping Contexts
Урок 463. 00:04:05
The Deployment Plan
Урок 464. 00:08:41
Building an Image in an Action
Урок 465. 00:02:31
Testing the Image Build
Урок 466. 00:07:19
Restarting the Deployment
Урок 467. 00:03:28
Applying Kubernetes Manifests
Урок 468. 00:04:24
Prod vs Dev Manifest Files
Урок 469. 00:03:40
Manual Secret Creation
Урок 470. 00:05:32
Don't Forget Ingress-Nginx!
Урок 471. 00:02:52
Testing Automated Deployment
Урок 472. 00:07:13
Additional Deploy Files
Урок 473. 00:06:08
A Successful Deploy!
Урок 474. 00:03:11
Buying a Domain Name
Урок 475. 00:05:28
Configuring the Domain Name
Урок 476. 00:01:59
I Really Hope This Works
Урок 477. 00:04:37
Next Steps
Урок 478. 00:03:44
Why Use Docker?
Урок 479. 00:02:54
What is Docker?
Урок 480. 00:01:58
Docker for Mac / Windows
Урок 481. 00:05:04
Using the Docker Client
Урок 482. 00:08:31
But Really... What's a Container?
Урок 483. 00:02:45
How's Docker Running on Your Computer?
Урок 484. 00:01:55
Docker Run in Detail
Урок 485. 00:05:13
Overriding Default Commands
Урок 486. 00:04:10
Listing Running Containers
Урок 487. 00:05:17
Container Lifecycle
Урок 488. 00:03:44
Restarting Stopped Containers
Урок 489. 00:01:40
Removing Stopped Containers
Урок 490. 00:02:34
Retrieving Output Logs
Урок 491. 00:05:22
Stopping Containers
Урок 492. 00:04:17
Multi-Command Containers
Урок 493. 00:02:54
Executing Commands in Running Containers
Урок 494. 00:04:36
The Purpose of the 'it' Flag
Урок 495. 00:04:07
Getting a Command Prompt in a Container
Урок 496. 00:02:14
Starting with a Shell
Урок 497. 00:03:10
Container Isolation
Урок 498. 00:02:37
Creating Docker Images
Урок 499. 00:04:52
Building a Dockerfile
Урок 500. 00:02:42
Dockerfile Teardown
Урок 501. 00:05:41
What's a Base Image?
Урок 502. 00:11:10
The Build Process in Detail
Урок 503. 00:03:25
A Brief Recap
Урок 504. 00:07:03
Rebuilds with Cache
Урок 505. 00:04:27
Tagging an Image
Урок 506. 00:05:02
Manual Image Generation with Docker Commit
Урок 507. 00:02:36
Project Outline
Урок 508. 00:05:04
Node Server Setup
Урок 509. 00:05:13
A Few Planned Errors
Урок 510. 00:07:51
Base Image Issues
Урок 511. 00:03:19
A Few Missing Files
Урок 512. 00:04:51
Copying Build Files
Урок 513. 00:07:27
Container Port Forwarding
Урок 514. 00:07:53
Specifying a Working Directory
Урок 515. 00:04:17
Unnecessary Rebuilds
Урок 516. 00:04:59
Minimizing Cache Busting and Rebuilds
Урок 517. 00:01:05
How to Get Help
Урок 518. 00:06:20
TypeScript Overview
Урок 519. 00:08:00
Environment Setup
Урок 520. 00:04:44
A First App
Урок 521. 00:05:04
Executing Typescript Code
Урок 522. 00:03:36
One Quick Change
Урок 523. 00:07:23
Catching Errors with TypeScript
Урок 524. 00:05:16
Catching More Errors!
Урок 525. 00:03:37
Do Not Skip - Course Overview
Урок 526. 00:05:13
Types
Урок 527. 00:05:54
More on Types
Урок 528. 00:05:16
Examples of Types
Урок 529. 00:00:50
Where Do We Use Types?
Урок 530. 00:02:04
Type Annotations and Inference
Урок 531. 00:04:54
Annotations With Variables
Урок 532. 00:06:54
Object Literal Annotations
Урок 533. 00:05:57
Annotations Around Functions
Урок 534. 00:03:52
Understanding Inference
Урок 535. 00:07:48
The Any Type
Урок 536. 00:01:50
Fixing the "Any" Type
Урок 537. 00:03:06
Delayed Initialization
Урок 538. 00:04:38
When Inference Doesn't Work
Урок 539. 00:04:57
More on Annotations Around Functions
Урок 540. 00:06:09
Inference Around Functions
Урок 541. 00:01:43
Annotations for Anonymous Functions
Урок 542. 00:02:50
Void and Never
Урок 543. 00:03:36
Destructuring with Annotations
Урок 544. 00:07:06
Annotations Around Objects
Урок 545. 00:05:06
Arrays in TypeScript
Урок 546. 00:04:31
Why Typed Arrays?
Урок 547. 00:02:58
Multiple Typees in Arrays
Урок 548. 00:00:55
When to Use Typed Arrays
Урок 549. 00:05:06
Tuples in TypeScript
Урок 550. 00:05:29
Tuples in Action
Урок 551. 00:03:21
Why Tuples?
Урок 552. 00:01:27
Interfaces
Урок 553. 00:04:43
Long Type Annotations
Урок 554. 00:04:37
Fixing Annotations With Interfaces
Урок 555. 00:03:21
Syntax Around Interfaces
Урок 556. 00:04:47
Functions in Interfaces
Урок 557. 00:04:16
Code Reuse with Interfaces
Урок 558. 00:03:13
General Plan with Interfaces
Урок 559. 00:03:48
Classes
Урок 560. 00:03:04
Basic Inheritance
Урок 561. 00:06:42
Class Method Modifiers
Урок 562. 00:06:19
Fields in Classes
Урок 563. 00:04:19
Fields with Inheritance
Урок 564. 00:01:11
Where to Use Classes
Урок 565. 00:02:46
App Overview
Урок 566. 00:04:55
Bundling with Parcel
Урок 567. 00:03:20
Project Structure
Урок 568. 00:05:30
Generating Random Data
Урок 569. 00:05:18
Type Definition Files
Урок 570. 00:06:21
Using Type Definition Files
Урок 571. 00:05:07
Export Statements in TypeScript
Урок 572. 00:04:44
Defining a Company
Урок 573. 00:07:39
Adding Google Maps Support
Урок 574. 00:04:07
Google Maps Integration with TypeScript
Урок 575. 00:12:47
Exploring Type Definition Files
Урок 576. 00:06:29
Hiding Functionality
Урок 577. 00:08:26
Why Use Private Modifiers? Here's Why
Урок 578. 00:09:19
Adding Markers
Урок 579. 00:02:46
Duplicate Code
Урок 580. 00:06:39
One Possible Solution
Урок 581. 00:05:36
Restricting Access with Interfaces
Урок 582. 00:03:27
Implicit Type Checks
Урок 583. 00:06:48
Showing Popup Windows
Урок 584. 00:07:12
Updating Interface Definitions
Урок 585. 00:06:07
Optional Implements Clauses
Урок 586. 00:08:09
App Wrapup
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-srv
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /posts
pathType: Prefix
backend:
service:
name: posts-clusterip-srv
port:
number: 4000
Good luck ;)
I bought it after 20 lessons in udemy for 10$)))
Please can you fix it?
Thanks
thanks
The author has just launched a new course called `Microfrontends With React`
Could you please upload it.
Thank you in advance.