Этот материал находится в платной подписке. Оформи премиум подписку и смотри или слушай Building Modern Web Applications with Go (Golang), а также все другие курсы, прямо сейчас!
Премиум
  1. Урок 1. 00:05:21
    Introduction: who I am, and what we're going to do
  2. Урок 2. 00:04:21
    Why Go? Why not PHP, or Python, or Node.js, or whatever?
  3. Урок 3. 00:03:09
    Why Go? - System Resources
  4. Урок 4. 00:14:23
    Installing Go, an IDE, and writing a simple program
  5. Урок 5. 00:01:43
    Getting help: How to ask questions
  6. Урок 6. 00:01:35
    A note about the terminal on Windows: Git Bash
  7. Урок 7. 00:19:23
    Variables & Functions
  8. Урок 8. 00:06:54
    Pointers
  9. Урок 9. 00:15:12
    Types and Structs
  10. Урок 10. 00:04:14
    Receivers: Structs with functions
  11. Урок 11. 00:17:08
    Other data structures: Maps and Slices
  12. Урок 12. 00:13:18
    Decision Structures
  13. Урок 13. 00:09:23
    Loops and ranging over data
  14. Урок 14. 00:08:34
    Interfaces
  15. Урок 15. 00:05:04
    Packages
  16. Урок 16. 00:11:40
    Channels
  17. Урок 17. 00:10:31
    Reading and Writing JSON
  18. Урок 18. 00:15:17
    Writing Tests
  19. Урок 19. 00:04:55
    How web applications work: the request/response lifecycle
  20. Урок 20. 00:13:09
    Making a "Hello, World" web application
  21. Урок 21. 00:13:11
    Functions and handlers
  22. Урок 22. 00:06:11
    Error checking
  23. Урок 23. 00:09:14
    Serving HTML Templates
  24. Урок 24. 00:07:32
    Reorganizing our code, and adding some basic styling to pages
  25. Урок 25. 00:09:38
    Enabling Go Modules and refactoring our code to use packages
  26. Урок 26. 00:24:29
    Working with Layouts, and building a template cache (part one)
  27. Урок 27. 00:08:23
    Building a template cache (part two)
  28. Урок 28. 00:06:42
    Setting application wide configuration
  29. Урок 29. 00:01:30
    Why the application wide config is so useful
  30. Урок 30. 00:15:25
    Optimizing our template cache by using an application config
  31. Урок 31. 00:15:00
    Sharing data with templates
  32. Урок 32. 00:06:50
    Using pat for routing
  33. Урок 33. 00:07:00
    Using chi for routing
  34. Урок 34. 00:09:40
    Developing our own middleware
  35. Урок 35. 00:14:53
    Installing and setting up a sessions package
  36. Урок 36. 00:06:45
    Experimenting with sessions
  37. Урок 37. 00:04:10
    What are we going to build?
  38. Урок 38. 00:19:57
    Setting up our project
  39. Урок 39. 00:08:02
    Enabling static files
  40. Урок 40. 00:14:08
    Creating pages as HTML
  41. Урок 41. 00:45:17
    Creating a landing page
  42. Урок 42. 00:17:19
    Creating a page for each room
  43. Урок 43. 00:11:52
    Adding a form to search for availability
  44. Урок 44. 00:06:37
    Improving our form
  45. Урок 45. 00:04:35
    Creating the reservation page
  46. Урок 46. 00:21:15
    What is Javascript, and why should I care?
  47. Урок 47. 00:12:28
    Making a better date picker
  48. Урок 48. 00:08:30
    Custom alerts using Notie
  49. Урок 49. 00:08:37
    Creating modals with SweetAlert
  50. Урок 50. 00:06:07
    Implementing a Javascript module
  51. Урок 51. 00:08:50
    Adding custom alerts in our Javascript module
  52. Урок 52. 00:16:34
    Using our Javascript module on the "Book Now" button
  53. Урок 53. 00:14:27
    What is CSS, and how does it work?
  54. Урок 54. 00:23:15
    Converting our pages to Go templates
  55. Урок 55. 00:15:36
    Creating handlers for our forms & adding CSRF Protection
  56. Урок 56. 00:12:09
    Creating a handler that return JSON
  57. Урок 57. 00:11:08
    Sending and processing an AJAX request
  58. Урок 58. 00:09:15
    Sending AJAX post and generalizing our custom function
  59. Урок 59. 00:03:56
    Refactoring to use internal packages
  60. Урок 60. 00:17:28
    Server-side form validation
  61. Урок 61. 00:16:35
    Server side form validation II
  62. Урок 62. 00:19:27
    Server side form validation III
  63. Урок 63. 00:05:19
    Server Side form validation IV
  64. Урок 64. 00:16:11
    Displaying a response to user after posting form data
  65. Урок 65. 00:09:31
    Finishing up our response to user, and adding alerts
  66. Урок 66. 00:08:48
    An aside: Alternate Templating Engines
  67. Урок 67. 00:16:51
    Writing tests for our main package
  68. Урок 68. 00:22:37
    Writing tests for our GET handlers
  69. Урок 69. 00:08:11
    Writing tests for our POST handlers
  70. Урок 70. 00:12:08
    Writing tests for our Render package I
  71. Урок 71. 00:13:45
    Writing tests for our Render package II
  72. Урок 72. 00:05:47
    Getting test coverage
  73. Урок 73. 00:04:55
    Exercise: Writing tests for the Forms package
  74. Урок 74. 00:22:35
    Solution to writing tests for the Forms package
  75. Урок 75. 00:02:47
    Making running our application easier
  76. Урок 76. 00:13:09
    Centralizing our error handling to a helpers package
  77. Урок 77. 00:05:25
    Using our ClientError and ServerError helper functions
  78. Урок 78. 00:02:11
    Updating our tests
  79. Урок 79. 00:03:58
    Installing PostgreSQL
  80. Урок 80. 00:03:48
    Connecting to the database with DBeaver on a Mac
  81. Урок 81. 00:06:06
    Connecting to the database with DBeaver on Windows
  82. Урок 82. 00:12:31
    Basic SQL syntax
  83. Урок 83. 00:14:45
    More complex queries
  84. Урок 84. 00:17:44
    Identifying database structure, and Entity Relationship Diagarams
  85. Урок 85. 00:01:43
    Install Soda
  86. Урок 86. 00:11:57
    Creating the users table using migrations
  87. Урок 87. 00:07:17
    Creating the rest of our database using migrations
  88. Урок 88. 00:04:10
    Setting up a foreign key
  89. Урок 89. 00:05:21
    Setting up the rest of our foreign keys
  90. Урок 90. 00:06:02
    Adding Indices & Exercise
  91. Урок 91. 00:06:38
    Solution to Exercise
  92. Урок 92. 00:33:17
    How to connect a Go application to a database
  93. Урок 93. 00:11:25
    Creating a Driver package
  94. Урок 94. 00:14:11
    Connecting to the database and adding the SQL connection to our Repository
  95. Урок 95. 00:06:33
    Setting up models
  96. Урок 96. 00:05:54
    Cleaning up our code
  97. Урок 97. 00:02:45
    A word about ORMs
  98. Урок 98. 00:17:08
    Setting up database functions: inserting a reservation
  99. Урок 99. 00:05:26
    Testing our insert reservation function
  100. Урок 100. 00:10:57
    Inserting Room Restrictions
  101. Урок 101. 00:15:56
    Searching for availability by room
  102. Урок 102. 00:15:44
    Searching for availablity for all rooms
  103. Урок 103. 00:18:21
    Connecting our handlers to our new database functions
  104. Урок 104. 00:11:03
    Connecting search availablity to the make reservation page
  105. Урок 105. 00:16:40
    Cleaning up our make reservation page and testing everything
  106. Урок 106. 00:14:21
    Cleaning up the reservation summary page and improving validation
  107. Урок 107. 00:08:26
    Searching for availability by Room
  108. Урок 108. 00:11:31
    Providing feedback when searching by room, and connecting to the reservation pag
  109. Урок 109. 00:09:36
    Connecting the rooms page to the make reservation page
  110. Урок 110. 00:04:44
    Connecting the Major's Suite page, and extracting our javascript module
  111. Урок 111. 00:01:26
    Adding a migration for seeding rooms
  112. Урок 112. 00:01:28
    Adding a migration for seeding restrictions
  113. Урок 113. 00:10:05
    Creating a test database repository
  114. Урок 114. 00:15:02
    Updating our existing tests to handle sessions
  115. Урок 115. 00:12:10
    Improving our tests by handling multiple cases
  116. Урок 116. 00:28:21
    Testing Post handlers
  117. Урок 117. 00:08:22
    Testing AvailabilityJSON
  118. Урок 118. 00:03:07
    Simplifying adding post parameters
  119. Урок 119. 00:04:27
    Sending email using the Standard Library
  120. Урок 120. 00:20:25
    Installing a mailer package and setting up a mail channel
  121. Урок 121. 00:02:57
    Installing Mailhog on a Mac for testing purposes
  122. Урок 122. 00:00:57
    Installing Mailhog on Windows for testing purposes
  123. Урок 123. 00:05:29
    Creating and sending mail notifications
  124. Урок 124. 00:01:23
    Solution to sending notification to property owner
  125. Урок 125. 00:12:17
    Sending nicely formatted email using Foundation
  126. Урок 126. 00:04:20
    Updating our tests
  127. Урок 127. 00:04:07
    Create the login screen
  128. Урок 128. 00:02:59
    Creating the authentication handlers for the login screen
  129. Урок 129. 00:17:47
    Creating the authentication and user database functions
  130. Урок 130. 00:09:20
    Creating our handler to log in
  131. Урок 131. 00:06:49
    Writing Authentication Middleware
  132. Урок 132. 00:03:04
    Adding a user to the database
  133. Урок 133. 00:01:21
    Testing Login
  134. Урок 134. 00:07:29
    Checking to see if a user is logged in, and logging a user out
  135. Урок 135. 00:04:40
    Protecting our routes with authentication middleware
  136. Урок 136. 00:03:30
    Picking an admin template
  137. Урок 137. 00:03:51
    Convert the admin template into a Go template
  138. Урок 138. 00:04:59
    Solution to creating admin templates
  139. Урок 139. 00:05:53
    Create stub handlers for admin functionality
  140. Урок 140. 00:24:57
    Listing all reservations
  141. Урок 141. 00:08:13
    Listing new reservations
  142. Урок 142. 00:24:01
    Showing one reservation
  143. Урок 143. 00:06:24
    Database functions for editing a reservation
  144. Урок 144. 00:07:14
    Editing a reservation
  145. Урок 145. 00:14:27
    Marking a reservation as processed
  146. Урок 146. 00:06:11
    Deleting a reservation
  147. Урок 147. 00:14:21
    Showing the reservation calendar
  148. Урок 148. 00:23:36
    Reservation Calendar II
  149. Урок 149. 00:22:41
    Reservation Calendar III
  150. Урок 150. 00:14:51
    Reservation Calendar IV
  151. Урок 151. 00:03:21
    Handling Calendar changes I
  152. Урок 152. 00:05:54
    Handling Calendar changes II
  153. Урок 153. 00:13:53
    Handling Calendar changes III
  154. Урок 154. 00:07:40
    Handling Calendar changes IV
  155. Урок 155. 00:19:11
    Fixing our redirects
  156. Урок 156. 00:31:26
    Updating our tests
  157. Урок 157. 00:02:55
    Fixing a bug missed by our tests
  158. Урок 158. 00:01:15
    A word about the updated tests
  159. Урок 159. 00:10:25
    Changing our app to use command line flags
  160. Урок 160. 00:01:14
    An alternative: the .env file
  161. Урок 161. 00:05:40
    Using vi to edit files on remote server
  162. Урок 162. 00:08:18
    Choosing a server platform
  163. Урок 163. 00:02:22
    Add admin user to migrations
  164. Урок 164. 00:13:15
    Connecting the application to the web server
  165. Урок 165. 00:04:05
    Setting up Supervisor
  166. Урок 166. 00:02:57
    Writing an update script for the server
  167. Урок 167. 00:01:28
    A note about sending mail from the live server
  168. Урок 168. 00:07:34
    Updating to Bootstrap 5
  169. Урок 169. 00:05:28
    Updating the footer and page title
  170. Урок 170. 00:07:20
    Finishing touches, and fixing a bug
  171. Урок 171. 00:01:36
    Populating the rest of the pages
  172. Урок 172. 00:02:43
    Additional resources