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