Этот материал находится в платной подписке. Оформи премиум подписку и смотри Web Development with Go, а также все другие курсы, прямо сейчас!
Премиум
  • Урок 1. 00:06:06
    A Basic Web Application
  • Урок 2. 00:12:04
    Troubleshooting and Slack
  • Урок 3. 00:04:59
    Packages and Imports
  • Урок 4. 00:04:53
    Editors and Automatic Imports
  • Урок 5. 00:04:10
    The "Hello, world" Part of our Code
  • Урок 6. 00:09:15
    Web Requests
  • Урок 7. 00:04:52
    HTTP Methods
  • Урок 8. 00:10:05
    Our Handler Function
  • Урок 9. 00:08:28
    Registering our Handler Function and Starting the Web Server
  • Урок 10. 00:13:45
    Go Modules
  • Урок 11. 00:11:37
    Dynamic Reloading
  • Урок 12. 00:08:24
    Setting Header Values
  • Урок 13. 00:08:12
    Creating a Contact Page
  • Урок 14. 00:05:48
    Examining the http.Request Type
  • Урок 15. 00:04:20
    Custom Routing
  • Урок 16. 00:06:54
    URL Path vs RawPath
  • Урок 17. 00:08:50
    Not Found Page
  • Урок 18. 00:10:09
    The http.Handler Type
  • Урок 19. 00:12:09
    The http.HandlerFunc Type
  • Урок 20. 00:08:19
    Exploring Handler Conversions
  • Урок 21. 00:06:07
    FAQ Exercise
  • Урок 22. 00:09:11
    Router Requirements
  • Урок 23. 00:06:41
    Using Git
  • Урок 24. 00:03:55
    Installing Chi
  • Урок 25. 00:08:56
    Using Chi
  • Урок 26. 00:02:01
    Chi Exercises
  • Урок 27. 00:05:55
    What are Templates?
  • Урок 28. 00:16:02
    Why Do We Use Server Side Rendering?
  • Урок 29. 00:16:23
    Creating Our First Template
  • Урок 30. 00:10:27
    Cross Site Scripting (XSS)
  • Урок 31. 00:03:39
    Alternative Template Libraries
  • Урок 32. 00:06:13
    Contextual Encoding
  • Урок 33. 00:16:53
    Home Page via Template
  • Урок 34. 00:10:53
    Contact Page via Template
  • Урок 35. 00:03:29
    FAQ Page via Template
  • Урок 36. 00:07:28
    Template Exercises
  • Урок 37. 00:16:36
    Code Organization
  • Урок 38. 00:09:25
    MVC Overview
  • Урок 39. 00:07:52
    Walking Through a Web Request with MVC
  • Урок 40. 00:04:58
    MVC Exercises
  • Урок 41. 00:10:59
    Creating the Views Package
  • Урок 42. 00:08:48
    fmt.Errorf
  • Урок 43. 00:13:08
    Validating Templates at Startup
  • Урок 44. 00:10:45
    Must Functions
  • Урок 45. 00:04:48
    Exercises
  • Урок 46. 00:14:09
    Embedding Template Files
  • Урок 47. 00:08:02
    Variadic Parameters
  • Урок 48. 00:06:52
    Named Templates
  • Урок 49. 00:12:34
    Dynamic FAQ Page
  • Урок 50. 00:13:20
    Reusable Layouts
  • Урок 51. 00:09:16
    Tailwind CSS
  • Урок 52. 00:16:22
    Utility-first CSS
  • Урок 53. 00:14:30
    Adding a Navigation Bar
  • Урок 54. 00:03:48
    Exercises
  • Урок 55. 00:13:15
    Creating the Signup Page
  • Урок 56. 00:14:19
    Styling the Signup Page
  • Урок 57. 00:16:20
    Intro to REST
  • Урок 58. 00:08:22
    Users Controller
  • Урок 59. 00:06:22
    Decouple with Interfaces
  • Урок 60. 00:14:00
    Parsing the Signup Form
  • Урок 61. 00:11:34
    URL Query Parameters
  • Урок 62. 00:04:02
    Exercises
  • Урок 63. 00:15:11
    Intro to Databases
  • Урок 64. 00:15:44
    Installing Postgres
  • Урок 65. 00:10:43
    Connecting to Postgres
  • Урок 66. 00:02:52
    Update: Docker Container Names
  • Урок 67. 00:08:44
    Creating SQL Tables
  • Урок 68. 00:05:52
    Postgres Data Types
  • Урок 69. 00:07:20
    Postgres Constraints
  • Урок 70. 00:03:11
    Creating a Users Table
  • Урок 71. 00:08:00
    Inserting Records
  • Урок 72. 00:03:07
    Querying Records
  • Урок 73. 00:03:51
    Filtering Queries
  • Урок 74. 00:03:50
    Updating Records
  • Урок 75. 00:02:38
    Deleting Records
  • Урок 76. 00:03:43
    Additional SQL Resources
  • Урок 77. 00:14:15
    Connecting to Postgres with Go
  • Урок 78. 00:09:05
    Imports with Side Effects
  • Урок 79. 00:05:47
    Postgres Config Type
  • Урок 80. 00:08:53
    Executing SQL with Go
  • Урок 81. 00:04:41
    Inserting Records with Go
  • Урок 82. 00:09:15
    SQL Injection
  • Урок 83. 00:08:26
    Acquire a new Record's ID
  • Урок 84. 00:06:20
    Querying a Single Record
  • Урок 85. 00:04:12
    Creating Sample Orders
  • Урок 86. 00:09:10
    Querying Multiple Records
  • Урок 87. 00:12:56
    ORMs vs SQL
  • Урок 88. 00:02:36
    Exercises
  • Урок 89. 00:03:28
    Syncing the Book and Screencasts Source Code
  • Урок 90. 00:08:41
    Steps for Securing Passwords
  • Урок 91. 00:05:30
    Third Party Authentication Options
  • Урок 92. 00:14:29
    What is a Hash Function?
  • Урок 93. 00:07:30
    Store Password Hashes, Not Encrypted or Plaintext Values
  • Урок 94. 00:10:42
    Salt Passwords
  • Урок 95. 00:10:15
    Learning bcrypt with a CLI
  • Урок 96. 00:10:36
    Hashing Passwords with bcrypt
  • Урок 97. 00:05:59
    Comparing a Password with a bcrypt Hash
  • Урок 98. 00:08:06
    Defining the User Model
  • Урок 99. 00:06:37
    Creating the UserService
  • Урок 100. 00:16:29
    Create User Method
  • Урок 101. 00:07:46
    Postgres Config for the Models Package
  • Урок 102. 00:04:22
    UserService in the Users Controller
  • Урок 103. 00:06:56
    Create Users on Signup
  • Урок 104. 00:05:30
    Sign In View
  • Урок 105. 00:06:39
    Authenticate Users
  • Урок 106. 00:04:31
    Process Sign In Attempts
  • Урок 107. 00:13:08
    Stateless Servers
  • Урок 108. 00:09:57
    Creating Cookies
  • Урок 109. 00:05:13
    Viewing Cookies with Chrome
  • Урок 110. 00:09:32
    Viewing Cookies with Go
  • Урок 111. 00:06:57
    Securing Cookies from XSS
  • Урок 112. 00:10:06
    Cookie Theft
  • Урок 113. 00:12:32
    CSRF Attacks
  • Урок 114. 00:16:54
    CSRF Middleware
  • Урок 115. 00:05:57
    Providing CSRF to Templates via Data
  • Урок 116. 00:08:19
    Custom Template Functions
  • Урок 117. 00:10:15
    Adding the HTTP Request to Execute
  • Урок 118. 00:10:23
    Request Specific CSRF Template Function
  • Урок 119. 00:09:05
    Template Function Errors
  • Урок 120. 00:11:46
    Securing Cookies from Tampering
  • Урок 121. 00:11:03
    Random Strings with crypto/rand
  • Урок 122. 00:05:52
    Exploring math/rand
  • Урок 123. 00:08:40
    Wrapping the crypto/rand Package
  • Урок 124. 00:09:14
    Why Do We Use 32 Bytes for Session Tokens?
  • Урок 125. 00:07:36
    Defining the Sessions Table
  • Урок 126. 00:10:23
    Stubbing the SessionService
  • Урок 127. 00:15:57
    Sessions in the Users Controller
  • Урок 128. 00:08:07
    Cookie Helper Functions
  • Урок 129. 00:07:19
    Create Session Tokens
  • Урок 130. 00:07:01
    Refactor the rand Package
  • Урок 131. 00:11:55
    Hash Session Tokens
  • Урок 132. 00:05:44
    Insert Sessions into the Database
  • Урок 133. 00:08:54
    Updating Existing Sessions
  • Урок 134. 00:07:26
    Querying Users via Session Token
  • Урок 135. 00:03:50
    Deleting Sessions
  • Урок 136. 00:07:58
    Sign Out Handler
  • Урок 137. 00:05:28
    Sign Out Link
  • Урок 138. 00:10:40
    SQL Relationships
  • Урок 139. 00:07:52
    Foreign Keys
  • Урок 140. 00:02:41
    On Delete Cascade
  • Урок 141. 00:06:06
    Inner Join
  • Урок 142. 00:06:52
    Left, Right, and Full Outer Join
  • Урок 143. 00:10:05
    Using Join in the SessionService
  • Урок 144. 00:10:45
    SQL Indexes
  • Урок 145. 00:03:58
    Creating PostgreSQL Indexes
  • Урок 146. 00:05:53
    On Conflict
  • Урок 147. 00:09:56
    What Are Schema Migrations?
  • Урок 148. 00:09:17
    How Schema Migration Tools Work
  • Урок 149. 00:09:22
    Installing pressly/goose
  • Урок 150. 00:04:32
    Converting to Schema Migrations
  • Урок 151. 00:12:19
    Schema Versioning Problem
  • Урок 152. 00:10:59
    Running Goose with Go
  • Урок 153. 00:06:57
    Embedding Migrations
  • Урок 154. 00:09:12
    Go Migration Files
  • Урок 155. 00:01:35
    Removing Old SQL Files
  • Урок 156. 00:09:06
    Using Context to Store Values
  • Урок 157. 00:08:13
    Improved Context Keys
  • Урок 158. 00:07:44
    Context Values with Types
  • Урок 159. 00:09:36
    Storing Users as Context Values
  • Урок 160. 00:08:32
    Reading Request Context Values
  • Урок 161. 00:14:33
    Set the User via Middleware
  • Урок 162. 00:16:17
    Requiring a User via Middleware
  • Урок 163. 00:07:48
    Accessing the Current User in Templates
  • Урок 164. 00:06:10
    Request-Scoped Values
  • Урок 165. 00:07:35
    Password Reset Overview
  • Урок 166. 00:10:48
    SMTP Services
  • Урок 167. 00:10:43
    Building Emails with SMTP
  • Урок 168. 00:06:01
    Sending Emails with SMTP
  • Урок 169. 00:06:49
    Building an Email Service
  • Урок 170. 00:11:15
    EmailService.Send
  • Урок 171. 00:05:05
    Forgot Password Email
  • Урок 172. 00:15:48
    ENV Variables
  • Урок 173. 00:05:07
    Password Reset DB Migration
  • Урок 174. 00:11:28
    Password Reset Service Stubs
  • Урок 175. 00:12:50
    Forgot Password HTTP Handler
  • Урок 176. 00:05:59
    Asynchronous Emails
  • Урок 177. 00:07:53
    Forgot Password HTML Template
  • Урок 178. 00:14:21
    Initializing Services with ENV Vars
  • Урок 179. 00:05:18
    Check Your Email HTML Template
  • Урок 180. 00:08:06
    Reset Password HTTP Handlers
  • Урок 181. 00:06:41
    Reset Password HTML Template
  • Урок 182. 00:04:24
    Update Password Function
  • Урок 183. 00:13:10
    PasswordReset Creation
  • Урок 184. 00:13:20
    Implementing Consume