1. Урок 1.00:01:08
    1.1. How to Get Help
  2. Урок 2.00:03:48
    1.4. Starting With Node Internals
  3. Урок 3.00:08:24
    1.5. Module Implementations
  4. Урок 4.00:06:34
    1.6. Node Backed by C++!
  5. Урок 5.00:06:30
    1.8. The Basics of Threads
  6. Урок 6.00:06:35
    1.9. The Node Event Loop
  7. Урок 7.00:07:23
    1.10. The Event Loop Implementation
  8. Урок 8.00:06:47
    1.11. Event Loop Ticks
  9. Урок 9.00:05:07
    1.12. Is Node Single Threaded
  10. Урок 10.00:06:50
    1.13. Testing for Single Threads
  11. Урок 11.00:03:08
    1.14. The Libuv Thread Pool
  12. Урок 12.00:06:07
    1.15. Threadpools with Multithreading
  13. Урок 13.00:05:26
    1.16. Changing Threadpool Size
  14. Урок 14.00:03:17
    1.17. Common Threadpool Questions
  15. Урок 15.00:03:53
    1.18. Explaining OS Operations
  16. Урок 16.00:03:20
    1.19. Libuv OS Delegation
  17. Урок 17.00:02:41
    1.20. OSAsync Common Questions
  18. Урок 18.00:02:49
    1.21. Review
  19. Урок 19.00:07:40
    1.23. Crazy Node Behavior
  20. Урок 20.00:11:24
    1.24. Unexpected Event Loop Events
  21. Урок 21.00:02:18
    2.1. Enhancing Performance
  22. Урок 22.00:03:23
    2.2. Express Setup
  23. Урок 23.00:07:08
    2.3. Blocking the Event Loop
  24. Урок 24.00:05:12
    2.4. Clustering in Theory
  25. Урок 25.00:05:38
    2.5. Forking Children
  26. Урок 26.00:05:34
    2.6. Clustering in Action
  27. Урок 27.00:05:17
    2.7. Benchmarking Server Performance
  28. Урок 28.00:03:56
    2.8. Benchmark Refactor
  29. Урок 29.00:16:43
    2.9. Need More Children!
  30. Урок 30.00:02:54
    2.10. PM2 Installation
  31. Урок 31.00:06:50
    2.11. PM2 Configuration
  32. Урок 32.00:02:28
    2.13. Webworker Threads
  33. Урок 33.00:11:35
    2.14. Worker Threads in Action
  34. Урок 34.00:05:18
    2.15. Benchmarking Workers
  35. Урок 35.00:02:13
    3.1. The Next Phase
  36. Урок 36.00:05:52
    3.3. Project Walkthrough
  37. Урок 37.00:03:08
    3.4. Key Customization
  38. Урок 38.00:06:24
    3.6. MongoDB Creation
  39. Урок 39.00:04:19
    3.7. Routes Walkthrough
  40. Урок 40.00:10:43
    4.1. MongoDB Query Performance
  41. Урок 41.00:07:56
    4.2. Query Caching Layer
  42. Урок 42.00:03:23
    4.3. Redis Introduction
  43. Урок 43.00:03:20
    4.4. Installing Redis on MacOS
  44. Урок 44.00:06:48
    4.6. Getting and Setting Basic Values
  45. Урок 45.00:06:58
    4.7. Redis Hashes
  46. Урок 46.00:02:54
    4.8. One Redis Gotcha
  47. Урок 47.00:07:48
    4.9. Cache Keys
  48. Урок 48.00:08:08
    4.10. Promisifying a Function
  49. Урок 49.00:08:00
    4.11. Caching in Action
  50. Урок 50.00:05:27
    4.12. Caching Issues
  51. Урок 51.00:21:00
    4.13. The Ultimate Caching Solution
  52. Урок 52.00:10:43
    4.14. Patching Mongoose's Exec
  53. Урок 53.00:02:06
    4.15. Restoring Blog Routes Handler
  54. Урок 54.00:06:01
    4.16. Unique Keys
  55. Урок 55.00:03:10
    4.17. Key Creation
  56. Урок 56.00:01:28
    4.18. Restoring Redis Config
  57. Урок 57.00:04:28
    4.19. Cache Implementation
  58. Урок 58.00:05:47
    4.20. Resolving Values
  59. Урок 59.00:06:26
    4.21. Hydrating Models
  60. Урок 60.00:03:28
    4.22. Hydrating Arrays
  61. Урок 61.00:08:42
    4.23. Toggleable Cache
  62. Урок 62.00:02:31
    4.24. Cache Expiration
  63. Урок 63.00:05:16
    4.25. Forced Cache Expiration
  64. Урок 64.00:06:47
    4.26. Nested Hashes
  65. Урок 65.00:04:37
    4.27. Clearing Nested hashes
  66. Урок 66.00:06:40
    4.28. Automated Cache Clearing with Middlware
  67. Урок 67.00:06:39
    5.1. Testing Flow
  68. Урок 68.00:03:26
    5.2. Testing Challenges
  69. Урок 69.00:03:14
    5.3. Commands Around Testing
  70. Урок 70.00:04:27
    5.4. First Jest Test
  71. Урок 71.00:09:51
    5.5. Launching Chromium Instances
  72. Урок 72.00:04:32
    5.6. Chromium Navigation
  73. Урок 73.00:05:04
    5.7. Extracting Page Content
  74. Урок 74.00:04:45
    5.8. Puppeteer - Behind the Scenes
  75. Урок 75.00:03:24
    5.9. DRY Tests
  76. Урок 76.00:01:35
    5.10. Browser Termination
  77. Урок 77.00:07:30
    5.11. Asserting OAuth Flow
  78. Урок 78.00:03:01
    5.12. Asserting URL Domain
  79. Урок 79.00:05:12
    5.13. Issues with OAuth
  80. Урок 80.00:04:37
    5.14. Solving Authentication Issues with Automation Testing
  81. Урок 81.00:07:17
    5.15. The Google OAuth Flow
  82. Урок 82.00:12:07
    5.16. Inner Workings of Sessions
  83. Урок 83.00:08:23
    5.17. Sessions From Another Angle
  84. Урок 84.00:11:34
    5.18. Session Signatures
  85. Урок 85.00:09:04
    5.19. Generating Sessions and Signatures
  86. Урок 86.00:08:08
    5.20. Assembling the Pieces
  87. Урок 87.00:09:18
    5.21. WaitFor Statements
  88. Урок 88.00:05:00
    5.22. Factory Functions
  89. Урок 89.00:08:49
    5.23. The Session Factory
  90. Урок 90.00:03:04
    5.24. Assembling the Session Factory
  91. Урок 91.00:06:23
    5.25. Code Separation
  92. Урок 92.00:07:01
    5.27. Global Jest Setup
  93. Урок 93.00:03:42
    5.28. Testing Factory Tests!
  94. Урок 94.00:05:02
    5.29. Adding a Login Method
  95. Урок 95.00:07:59
    5.30. Extending Page
  96. Урок 96.00:07:47
    5.31. Introduction to Proxies
  97. Урок 97.00:12:11
    5.32. Proxies in Action
  98. Урок 98.00:08:18
    5.33. Combining Object Property Access
  99. Урок 99.00:08:38
    5.34. Combining the Page and Browser
  100. Урок 100.00:04:17
    5.35. Custom Page Implementation
  101. Урок 101.00:04:27
    5.36. Function Lookup Priority
  102. Урок 102.00:05:33
    5.37. Gee, I Hope This Works!
  103. Урок 103.00:05:39
    5.38. Reusable Functions on Page
  104. Урок 104.00:04:54
    5.39. Testing Blog Creation
  105. Урок 105.00:05:31
    5.40. Default Navigation
  106. Урок 106.00:06:00
    5.41. Asserting Form Display
  107. Урок 107.00:05:24
    5.42. Test Timeout
  108. Урок 108.00:05:08
    5.43. Common Test Setup
  109. Урок 109.00:07:01
    5.44. Nested Describes for Structure
  110. Урок 110.00:07:40
    5.45. Asserting Validation Errors
  111. Урок 111.00:06:26
    5.46. Asserting Form Confirmation
  112. Урок 112.00:05:58
    5.47. Asserting Blog Creation
  113. Урок 113.00:03:33
    5.48. Options for Testing Prohibited Actions
  114. Урок 114.00:11:45
    5.49. Direct API Requests
  115. Урок 115.00:03:55
    5.50. Executed Arbitrary JS in Chromium
  116. Урок 116.00:07:25
    5.51. Asserting Page Response
  117. Урок 117.00:02:45
    5.52. Get Restrictions
  118. Урок 118.00:02:57
    5.53. A Final 'GET' Test
  119. Урок 119.00:31:46
    5.54. Super Advanced Test Helpers
  120. Урок 120.00:07:25
    6.1. Introduction to CI
  121. Урок 121.00:06:22
    6.2. CI Providers
  122. Урок 122.00:04:23
    6.3. The Basics of YAML Files
  123. Урок 123.00:10:05
    6.5. Travis YAML Setup
  124. Урок 124.00:05:09
    6.6. More Travis YAML
  125. Урок 125.00:06:38
    6.7. Client Builds
  126. Урок 126.00:06:19
    6.8. Script Config
  127. Урок 127.00:05:45
    6.9. Using Travis Documentation
  128. Урок 128.00:13:27
    6.10. More Server Configuration
  129. Урок 129.00:03:12
    6.12. A Touch More Configuration
  130. Урок 130.00:04:19
    6.13. Git Repo Setup
  131. Урок 131.00:02:16
    6.14. Travis CI Setup
  132. Урок 132.00:02:49
    6.15. Triggering CI Builds
  133. Урок 133.00:01:19
    6.16. Build Success
  134. Урок 134.00:02:16
    7.1. Image Upload
  135. Урок 135.00:04:41
    7.2. Big Issues Around Image Upload
  136. Урок 136.00:03:34
    7.3. Alternate Image Upload
  137. Урок 137.00:04:18
    7.4. Chosen Storage Solution
  138. Урок 138.00:04:27
    7.5. Upload Constraints
  139. Урок 139.00:06:05
    7.6. Image File Transport
  140. Урок 140.00:05:23
    7.7. Upload Flow with AWS S3
  141. Урок 141.00:06:48
    7.8. Details of the Presigned URL
  142. Урок 142.00:04:16
    7.9. Security Issues Solved with Presigned URL's
  143. Урок 143.00:03:31
    7.10. Adding an Image Picker
  144. Урок 144.00:04:40
    7.11. Handling File Changes
  145. Урок 145.00:04:39
    7.12. Recording Image Files
  146. Урок 146.00:03:08
    7.13. The SubmitBlog Function
  147. Урок 147.00:05:09
    7.14. AWS Credentials with IAM
  148. Урок 148.00:03:17
    7.15. Creating S3 Buckets
  149. Урок 149.00:08:18
    7.16. Allowing Actions with IAM Policies
  150. Урок 150.00:04:42
    7.17. Creating IAM Users
  151. Урок 151.00:05:15
    7.18. Upload Routes Files
  152. Урок 152.00:03:19
    7.20. Configuring the AWS SDK
  153. Урок 153.00:10:07
    7.21. GetSignedURL Arguments
  154. Урок 154.00:09:36
    7.22. Calling GetSignedURL
  155. Урок 155.00:02:18
    7.23. Viewing the Signed URL
  156. Урок 156.00:08:00
    7.24. Attempting Image Upload
  157. Урок 157.00:05:21
    7.26. Handling CORS Errors
  158. Урок 158.00:01:40
    7.27. Outstanding Issues
  159. Урок 159.00:05:02
    7.28. S3 Bucket Policies
  160. Урок 160.00:04:19
    7.29. Tying Uploads to Blogs
  161. Урок 161.00:02:02
    7.30. Ensuring Images get Tied
  162. Урок 162.00:04:07
    7.31. Displaying Images