Learn to Create Web Applications using Go - Low quality [2018, ENG]

Ответить на тему
Статистика раздачи [Обновить пиров]
Размер:  14.36 GB   |    Зарегистрирован:  16 дней   |    Скачан:  0 раз

Полного источника не было: Никогда

 
   
 
 
 
Автор Сообщение

chi5o.com

Создавать темы 04-Янв-2019 10:57

[Цитировать]

Learn to Create Web Applications using Go Low quality
Год выхода: 2018
Сайт производителя: http://www.usegolang.com/
Автор: Jon Calhoun
Продолжительность: 43:34:07
Тип раздаваемого материала: Видеоурок
Язык: Английский
Описание: Здесь нет тривиальных одностраничных приложений TODO. Просто настоящие, продакшн веб-приложения. Go, как полагают, отлично подходит для веб-разработки, так почему же так сложно сделать даже простой твитер-клон? Почему никто не может указать мне конкретный пример того, как хешировать и хранить пароли пользователей? Или как построить остальную систему аутентификации?
Почему так сложно разделить мое подключение к базе данных с моими обработчиками или как отправлять электронную почту пользователям, не замедляя каждый веб-запрос?
Может ли кто-нибудь сказать мне, как организовать мой код? Почему так много разных мнений по этому поводу? Какой из них прав? Должен ли я использовать MVC? Что это за проект? Тьфу! Я хочу отказаться от него!
Вы слышали, что Go отлично подходит для веб-приложений, но начало работы приводит к множеству вопросов, которые могут ощущаться подавляющими. Но что, если вы можете создать веб-приложение на этой неделе, начиная с сегодняшнего дня? Что если у вас будет кто-то, кто проведет вас через стандартные библиотеки и поможет вам понять, как все они работают вместе?
«Все, что вам нужно, это стандартная библиотека» - все в Интернете
Я не могу сказать, сколько раз я слышал об этом, учась создавать веб-приложения с помощью Go. Я начал изучать Go, читая стандартную библиотеку и каждый учебник, который мог найти, но я быстро столкнулся с проблемой.
Вместо создания HTML-шаблонов и рендеринга реального динамического контента мы вместо этого использовали fmt.Fprint () для печати жестко закодированного HTML.
Или, когда нам нужен доступ к базе данных, я создал глобальное соединение и делил его со всеми. Мда!
В результате я не мог понять, как это сделать, создавая первые несколько страниц. Это было неприятно, если не сказать больше.
В то время как я застрял, я продолжал задавать себе такие вопросы, как ...
«Как я могу поделиться своим подключением к базе данных с моими обработчиками?»
«Как безопасно использовать хэш-пароль пользователя? Каков правильный способ проверки подлинности пользователя и доступа к этому ресурсу?»
«Как мне организовать мой код? Где шаблон MVC подходит ко всему этому? Является ли мой проект RESTful? Будет ли трудно его поддерживать?»
Независимо от того, сколько учебников я читал, мне всегда казалось, что что-то осталось. Некоторая часть большей картины, которая не была объяснена, оставила меня неуверенным в том, как действовать.
Основная проблема заключалась в том, что в каждом отдельном учебнике я читал упрощенные вещи, и мне нужен был полный курс, показываюший бы мне, как все части работают вместе.
Веб-приложения представляют собой сложные системы
После того, как я построил свое незавершенное приложение TODO, одностраничную вики или какой-нибудь другой надуманный пример, я чуть не сдался.
Мой прогресс был очень медленным, и каждый раз, когда я решал одну проблему, я обнаружил, что сталкиваюсь с двумя новыми. Я до сих пор не знал, как соединить все части вместе.
Как будто кто-то вручил мне инструментарий, научил меня, как использовать каждый инструмент, а затем сказал: «Теперь вы знаете, как построить дом!» Черт побери! В течение недели мой дом взорвался бы, если бы это работало.
Недостаточно просто узнать, как работает каждый инструмент. Знание того, как использовать столы, пилы для ногтей и силовые упражнения, не позволяет мне построить дом. Вам нужно научиться тому, как каждая часть дома соединяется вместе. Как крыша соединяется с рамой, как рама поддерживается фундаментом, сколько места уходит для вентиляционных отверстий в раме и бесчисленных других деталей. Короче говоря, вам нужно знать, как все работает вместе.
Итак, почему мы продолжаем думать, что этот подход будет работать для веб-разработки? Почему мы продолжаем рассказывать новые пути: «Все, что вам нужно, это стандартная библиотека для создания веб-приложений!»
Технически это не является неточным, но, конечно, черт возьми, это не идеальный способ обучения, и это приводит к тому, что разработчики пробиваются через бесчисленные учебники, читают бесконечные документы и пробуют сотни плохих подходов, прежде чем они, наконец, получат все правильно. И даже тогда они не уверены, что они сделали правильно. Они просто знают, что это еще не провалилось.
Но что, если вам не нужно было бороться сотнями уроков?
Что делать, если вам не нужно было читать бесчисленные учебники? Что делать, если вам не нужно было угадывать, как хэшировать и хранить пароль пользователя? Что, если вы уверены, что ваша аутентификация действительно безопасна? Вы, наконец, сможете спокойно отдыхать, зная, что ваши пользователи в безопасности. Или вы сможете начать фактически создавать это приложение, чтобы вы могли встретить своих первых клиентов. И самое главное, вы могли бы наконец начать пользоваться преимуществами использования Go для веб-разработки.
"Научитесь создавать веб-приложения с помощью Go" может помочь вам преодолеть всю сложность и, наконец, стать разработчиком, которым вы хотели стать.
Веб-разработка с Go - это тот курс, который я бы хотел взять когда начинал.
Этот курс является результатом более чем года работы и исследований. Время, потраченное на чтение документации, исходный код, сообщения в блогах и все остальное, что я мог получить. Написание тысяч строк кода, рефакторинг бесконечно и постоянный поиск лучших шаблонов дизайна.
Веб-разработка с Go поможет вам сэкономить месяцы исследований, проб и ошибок и ночей, почесывающие вашу голову. После завершения курса вы будете ...
‣ как инициализировать подключение к базе данных и предоставить доступ ко всему остальному вашему коду.
‣ иметь четкие примеры того, как и когда отправлять электронные сообщения пользователям.
‣ уверены, что вы правильно засовываете и хешируете свои пароли
‣ уверенны в том, что: «Да, моя система аутентификации безопасна»
‣ знать как организовать код с помощью MVC, чтобы он поощрял дизайн RESTful.
‣ И многое другое!
Это всесторонняя разбивка по всем аспектам веб-разработки, обучение всему, начиная с того, как создать самое основное веб-приложение, вплоть до подготовки вашего кода и развертывания его в производственной среде. Курс охватывает более 38 часов скринкастов, а включенная книга составляет более 700 страниц. Даже после завершения курса вы будете ссылаться на материал на долгие годы.
Что вы узнаете
Вот лишь некоторые из вещей, которые мы рассмотрим в этом курсе. Все преподается в контексте нашего окончательного веб-приложения, но мы будем иногда рассматривать тему в изоляции, прежде чем смотреть, как она соединяется с остальной частью нашего приложения.
Как создать веб-приложение с нуля
Следуя вместе с книгой, вы узнаете, как построить все с самого базового веб-сервера и постоянно строить на нем, пока у вас не будет полноценного веб-приложения.
Что такое MVC и REST?
Вы узнаете все о MVC (model-view-controller) и REST, в том числе о том, как использование обоих принципов проектирования может значительно упростить ваше приложение и улучшить его во время обучения. После того, как вы поймете MVC, вы будете в отличном месте, чтобы начать изучать более продвинутые методы проектирования (например, дизайн с поддержкой домена).
Как создавать и использовать шаблоны
Статические страницы скучны, поэтому мы будем использовать пакет html / template, включенный в стандартную библиотеку Go для создания HTML-страниц с динамическим контентом. Это позволит нам отображать пользовательские панели, галереи и изображения для каждого пользователя в зависимости от того, на какой странице они посещают и к чему они имеют доступ.
Как создать систему аутентификации
Веб-разработка с Go расскажет вам, как создать надлежащую систему аутентификации, в том числе о том, как использовать хэш-пароли с помощью bcrypt, создавать сеансы пользователей, избегать временных атак и многое другое.
Если вы не на 100% уверены, что ваша система аутентификации безопасна, это обязательное чтение!
Как взаимодействовать с базой данных PostgreSQL
Вы узнаете не только о том, как создавать, обновлять и удалять записи, используя пакет database / sql, но мы также расскажем о том, как нормализовать и проверить данные перед сохранением их в вашей базе данных. Мы даже рассмотрим, как устранить ошибки проверки для ваших конечных пользователей.
Как обрабатывать загрузки файлов
Наши фотогалереи нуждаются в изображениях, поэтому мы напишем весь код, необходимый для приема файлов, обработки входящих изображений и, наконец, вернем их конечным пользователям, которые посещают наши галереи.
Как отправлять электронные письма пользователям
Независимо от того, насколько разумны ваши пользователи, некоторые из них обязаны забыть свой password. Мы расскажем о том, как использовать такие сервисы, как Mailgun, для отправки электронных писем нашим клиентам, когда это происходит, что дает им возможность восстановить доступ к их учетной записи.
Как использовать API Dropbox
Если вы приобретете пакет с бонусным содержанием, вы также узнаете, как взаимодействовать с Dropbox API, включая реализацию oauth2, чтобы получить доступ к папкам Dropbox пользователя и импортировать изображения из указанного пользователем каталога, чтобы создать фотогалерею.
Но я новичок в программировании!
И что?!? В то время как эта книга предоставит тонну для ветеранов-разработчиков, она была разработана для новичков.
Каждая глава рассматривает все, что мы представляем, подробно, убедившись, что вы не чувствуете себя потерянными. Вы часто найдете «в стороне» видео, которые более подробно расскажут о теме, но их легко пропустить, если вы уже знакомы с этой темой.
Скринкасты
Они не соответствуют идеально друг другу в главе, нумерации в книге, но я старался сохранить контент как можно более похожим. Вообще говоря, вы можете начинать любую новую главу с помощью скринкастов или книг, и у вас не должно быть никаких проблем. Код будет почти идентичным, и любые различия должны быть очень незначительными.
Разделы внутри каждой главы также очень похожи, но есть различия в том, как представлен контент, порядок, в котором он представлен, и как это объясняется. Это в основном связано с тем фактом, что значительно легче дать демонстрации и просто показать вам, как я нахожу вещи в документах с помощью скринкастов, в то время как это происходит с помощью текста * намного сложнее. Тем не менее, я попытался сохранить общий опыт как можно ближе.

Содержание

Урок 1. 2.0 - Creating a code directory and a git repo 00:12:10
Урок 2. 2.1 - A basic web application 00:13:13
Урок 3. 2.1 [ASIDE] - What is a web request? 00:10:03
Урок 4. 2.2 - Explaining our web application in detail 00:09:15
Урок 5. 2.3 - Dynamic reloading 00:10:33
Урок 6. 3.1 - Setting the Content-Type header 00:08:03
Урок 7. 3.2 - Adding a contact page 00:08:27
Урок 8. 3.3 - Adding a 404 page 00:07:35
Урок 9. 3.4 - net/http's ServeMux 00:15:20
Урок 10. 3.5 - github.com/julienschmidt's httprouter 00:07:48
Урок 11. 3.6 - Gorilla Web Toolkit's mux package 00:07:07
Урок 12. 3.7 - Implementing the gorilla/mux router 00:09:57
Урок 13. 3.Ex0 - Exercises overview 00:07:11
Урок 14. 3.Ex1 - Adding an FAQ page 00:05:35
Урок 15. 3.Ex2 - Adding a 404 page 00:05:25
Урок 16. 3.Ex3 - Using httprouter 00:07:44
Урок 17. 4.0 - What are templates? 00:07:22
Урок 18. 4.1 - Our first HTML template 00:14:51
Урок 19. 4.2 - Code injection and contextual encoding 00:07:24
Урок 20. 4.Ex0 - Exercises overview 00:03:34
Урок 21. 4.Ex1 - Rendering a custom field 00:03:12
Урок 22. 4.Ex2 - Rendering additional data attributes 00:06:03
Урок 23. 4.Ex3 - Rendering with nested structures 00:04:09
Урок 24. 5.0 - Intro to the MVC videos 00:02:58
Урок 25. 5.1 - What is MVC? 00:13:17
Урок 26. 5.2 - Walking through a web request with MVC 00:05:59
Урок 27. 5.Ex0 - Exercises 00:06:36
Урок 28. 6.0 - Creating our first view 00:11:58
Урок 29. 6.1 - Creating the contact view 00:05:49
Урок 30. 6.2 - Named and nested templates 00:08:44
Урок 31. 6.3 - Creating the View type 00:08:39
Урок 32. 6.4 - Using the View type 00:12:31
Урок 33. 6.5 - Creating a Bootstrap layout 00:25:13
Урок 34. 6.6 - Adding a navigation bar 00:12:46
Урок 35. 6.7 - Cleaning up our code by globbing template files 00:17:04
Урок 36. 6.8 - Simplifying our view rendering logic 00:09:51
Урок 37. 6.9 - Moving our footer to the bootstrap layout 00:03:50
Урок 38. 6.10 - Summary 00:04:43
Урок 39. 7.0 - Creating the signup page 00:13:37
Урок 40. 7.1 - Wrapping the signup form in a bootstrap panel 00:13:56
Урок 41. 7.2 - Adding a signup link to the navbar 00:03:30
Урок 42. 7.3 - An introduction to REST 00:14:19
Урок 43. 7.4 - Creating our first controller - the users controller 00:29:05
Урок 44. 7.5 - CRUD, HTTP verbs with Gorilla mux, and the create action 00:22:39
Урок 45. 7.6 - Parsing the signup form (parsing POST forms) 00:13:05
Урок 46. 7.7 - Parsing forms with gorilla schema 00:19:56
Урок 47. 7.8 - DRYing up our form parsing code 00:14:27
Урок 48. 7.9 - Creating a controller for our mostly static pages 00:15:24
Урок 49. 7.10 - Making views easier to create 00:13:31
Урок 50. 8.0 - What does it mean to persist data? 00:05:05
Урок 51. 8.1 - Web applications use databases to persist data 00:07:50
Урок 52. 8.2 - We will be using PostgreSQL 00:03:08
Урок 53. 8.3 - SQL has many great educational resources 00:06:09
Урок 54. 8.4 - Postgres is scalable and relatively easy to use 00:04:38
Урок 55. 8.5 - Setting up and connecting to Postgres 00:07:37
Урок 56. 8.6 - SQL basics and creating tables to interact with 00:07:16
Урок 57. 8.7 - Connecting to our database with Go's sql package 00:18:24
Урок 58. 8.8 - Writing records to our database with Go's sql package 00:15:52
Урок 59. 8.9 - Querying for records with Go's sql package 00:12:59
Урок 60. 8.10 - Handling relational data with Go's sql package 00:15:31
Урок 61. 8.11 - Setting up GORM 00:08:27
Урок 62. 8.12 - Creating our first model with GORM 00:14:19
Урок 63. 8.13 - Creating records and logging with GORM 00:13:35
Урок 64. 8.14 - Querying records with GORM 00:16:42
Урок 65. 8.15 - Error handling with GORM 00:12:18
Урок 66. 8.16 - Relational data with GORM 00:11:15
Урок 67. 9.1 - Creating the User model 00:09:27
Урок 68. 9.2 - Creating the UserService 00:19:10
Урок 69. 9.3 - The create user method 00:07:22
Урок 70. 9.4 - What does a model test look like? 00:16:12
Урок 71. 9.5 - Finishing the UserService implementation 00:26:11
Урок 72. 9.6 - Connecting models and controllers 00:25:02
Урок 73. 10.0 - An intro to building an auth system 00:14:20
Урок 74. 10.1 - Store hashes, not passwords 00:13:37
Урок 75. 10.2 - Implementing bcrypt hashing 00:10:40
Урок 76. 10.3 - Using passwords from the signup form 00:05:27
Урок 77. 10.4 - Salt and pepper 00:14:28
Урок 78. 10.5 - Creating the login form 00:14:00
Урок 79. 10.6 - Authenticating users 00:17:55
Урок 80. 11.0 - Remembering users and creating our first cookie 00:19:41
Урок 81. 11.1 - Viewing cookies via code 00:05:44
Урок 82. 11.2 - Creating cookies on login and signup 00:09:04
Урок 83. 11.3 - Securing our cookies from tampering 00:19:42
Урок 84. 11.4 - Generating remember tokens 00:13:09
Урок 85. 11.4 [ASIDE] - Why 32 bytes? 00:07:29
Урок 86. 11.5 - Writing a remember token hasher 00:16:28
Урок 87. 11.6 - Hashing remember tokens on user creation and update 00:19:29
Урок 88. 11.7 - Storing remember tokens in cookies 00:15:10
Урок 89. 11.8 - Securing our cookies from XSS 00:07:33
Урок 90. 11.9 - Securing our cookies from theft and CSRF 00:10:50
Урок 91. 12.0 - Validating and normalizing 00:14:03
Урок 92. 12.1 - Static types vs interfaces 00:08:41
Урок 93. 12.1 [ASIDE] - Emebedding, interfaces, and chaining 00:11:43
Урок 94. 12.2 - The UserDB interface 00:18:11
Урок 95. 12.3 - The UserService interface 00:17:55
Урок 96. 12.4.0 - Organizing validation code 00:21:46
Урок 97. 12.4.1 - Remember token normalizer 00:07:04
Урок 98. 12.4.2 - Ensuring remember tokens are set on create 00:04:31
Урок 99. 12.4.3 - Ensuring a valid ID on delete 00:06:59
Урок 100. 12.5.0 - Converting emails to lowercase and trimming whitespace 00:09:45
Урок 101. 12.5.1 - Requiring email addresses 00:04:11
Урок 102. 12.5.2 - Verifying emails match a pattern 00:16:28
Урок 103. 12.5.3 - Verifying an email address isn't taken 00:10:09
Урок 104. 12.6 - Validating and normalizing passwords 00:15:12
Урок 105. 12.7 - Validating and normalizing remember tokens 00:12:41
Урок 106. 13.1 - Bootstrap alerts 00:06:08
Урок 107. 13.2 - Dynamic alerts 00:05:19
Урок 108. 13.3 - Only show alerts when necessary 00:05:09
Урок 109. 13.4 - Creating the views.Data type 00:10:25
Урок 110. 13.5 - Handling signup errors 00:13:11
Урок 111. 13.6 - Only display public errors 00:18:02
Урок 112. 13.7 - Handling login errors 00:09:45
Урок 113. 13.8 - Handling rendering errors 00:11:42
Урок 114. 14.0 - Intro to the gallery chapter 00:04:36
Урок 115. 14.1 - The gallery model 00:07:31
Урок 116. 14.2 - Sharing a GORM connection and the GalleryService 00:07:49
Урок 117. 14.3 - Utilizing our shared GORM connection (the Services type) 00:06:12
Урок 118. 14.4 - Moving close to the Services type 00:07:47
Урок 119. 14.5 - Implementing the GalleryService 00:05:55
Урок 120. 14.6 - Creating the galleries controller 00:09:35
Урок 121. 14.7 - Implementing the Gallery create action 00:06:26
Урок 122. 14.8 - Gallery validators and normalizers 00:15:23
Урок 123. 14.9 - Requiring users to be logged in to view specific pages 00:20:13
Урок 124. 14.10 - Adding users to the request context 00:15:57
Урок 125. 14.11 - Rendering individual galleries 00:35:59
Урок 126. 14.12 - Galleries edit action 00:13:39
Урок 127. 14.13 - Galleries update action 00:06:35
Урок 128. 14.14 - GalleryService update method 00:05:21
Урок 129. 14.15 - Gallery delete action 00:13:01
Урок 130. 14.16 - Gallery index action 00:22:26
Урок 131. 14.17 - Navbar updates 00:35:12
Урок 132. 15.1 - File upload HTML form 00:25:23
Урок 133. 15.2 - File upload handler 00:24:49
Урок 134. 15.3 - The ImageService and create method 00:18:50
Урок 135. 15.4 - Finding images by Gallery ID 00:16:04
Урок 136. 15.5 - Rendering images 00:21:58
Урок 137. 15.6 - Deleting images 00:32:52
Урок 138. 16.1 - Error cleanup 00:19:51
Урок 139. 16.2 - Serving static assets 00:07:59
Урок 140. 16.3 - CSRF protection 00:26:13
Урок 141. 16.4 - Don't lookup the user when serving static assets 00:06:36
Урок 142. 16.5 - URL encoding image path bug 00:07:46
Урок 143. 16.6 - Starting with config variables 00:23:06
Урок 144. 16.7 - Functional options for services 00:21:55
Урок 145. 16.8 - Loading a JSON config 00:15:54
Урок 146. 16.9 - Setting up a droplet (server) on Digital Ocean 00:06:29
Урок 147. 16.10 - Installing postgres on our prod server 00:07:53
Урок 148. 16.11 - Caddy server 00:13:36
Урок 149. 16.12 - Deploy script 00:32:28
Урок 150. 17.1 - Deleting cookies and logging out users 00:13:40
Урок 151. 17.2 - Redirecting with alerts 00:18:10
Урок 152. 17.3 - Emailing users 00:34:29
Урок 153. 17.4 - Persisting form data 00:12:26
Урок 154. 17.5.1 - Resetting passwords - Creating the pwReset DB table 00:29:17
Урок 155. 17.5.2 - Resetting passwords - Implementing UserService methods 00:24:30
Урок 156. 17.5.3 - Resetting passwords - Form HTML templates 00:05:08
Урок 157. 17.5.4 - Resetting passwords - Controller updates 00:20:59
Урок 158. 17.5.5 - Resetting passwords - Sending emails and building links 00:21:04
Урок 159. 18.1 - Intro to OAuth 00:06:34
Урок 160. 18.2 - Setting up a Dropbox Application 00:13:07
Урок 161. 18.3 - Go's OAuth2 Package 00:09:16
Урок 162. 18.4 - Dropbox OAuth Spike (Part 1) 00:16:28
Урок 163. 18.5 - Dropbox OAuth Spike (Part 2) 00:11:59
Урок 164. 18.6.1 - Persisting OAuth Tokens - Explaining the Token 00:09:22
Урок 165. 18.6.2 - Persisting OAuth Tokens - OAuth Model 00:35:46
Урок 166. 18.6.3 - Persisting OAuth Tokens - Connecting It All 00:13:17
Урок 167. 18.7 - Making Dropbox API Calls 00:17:51
Урок 168. 18.8 - Refactoring to Controllers 00:09:29
Урок 169. 18.9 - Generic OAuth Controller 00:12:23
Урок 170. 19.1 - Intro to the Dropbox SDK 00:20:08
Урок 171. 19.2 - Custom Dropbox Package 00:15:20
Урок 172. 19.3 - Dropbox Chooser 00:54:28
Урок 173. Mark Bates - Go Buffalo 00:33:53
Урок 174. Joe Fitzgerald & Zac Bergquist - Atom + Go 00:35:15
Урок 175. Matt Holt - Caddy & Securing your Server 00:27:18
Урок 176. Michael Hartl - Learning Just Enough 00:35:24
Урок 177. Ryan Patterson - Technical Interviews 00:28:35
Урок 178. Mattan Griffel - Learning to Code 00:42:36
Урок 179. Charlie Guo - Doing the Unscalable 00:41:20
Урок 180. Ryan Jackson - Starting a Tech Company 00:42:58
Урок 181. Adam Wathan - Testing and More 00:40:05
Файлы примеров: присутствуют
Формат файла: MP4
Видео: MPEG4 Video (H264) 720x482 30fps 1300kbps (avc1)
Аудио: AAC 44100Hz stereo 249kbps (mp4a)

Скриншоты



[chi5o.com]_t_5666379.torrent
Торрент: Зарегистрирован ·  [ 2019-01-04 10:29 ] ·  21660be3991d76815b5e50e855870ef18a18599e

87 KB

Статус: проверено
Скачан: 0 раз
Размер: 14.36 GB
Оценка: 
(Голосов: 0)
Сказали спасибо: 0  Спасибо
Похожие темы
[Профиль]    [ЛС]
Показать сообщения:    
Ответить на тему

Текущее время: Сегодня 08:41

Часовой пояс: GMT + 7



Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы можете скачивать файлы


Giá phòng karaoke | Boku no Hero Academia 174 | Miles from Tomorrowland (33)