Tags
Language
Tags
April 2024
Su Mo Tu We Th Fr Sa
31 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 1 2 3 4

Learn to Create Web Applications using Go 2018 (High quality)

Posted By: ParRus
Learn to Create Web Applications using Go 2018 (High quality)

Learn to Create Web Applications using Go 2018 (High quality)
WEBRip | English | MP4 | 1920 x 1080 | AVC ~1476 kbps | 30 fps
AAC | 119 Kbps | 44.1 KHz | 2 channels | 43:34:07 | 49.17 GB
Genre: Video Tutorial

Go is supposed to be great for web development, so why is it so hard to build even a simple twitter clone?
Why can't anyone point me to a concrete example of how to hash and store user passwords? Or how to build the rest of an authentication system?
Why is to so frustrating simply trying to figure out how to share my database connection with my handlers, or how to email users without slowing down every web request?
Can anyone just tell me how to organize my code? Why are there so many varying opinions on this? Which one is right? Should I be using MVC? What is this domain driven design? Ugh! I want to give up!
You have heard that Go is great for web apps, but getting started leads to so many questions that it can feel overwhelming. But what if you could build a web application this week, starting today? What if you had someone to guide you through the standard libraries and help you understand how they all work together?

"All you need is the standard library" - Everyone on the internet
I can't tell you the number of times I heard this when learning to create web applications using Go. After a while, it started to haunt me.

I started learning Go by reading the standard library and every tutorial I could find, but I quickly ran into a problem.

Rather than creating HTML templates and rendering real dynamic content, we were instead using fmt.Fprint() to print hard coded HTML.

Or when we needed access to a database we would create a global connection and share it with ALL of our code. Yikes!

As a result, I couldn't figure out how to get past creating my first few pages. It was frustrating, to say the least.

While getting stuck I kept asking myself questions like…

"How do I share my database connection with my handlers?"
"How do I hash user passwords securely? What is the correct way to make sure a user is authenticated and has access to this resource?"
"How should I organize my code? Where does the MVC pattern fit into all of this? Is my design RESTful? Will it be hard to maintain?"
No matter how many tutorials I read, I always felt like there was something left out. Some part of the bigger picture that wasn't explained, leaving me unsure of how to proceed.

The underlying problem was that every single tutorial I read oversimplified things, and what I needed was a comprehensive course showing me how all the pieces worked together.

Web applications are complex systems
After building my umpteenth silly TODO app, single page wiki, or some other contrived example I nearly gave up.

My progress was painfully slow, and every time I solved one problem I found myself facing two new ones. I still had no idea how to connect all of the pieces together.

It was as if someone had handed me toolbox, taught me how to use each tool, and then said "You now know how to build a house!" The hell I do! My house would blow over within the week if that was how construction worked.

It isn't enough to simply learn how each tool works. Knowing how to use a tablesaw, nailgun, and power drill don't qualify me to construct a house. You need to learn how every piece of a house gets connected together first. How the roof connects to the frame, how the frame is supported by the foundation, how much space to leave for air vents in the frame, and countless other details. In short, you need to know how everythign works together.

So why do we keep thinking this approach will work for web development? Why do we keep telling new Gophers, "All you need is the standard library to build web applications!"

Technically it isn't inaccurate, but it sure as hell isn't the ideal way to learn and it leads to developers slugging through countless tutorials, reading endless docs, and trying hundreds of bad approaches before they finally get it right. And even then they aren't confident what they did is right. They just know it hasn't failed yet.

But what if you didn't have to struggle through hundreds of tutorials?
What if you didn't have to read countless tutorials? What if you didn't have to guess at how to hash and store a user's password? What if you had confidence that your authentication was truly secure? You would finally be able to rest easy at night knowing you aren't letting your users down. Or you would be able to start actually building that app so you can meet your first customers. And most importantly, you could finally start enjoying the benefits of using Go for web development.

Web Development with Go can help you cut through all the complexity and finally become the developer you know you should be.

Web development with Go absolutely saved me from giving up on Go. Before finding this course I kept hitting roadblock after roadblock. I can't tell you how excited I was when I realized just how approachable and productive this course is. I went from struggling to get even the most basic tasks completed to actually building out my own app idea. I can't wait to release it!
Web Development with Go is the course I wish I had.
This course is the result of over a year of work and research. Time spent reading documentation, source code, blog posts, and anything else I could get my hands on. Writing thousands of lines of code, refactoring endlessly, and constantly seeking better design patterns.

Web Development with Go will save you months of research, trial and error, and nights scratching your head. After completing the course you will…

‣ Know exactly how to initialize your database connection and give the rest of your code access to it
‣ Have clear examples of how and when to email users.
‣ Be positive that you are salting and hashing your passwords correctly
‣ Feel confident saying, "Yes, my authentication system is safe and secure!"
‣ Know exactly how to organize your code using MVC so that it encourages a RESTful design.
‣ And so much more!
All of this is possible because this is not your run of the mill 30 minute tutorial. It is a comprehensive breakdown of every aspect of web development, teaching everything from how to create the most basic web application all the way to preparing your code and deploying it in a production environment. The course spans over 38 hours of screencasts and the included ebook is over 700 pages long. Even after completing the course, you will be referencing the material for years to come.

(Watch a sample screencast of the first web application we write. Be sure to check out the followup video where we explain what all of this code does afterwards.)

What you will learn
Here are just a few of the things we will be covering in this course. Everything is taught in the context of our final web application, but we will occasionally review a topic in isolation before looking at how it connects to the rest of our application.


How to build a web application from scratch
While following along with the book, you will learn how to build everything from the most basic web server and continuously build upon it until you have a fully fledged web application.

What are MVC and REST?
You will learn all about MVC (model-view-controller) and REST including how using both design principles can make your application significantly easier to maintain and improve as you are learning. Once you understand MVC you will be in a great place to start learning about more advanced design techniques (like domain driven design).

How to create and utilize templates
Static pages are boring, so we will use the html/template package included in Go's standard library to create HTML pages with dynamic content. This will allow us to display custom dashboards, galleries, and images for each user depending on what page they visit and what they have access to.

How to build an authentication system
Web Development with Go will teach you how to build a proper authentication system including how to hash passwords with bcrypt, creating user sessions, avoiding timing attacks, and so much more.

If you aren't 100% certain your authentication system is secure, this is a must-read!

How to interact with a PostgreSQL database
Not only will you learn how to create, update, and delete records using the database/sql package, but we will also cover how to normalize and validate data before saving it to your database. We even cover how to relay validation errors to your end users.

How to process file uploads
Our photo galleries need images, so we will write all of the code necessary to accept file uploads, process those incoming images, and finally serve them back to end users who visit our galleries.

How to send emails to users
No matter how smart your users are, some of them are bound to forget their pssword. We will cover how to utilize services like Mailgun to send emails to our customers when this happens, giving them a way to restore access to their account.

How to use the Dropbox API
If you purchase a package with the bonus content you will also learn how to interact with the Dropbox API, including implementing oauth2 to get access to a user's Dropbox folders and importing images from a user-specified directory to create a photo gallery.

Plus many more topics
This is only a small subset of all the things we will learn. Check out what you will build or read the Chapter List to get a better idea of everything we cover, and if you have any questions don't hesitate to email me if you are curious about a specific topic.

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

also You can watch my other last: Programming-posts

Screenshots

Learn to Create Web Applications using Go 2018 (High quality)

Learn to Create Web Applications using Go 2018 (High quality)

Learn to Create Web Applications using Go 2018 (High quality)

Learn to Create Web Applications using Go 2018 (High quality)

Exclusive eLearning Videos ParRus-blogadd to bookmarks

Learn to Create Web Applications using Go 2018 (High quality)