-
Урок 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
The last update for this course on Udemy - 07.2022.
Thanks!
Автор что-то постоянно делает, но практически не объясняет, зачем он это делает, всё очень поверхностно. Примерно с 30 урока я полностью перестал понимать, что происходит.
Бесит, когда что-то делается не правильно, а потом рефакторится - пустая трата времени. Каждый напишет код по своему и, мне кажется, рефакторинг - это отдельная тема, когда очень хорошо понимаешь код.
То что он делает, это просто оптимизация, сначала выносит кеш в отдельный файл, чтобы он не создавался (кеш) каждый раз, когда запрашивается страница. То есть, чтобы он существовал постоянно независимо оттого какую ты страницу запрашиваешь, потом, мы извлекаем из кеша этот шаблон, чтобы лишний раз не обращаться к более медленной памяти (то есть, к диску). Это уменьшает latency.
Найти данный курс можешь на desirecourse - погугли, не так сложно. Учти, что тебе нужен будет торрент-клиент.