-
Урок 1. 00:06:06A Basic Web Application
-
Урок 2. 00:12:04Troubleshooting and Slack
-
Урок 3. 00:04:59Packages and Imports
-
Урок 4. 00:04:53Editors and Automatic Imports
-
Урок 5. 00:04:10The "Hello, world" Part of our Code
-
Урок 6. 00:09:15Web Requests
-
Урок 7. 00:04:52HTTP Methods
-
Урок 8. 00:10:05Our Handler Function
-
Урок 9. 00:08:28Registering our Handler Function and Starting the Web Server
-
Урок 10. 00:13:45Go Modules
-
Урок 11. 00:11:37Dynamic Reloading
-
Урок 12. 00:08:24Setting Header Values
-
Урок 13. 00:08:12Creating a Contact Page
-
Урок 14. 00:05:48Examining the http.Request Type
-
Урок 15. 00:04:20Custom Routing
-
Урок 16. 00:06:54URL Path vs RawPath
-
Урок 17. 00:08:50Not Found Page
-
Урок 18. 00:10:09The http.Handler Type
-
Урок 19. 00:12:09The http.HandlerFunc Type
-
Урок 20. 00:08:19Exploring Handler Conversions
-
Урок 21. 00:06:07FAQ Exercise
-
Урок 22. 00:09:11Router Requirements
-
Урок 23. 00:06:41Using Git
-
Урок 24. 00:03:55Installing Chi
-
Урок 25. 00:08:56Using Chi
-
Урок 26. 00:02:01Chi Exercises
-
Урок 27. 00:05:55What are Templates?
-
Урок 28. 00:16:02Why Do We Use Server Side Rendering?
-
Урок 29. 00:16:23Creating Our First Template
-
Урок 30. 00:10:27Cross Site Scripting (XSS)
-
Урок 31. 00:03:39Alternative Template Libraries
-
Урок 32. 00:06:13Contextual Encoding
-
Урок 33. 00:16:53Home Page via Template
-
Урок 34. 00:10:53Contact Page via Template
-
Урок 35. 00:03:29FAQ Page via Template
-
Урок 36. 00:07:28Template Exercises
-
Урок 37. 00:16:36Code Organization
-
Урок 38. 00:09:25MVC Overview
-
Урок 39. 00:07:52Walking Through a Web Request with MVC
-
Урок 40. 00:04:58MVC Exercises
-
Урок 41. 00:10:59Creating the Views Package
-
Урок 42. 00:08:48fmt.Errorf
-
Урок 43. 00:13:08Validating Templates at Startup
-
Урок 44. 00:10:45Must Functions
-
Урок 45. 00:04:48Exercises
-
Урок 46. 00:14:09Embedding Template Files
-
Урок 47. 00:08:02Variadic Parameters
-
Урок 48. 00:06:52Named Templates
-
Урок 49. 00:12:34Dynamic FAQ Page
-
Урок 50. 00:13:20Reusable Layouts
-
Урок 51. 00:09:16Tailwind CSS
-
Урок 52. 00:16:22Utility-first CSS
-
Урок 53. 00:14:30Adding a Navigation Bar
-
Урок 54. 00:03:48Exercises
-
Урок 55. 00:13:15Creating the Signup Page
-
Урок 56. 00:14:19Styling the Signup Page
-
Урок 57. 00:16:20Intro to REST
-
Урок 58. 00:08:22Users Controller
-
Урок 59. 00:06:22Decouple with Interfaces
-
Урок 60. 00:14:00Parsing the Signup Form
-
Урок 61. 00:11:34URL Query Parameters
-
Урок 62. 00:04:02Exercises
-
Урок 63. 00:15:11Intro to Databases
-
Урок 64. 00:15:44Installing Postgres
-
Урок 65. 00:10:43Connecting to Postgres
-
Урок 66. 00:02:52Update: Docker Container Names
-
Урок 67. 00:08:44Creating SQL Tables
-
Урок 68. 00:05:52Postgres Data Types
-
Урок 69. 00:07:20Postgres Constraints
-
Урок 70. 00:03:11Creating a Users Table
-
Урок 71. 00:08:00Inserting Records
-
Урок 72. 00:03:07Querying Records
-
Урок 73. 00:03:51Filtering Queries
-
Урок 74. 00:03:50Updating Records
-
Урок 75. 00:02:38Deleting Records
-
Урок 76. 00:03:43Additional SQL Resources
-
Урок 77. 00:14:15Connecting to Postgres with Go
-
Урок 78. 00:09:05Imports with Side Effects
-
Урок 79. 00:05:47Postgres Config Type
-
Урок 80. 00:08:53Executing SQL with Go
-
Урок 81. 00:04:41Inserting Records with Go
-
Урок 82. 00:09:15SQL Injection
-
Урок 83. 00:08:26Acquire a new Record's ID
-
Урок 84. 00:06:20Querying a Single Record
-
Урок 85. 00:04:12Creating Sample Orders
-
Урок 86. 00:09:10Querying Multiple Records
-
Урок 87. 00:12:56ORMs vs SQL
-
Урок 88. 00:02:36Exercises
-
Урок 89. 00:03:28Syncing the Book and Screencasts Source Code
-
Урок 90. 00:08:41Steps for Securing Passwords
-
Урок 91. 00:05:30Third Party Authentication Options
-
Урок 92. 00:14:29What is a Hash Function?
-
Урок 93. 00:07:30Store Password Hashes, Not Encrypted or Plaintext Values
-
Урок 94. 00:10:42Salt Passwords
-
Урок 95. 00:10:15Learning bcrypt with a CLI
-
Урок 96. 00:10:36Hashing Passwords with bcrypt
-
Урок 97. 00:05:59Comparing a Password with a bcrypt Hash
-
Урок 98. 00:08:06Defining the User Model
-
Урок 99. 00:06:37Creating the UserService
-
Урок 100. 00:16:29Create User Method
-
Урок 101. 00:07:46Postgres Config for the Models Package
-
Урок 102. 00:04:22UserService in the Users Controller
-
Урок 103. 00:06:56Create Users on Signup
-
Урок 104. 00:05:30Sign In View
-
Урок 105. 00:06:39Authenticate Users
-
Урок 106. 00:04:31Process Sign In Attempts
-
Урок 107. 00:13:08Stateless Servers
-
Урок 108. 00:09:57Creating Cookies
-
Урок 109. 00:05:13Viewing Cookies with Chrome
-
Урок 110. 00:09:32Viewing Cookies with Go
-
Урок 111. 00:06:57Securing Cookies from XSS
-
Урок 112. 00:10:06Cookie Theft
-
Урок 113. 00:12:32CSRF Attacks
-
Урок 114. 00:16:54CSRF Middleware
-
Урок 115. 00:05:57Providing CSRF to Templates via Data
-
Урок 116. 00:08:19Custom Template Functions
-
Урок 117. 00:10:15Adding the HTTP Request to Execute
-
Урок 118. 00:10:23Request Specific CSRF Template Function
-
Урок 119. 00:09:05Template Function Errors
-
Урок 120. 00:11:46Securing Cookies from Tampering
-
Урок 121. 00:11:03Random Strings with crypto/rand
-
Урок 122. 00:05:52Exploring math/rand
-
Урок 123. 00:08:40Wrapping the crypto/rand Package
-
Урок 124. 00:09:14Why Do We Use 32 Bytes for Session Tokens?
-
Урок 125. 00:07:36Defining the Sessions Table
-
Урок 126. 00:10:23Stubbing the SessionService
-
Урок 127. 00:15:57Sessions in the Users Controller
-
Урок 128. 00:08:07Cookie Helper Functions
-
Урок 129. 00:07:19Create Session Tokens
-
Урок 130. 00:07:01Refactor the rand Package
-
Урок 131. 00:11:55Hash Session Tokens
-
Урок 132. 00:05:44Insert Sessions into the Database
-
Урок 133. 00:08:54Updating Existing Sessions
-
Урок 134. 00:07:26Querying Users via Session Token
-
Урок 135. 00:03:50Deleting Sessions
-
Урок 136. 00:07:58Sign Out Handler
-
Урок 137. 00:05:28Sign Out Link
-
Урок 138. 00:10:40SQL Relationships
-
Урок 139. 00:07:52Foreign Keys
-
Урок 140. 00:02:41On Delete Cascade
-
Урок 141. 00:06:06Inner Join
-
Урок 142. 00:06:52Left, Right, and Full Outer Join
-
Урок 143. 00:10:05Using Join in the SessionService
-
Урок 144. 00:10:45SQL Indexes
-
Урок 145. 00:03:58Creating PostgreSQL Indexes
-
Урок 146. 00:05:53On Conflict
-
Урок 147. 00:09:56What Are Schema Migrations?
-
Урок 148. 00:09:17How Schema Migration Tools Work
-
Урок 149. 00:09:22Installing pressly/goose
-
Урок 150. 00:04:32Converting to Schema Migrations
-
Урок 151. 00:12:19Schema Versioning Problem
-
Урок 152. 00:10:59Running Goose with Go
-
Урок 153. 00:06:57Embedding Migrations
-
Урок 154. 00:09:12Go Migration Files
-
Урок 155. 00:01:35Removing Old SQL Files
-
Урок 156. 00:09:06Using Context to Store Values
-
Урок 157. 00:08:13Improved Context Keys
-
Урок 158. 00:07:44Context Values with Types
-
Урок 159. 00:09:36Storing Users as Context Values
-
Урок 160. 00:08:32Reading Request Context Values
-
Урок 161. 00:14:33Set the User via Middleware
-
Урок 162. 00:16:17Requiring a User via Middleware
-
Урок 163. 00:07:48Accessing the Current User in Templates
-
Урок 164. 00:06:10Request-Scoped Values
-
Урок 165. 00:07:35Password Reset Overview
-
Урок 166. 00:10:48SMTP Services
-
Урок 167. 00:10:43Building Emails with SMTP
-
Урок 168. 00:06:01Sending Emails with SMTP
-
Урок 169. 00:06:49Building an Email Service
-
Урок 170. 00:11:15EmailService.Send
-
Урок 171. 00:05:05Forgot Password Email
-
Урок 172. 00:15:48ENV Variables
-
Урок 173. 00:05:07Password Reset DB Migration
-
Урок 174. 00:11:28Password Reset Service Stubs
-
Урок 175. 00:12:50Forgot Password HTTP Handler
-
Урок 176. 00:05:59Asynchronous Emails
-
Урок 177. 00:07:53Forgot Password HTML Template
-
Урок 178. 00:14:21Initializing Services with ENV Vars
-
Урок 179. 00:05:18Check Your Email HTML Template
-
Урок 180. 00:08:06Reset Password HTTP Handlers
-
Урок 181. 00:06:41Reset Password HTML Template
-
Урок 182. 00:04:24Update Password Function
-
Урок 183. 00:13:10PasswordReset Creation
-
Урок 184. 00:13:20Implementing Consume
-
Урок 185. 00:13:06Inspecting Errors
-
Урок 186. 00:09:25Inspecting Wrapped Errors
-
Урок 187. 00:06:37Designing the Alert Banner
-
Урок 188. 00:03:54Dynamic Alerts
-
Урок 189. 00:04:13Removing Alerts with JavaScript
-
Урок 190. 00:12:19Detecting Existing Emails
-
Урок 191. 00:10:25Accepting Errors in Templates
-
Урок 192. 00:09:39Public vs Internal Errors
-
Урок 193. 00:09:57Creating Public Errors
-
Урок 194. 00:07:37Using Public Errors
-
Урок 195. 00:12:01Galleries Overview
-
Урок 196. 00:06:19Gallery Model and Migration
-
Урок 197. 00:05:01Creating Gallery Records
-
Урок 198. 00:05:27Querying for Galleries by ID
-
Урок 199. 00:06:09Querying Galleries by UserID
-
Урок 200. 00:01:59Updating Gallery Records
-
Урок 201. 00:01:55Deleting Gallery Records
-
Урок 202. 00:06:27New Gallery Handler
-
Урок 203. 00:13:07views.Template Name Bug
-
Урок 204. 00:08:34New Gallery Template
-
Урок 205. 00:09:29Gallery Routing and CSRF Bug Fixes
-
Урок 206. 00:06:46Create Gallery Handler
-
Урок 207. 00:08:20Edit Gallery Handler
-
Урок 208. 00:07:54Edit Gallery Template`
-
Урок 209. 00:05:34Update Gallery Handler
-
Урок 210. 00:10:48Gallery Index Handler
-
Урок 211. 00:04:36Discovering and Fixing a Gallery Index Bug
-
Урок 212. 00:14:57Gallery Index Template Continued
-
Урок 213. 00:08:34Show Gallery Handler
-
Урок 214. 00:07:09Show Gallery Template and a Tailwind Update
-
Урок 215. 00:13:02Extracting Common Gallery Code
-
Урок 216. 00:10:39Extra Gallery Checks with Functional Options
-
Урок 217. 00:06:24Delete Gallery Handler
-
Урок 218. 00:14:56Images Overview
-
Урок 219. 00:04:34Setting Up Test Images
-
Урок 220. 00:05:04Adding the ImagesDir to the GalleryService
-
Урок 221. 00:12:45Globbing Image Files
-
Урок 222. 00:03:22Adding Filename and GalleryID to the Image Type
-
Урок 223. 00:06:22Adding Images to the Show Gallery Page
-
Урок 224. 00:08:44Show Image Handler
-
Урок 225. 00:06:39Querying for a Single Image
-
Урок 226. 00:06:40URL Path Escaping Image Filenames
-
Урок 227. 00:05:43Adding Images to the Edit Gallery Page
-
Урок 228. 00:06:09Delete Image Form
-
Урок 229. 00:03:16Delete Image Service Func
-
Урок 230. 00:06:54Delete Image Handler
-
Урок 231. 00:09:17Checking for Filename Vulnerabilities
-
Урок 232. 00:11:06Upload Image Form
-
Урок 233. 00:12:49Image Upload Handler
-
Урок 234. 00:12:47Creating Images in the GalleryService
-
Урок 235. 00:13:13Detecting Content Type
-
Урок 236. 00:10:12Rendering Content Type Errors
-
Урок 237. 00:05:05Deleting Images on Gallery Deletion
-
Урок 238. 00:01:43Redirect to Galleries After Auth
-
Урок 239. 00:14:19Loading All Config via ENV
-
Урок 240. 00:14:02Docker Compose Overrides
-
Урок 241. 00:12:39Building Tailwind Locally
-
Урок 242. 00:13:16Tailwind Via Docker
-
Урок 243. 00:08:16Serving Static Assets
-
Урок 244. 00:04:16Making main Easier to Test
-
Урок 245. 00:12:10Running our Go Server via Docker
-
Урок 246. 00:07:32Multi-Stage Docker Builds
-
Урок 247. 00:04:35Tailwind Production Build
-
Урок 248. 00:08:00Caddy Server via Docker
-
Урок 249. 00:09:24Creating a Digital Ocean Droplet
-
Урок 250. 00:06:35Setting up DNS
-
Урок 251. 00:04:19Installing Git on the Server
-
Урок 252. 00:06:37Setting Up a Bare Git Repo
-
Урок 253. 00:05:33Setting Up a Local Git Repo
-
Урок 254. 00:03:21Checking Out Our Code on the Server
-
Урок 255. 00:02:59Email Sending Server Setup
-
Урок 256. 00:04:54Production .env File
-
Урок 257. 00:04:36Install Docker in Prod
-
Урок 258. 00:02:23Production Caddyfile
-
Урок 259. 00:05:17Production Data Directories
-
Урок 260. 00:07:57Running Our App in Prod
-
Урок 261. 00:06:56Post-receive Deploy Updates
-
Урок 262. 00:07:39Deploy via Git
-
Урок 263. 00:10:51Logging Services
-
Урок 264. 00:13:39Intro to OAuth
-
Урок 265. 00:14:41OAuth Example Code
-
Урок 266. 00:10:30Dropbox App Setup
-
Урок 267. 00:21:28Offline OAuth Demo
-
Урок 268. 00:07:07OAuth Tokens
-
Урок 269. 00:06:50Online vs Offline Access Types
-
Урок 270. 00:06:50Redirect URIs
-
Урок 271. 00:09:02OAuth Connect HTTP Handler
-
Урок 272. 00:04:04Determine Redirect URI Host
-
Урок 273. 00:07:47OAuth Routes and Config Setup
-
Урок 274. 00:10:20OAuth Callback Handler
-
Урок 275. 00:06:56Testing OAuth with API Calls
-
Урок 276. 00:07:26Dropbox Chooser Overview
-
Урок 277. 00:10:09Embedding the Dropbox Chooser
-
Урок 278. 00:07:21Images via Dropbox Form
-
Урок 279. 00:06:30Chooser Success Function
-
Урок 280. 00:08:11Images Via URL Handler
-
Урок 281. 00:11:36Downloading Images
-
Урок 282. 00:07:50Creating Images Without Seek
-
Урок 283. 00:12:31Concurrent Downloads
-
Урок 284. 00:06:04Using errgroup
-
Урок 285. 00:08:57Page Specific JS
- Категории
- Источники
- Все курсы
- Разделы
- Книги
Много работы с шаблонами, CSS (Taiwind), использование Chi для маршрутизации, круды для моделей, обзорно рассказано про БД (используется Postgres), разжевывание механизмов защиты от разных веб уязвимостей, использование докера, деплои, работа с картинками, в целом понятная теория.
Чего тут нет:
- тестов - что проверять изменение будем руками, автор это явно проговаривает
- рассказа о Standard Go Project Layout - рассказано про несколько других подходов, но про эту структуру папок знать стоит
- использования интерфейсов Go - это также выбор автора курса
- конкурентности
- кишок языка (аллокаций, жонглирования структурами, ньюансов конкуретности и прочего) - за этим лучше идти на go101
Great job :)
thanks
Большое спасибо.