Forum Rockoldies

Normale Version: Go (Golang): Develop Modern, Fast & Secure Web Applications
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
[Bild: 7-Ma-HRPDVSh-HVh-ZD8wqk2h-VRr8-Uzhmak-B.jpg]

Go (Golang): Develop Modern, Fast & Secure Web Applications
Published 10/2023
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 38.21 GB | Duration: 50h 43m

A comprehensive introduction to developing fast & secure web applications in GO (beginners & fairly advanced developers)



What you'll learn
How to build modern, fast, and secure web applications in Google's GO programming language
How to code your programs in the GO (golang) programming language
How to organize your application in GO while developing correctly
Integrate 3rd party packages with GO Modules
Write plain JavaScript without depending on something like jQuery
Creating HTML pages using HTML5
Creation and usage of Cascading Style Sheets (CSS)
How to write tests in GO
Brief insight in creating Entity Relationship Diagrams
Using "migrations" (and FIZZ) to build a develpoing environment for a PostgreSQL database
How to setup and connect to a PostgreSQL database (server) in GO
Managing sessions in GO
Learn best practices for security in web applications
Create and use of middleware in GO
Implementation of secure user authentication in GO
Deployment of a GO web application to a real server
Setup of Caddy 2 as Reverse Proxy with HTTPS
Many other competencies a full-stack developer should have

Requirements
No previous programming experience is required to participate in this course (but highly recommended!). This course starts by teaching very basic skills and guides you step by step to create modern web applications in Go.
Basic experience of coding GO and a working GO IDE (Integrated Developing Environment) is helpful but not mandatory.
Knowledge of HTML5, JavaScript, CSS, SQL, Linux, general understanding of processes in computers help and will also be covered in the course.
Willingness to learn and a fair amount of curiosity to figure out how things work!

Description
You are invited on an exciting journey where you will learn, with guidance, to use Google's GO programming language to develop modern web applications that are highly scalable in both depth and scope. You'll take advantage of the extraordinary capabilities GO holds for full-stack developers to build all sorts of server/client-based applications. This course is intended as a rich resource for learning programming basics as well as concepts in general and developing modern and fast web application with Google's GO (golang) programming language in particular - a comprehensive learning experience. The easiest way to learn new programming techniques and modern concepts in software design is to apply them using real-life examples. In this course you will learn how to plan, implement, test, debug and finally install a modern web application - a homepage for renting out bungalows as vacation homes - on a web server. You will learn about the advantages of the GO programming language and, on the way to a working application, how to integrate other elements such as SQL/PostgreSQL databases, JavaScript (client-side and server-side), AJAX techniques, HTML, CSS and how to use essential tools for full-stack developers.Besides programming in GO, this course also deals withHTML5 / CSS / DOMJavaScript (Vanilla, without jQuery dependence)SQL / PostgreSQLMigrations / FIZZJSONRoutes, Handlers, ModelsTests, Error HandlingLinux (bash), Windows (Command Line), macOS (bash)git / githubInstallation on a webserverand much moreWhile suitable for beginners with basic programming experience, it is designed to be a resource for fairly advanced developers. It's filled with examples, explanations, and clarifications of concepts needed to develop modern, fast and secure web applications, and comes with a code repository on Github and a detailed course outline as PDF, which serves as part of the course.Included external packages an dependencies:go-chi | Routerscs | Sessionsnosurf | CSRF-Tokengovalidator | Validator (server-sided)pgx/v5 | PostgreSQL Driver & Toolkitgo-simple-mail | Golang package for sending e-mailCaddy 2 | a powerful, enterprise-ready, open source web server with automatic HTTPS written in GOAlso playing a part:bootstrap | Bootstrap - HTML, CSS, and JavaScript framework (no jQuery)RoyalUI-Free-Bootstrap-Admin-Template | Free Bootstrap 4 Admin TemplateSimple-DataTables | DataTables but in TypeScript transpiled to Vanilla JSpostgres | PostgreSQL Server (mirror only)pop | Soda/Migrations - standardization of database tasksdbeaver | Dbeaver - free multi-platform database toolvanillajs-datepicker | Vanilla JavaScript datepickernotie | unobtrusive notifications - clean and simple JavaScriptSweetAlert2 | so many options for JavaScript popupsMailHog | Web and API based SMTP testingFoundation for Emails 2 | Quickly create responsive HTML e-mails that workCobra | A Framework for Modern CLI Apps in GOGoDotEnv | A GO port of Ruby's dotenv libraryWhen you sign up for this course, you have lifetime access to the course. You can learn at your own pace and return to content at any time for deeper insights or to learn additional concepts when you are ready.This course also comes with a 100% money back guarantee.I think this is one of the most comprehensive courses in English for developing modern, fast, and secure web applications from scratch.And if for some reason the course doesn't work for you, you can get a full refund within the first 14 days*.Enroll now!You can get great value from this course and, more importantly, you'll have a great time learning one of the best programming languages ever - the GO programming language, the fastest growing programming language with the highest paid programmers in the US within the last years.GO is an open-source programming language that makes it easy to develop simple, reliable, and efficient software.GO was developed by computer science luminaries at one of the best, if not the best, software development companies ever - Google. The design and implementations are by Robert Griesemer, Rob Pike and Ken Thompson.GO is a very good choice for learning a programming language because it was developed by some of the same people who created the C programming language, Unix, and UTF-8 - some of the most influential contributions to computer science. With GO Robert Griesemer, Rob Pike, and Ken Thompson created a modern programming language that can easily run on multiple processors in parallel, works smoothly in different environments, and makes it easy for programmers to write programs with a very streamlined and user-friendly syntax.Why did Google develop a new programming language?In Google's words, "GO was born out of frustration with existing languages and environments for systems programming. Programming had become too difficult and the choice of languages was partly to blame. One had to choose either efficient compilation, efficient execution, or ease of programming; all three were not available in the same mainstream language. Programmers who could were choosing ease over safety and efficiency by moving to dynamically typed languages such as Python and JavaScript rather than C++ or, to a lesser extent, Java. GO is an attempt to combine the ease of programming of an interpreted, dynamically typed language with the efficiency and safety of a statically typed, compiled language. It also aims to be modern, with support for networked and multicore computing. Finally, working with GO is intended to be fast: it should take at most a few seconds to build a large executable on a single computer. To meet these goals required addressing a number of linguistic issues: an expressive but lightweight type system; concurrency and garbage collection; rigid dependency specification; and so on. These cannot be addressed well by libraries or tools; a new language was called for."Learn with me the advantages in web programming of one of the best programming languages ever developed. You will get knowledge, ideas, concepts, inspiration and code examples to design software and applications yourself according to your wishes.* Check Udemy's Terms and Conditions for details.

Overview
Section 1: Introduction

Lecture 1 Allow Me To Introduce Myself - The whoami For Udemy Courses

Lecture 2 Why GO Of All Things? Why Not Node.js Or Another Programming Language?

Lecture 3 Installation Of GO And Setup Of A Free Integrated Development Environment (IDE)

Lecture 4 Learning Notes On This Course

Lecture 5 Accompanying Course Outline As PDF (Also Available On Github)

Lecture 6 Brief Section And Content Overview

Lecture 7 Basic Sources Of Information On The Web About GO And Used Software

Section 2: Brief Dive Into Go As A Crash Course

Lecture 8 Take This Hint And This One, And This One Too!

Lecture 9 Hello, World

Lecture 10 Variables - First Things First

Lecture 11 All Functional?

Lecture 12 Pointer Pointing The Finger At Others

Lecture 13 The Shadow World - It's Always About Types And Structs

Lecture 14 Receiver - The Madness Gets Method

Lecture 15 Maps And Slices

Lecture 16 Decisions & Conditionals If, Else, Else If, Switch

Lecture 17 In Da Loop: "For" And "Range" As A Team

Lecture 18 Polymorphism: Interfaces - The Name Says It All

Lecture 19 Go Modules

Lecture 20 Channels Are The Key To Concurrent Communication In Go!

Lecture 21 Import And Export Of Data In Json Format

Lecture 22 Unit Tests

Section 3: Basic Web Application - The Beginning

Lecture 23 The HTTP Request/Response Cycle

Lecture 24 The First Web Application: "It's Alive! It's Alive!"

Lecture 25 Unleash The Full Potential Of Handlers With The Magic Of Functions!

Lecture 26 Errors Have Value And Are A Value

Lecture 27 HTML Templates: Because Ain't Nobody Got Time To Code That From Scratch!

Lecture 28 Organize And Conquer: Let's Tidy Up And Optimize Our Space!

Lecture 29 Restructuring A Structure Like From The Textbook

Lecture 30 Layouts Like A Boss

Lecture 31 A Dynamic Cache For Effective Template Processing

Lecture 32 Creating A Static Cache #1: Efficient Template Processing

Lecture 33 Creating A Static Cache #2: Introducing Configuration File For Global Variables

Lecture 34 Creating A Static Cache #3: Final Step Of Implementation Using Global Variables

Lecture 35 What Else You Can Do With A Configuration File

Lecture 36 Sharing Is Caring: Sharing Data With Templates

Section 4: GO With The Flow: An Introduction To Middlewares In GO!

Lecture 37 Introduction Of Middleware And Routing In GO

Lecture 38 Implementation Of A Simple Routing Package (bmizerany/pat)

Lecture 39 Developer's Favorite: go-hhi/chi As New External Routing Package

Lecture 40 Middleware: DIY Your Own Middleware Today And Be The Coolest Coder In Town

Lecture 41 State Management With Session(s)

Lecture 42 Brief Function Test For Session Data

Section 5: Project Picking And Working With Forms: A Paperless Dream!

Lecture 43 Thoughts On Project Selection

Lecture 44 Brief Note On Github

Lecture 45 Static Files: Hold Still And Get Integrated!

Lecture 46 HTML - A Trip To The 1990th

Lecture 47 Spot Landing! We Create A Landing Page

Lecture 48 Preparing The HTML Of The Bungalow Pages

Lecture 49 Create And Pimp An Availability Check HTML Page

Lecture 50 make-reservation.html Is Our Answer To: "Do You Have A Reservation?"

Section 6: Code-Kaboom! JavaScript And CSS Come Into Play

Lecture 51 JavaScript: Friend Or Foe?

Lecture 52 Effortlessly Pick Dates: Grabbing A Vanilla JS Datepicker Package Now!

Lecture 53 Notie By Nature: Show Simple Messages

Lecture 54 Sweetalert: Candy Time!

Lecture 55 Sweetalert Is A Candy Store - Our Own JavaScript Module

Lecture 56 From Boring Button To Superstar: A New Functionality In Our JS Mod

Lecture 57 CSS: Making Websites Less Ugly Since 1996

Section 7: Turn HTML Into GO Templates, Server-Side Validation And Even More Handlers

Lecture 58 Brief Overview What's Going On In This Section

Lecture 59 From HTML To "Happily Ever After": Conversion Into GO Templates

Lecture 60 CSRF-Token Implementation

Lecture 61 Unlocking The Power Of JSON In Golang: A Handler That Returns Data In JSON

Lecture 62 Preparations For Submitting And Processing AJAX Requests

Lecture 63 From GET To POST: Let'S Teach The AJAX Requests Some Manners!

Lecture 64 Pimp Your Code: Refactoring Made Easy!

Lecture 65 Server-Sided Validation - The What, The How And The Why Of It All!

Lecture 66 Implementation Server-Side Form Validation I - Form Field Data & Errors

Lecture 67 Implementation Server-Side Form Validation II - Forms Model & Error Displaying

Lecture 68 Implementation Server-Side Form Validation III - More Fields & A Required Func

Lecture 69 Implementation Server-Side Form Validation IV - More Validators & govalidator

Lecture 70 Display Of An Overview Of The Reservation Data (By Using Sessions)

Lecture 71 Fast Feedback: Output Alerts As Feedback To The User Via notie

Lecture 72 Alternative Template Engine: Use The Power Of A Jet Engine

Section 8: Putting Your Code To The Test: How Writing Tests Can Save The Day (Or Days!)

Lecture 73 Testing In GO: The Why And Wherefore

Lecture 74 Testing Success: Mastering Tests For Package Main Of Our Web Application

Lecture 75 Handlers Tests I - The Beginning: Initial Setup/Handling GET-Request Handlers

Lecture 76 Handlers Tests II - Continued: Handling Post Request Handlers

Lecture 77 Render Tests I - Creating A Test Environment And Function Testadddefaultdata()

Lecture 78 Render Tests II - Creating Tests For Function Testrendertemplate() And The Rest

Lecture 79 Coverage Of Package Handlers And Package Render Tests

Lecture 80 Hands-On Exercise: Write A Basic Test For Package "forms"

Lecture 81 A Solution:[Solved] Testing For Package "forms"

Lecture 82 Final Notes And Tips For Starting Our Web Application

Section 9: Striving for Improvement: ErrorHandling

Lecture 83 Consolidation Of Error Handling In A Package "helpers"

Lecture 84 Use Of ClientError And ServerError And Updates Of The Relevant Tests

Section 10: Database I - Introduction To Database Usage And SQL With PostgreSQL And DBeaver

Lecture 85 Brief Section Overview And Download/Installation Of PostgreSQL And DBeaver

Lecture 86 Linux: Installing PostgreSQL And DBeaver And Making A Connection

Lecture 87 macOS: Installing PostgreSQL And DBeaver And Making A Connection

Lecture 88 Windows: Installing PostgreSQL And DBeaver And Making A Connection

Lecture 89 CRUD - Now It's Getting Dirty! SQL-Statements In Action

Lecture 90 SQL Queries For Advanced Users - Not Necessarily Complicated, But Complex

Section 11: Database II - Creation and Necessary Structuring of the Database

Lecture 91 Fascination Database Structure: Creation Of An Entity Relationship Diagram!

Lecture 92 *pop* "Want A Soda?" - Installation Of gobuffalo/pop Called Soda!

Lecture 93 Migrations I - Creation Of The "Users" Table

Lecture 94 Migrations II - Mass Production: Creation Of All Other Tables

Lecture 95 Migrations III - Creation Of A Foreign Key For The "Reservations" Table

Lecture 96 Migrations IV - To Be Continued ... The Remaining Foreign Keys

Lecture 97 Hands-On Exercise: Add The Missing Foreign Key To "bungalow_restrictions"

Lecture 98 A Solution:[SOLVED] The Missing Foreign Key For "bungalow_restrictions"

Lecture 99 Migrations V - Nitro Injection: Index For "users" And "bungalow_restrictions"

Lecture 100 Hands-On Exercise: Add Useful Indexes To The "reservations" Table

Lecture 101 A Solution:[SOLVED] Useful Indexes For The "reservations" Table

Lecture 102 Migrations VI - "The Sting" For The Development Phase Of The Database

Section 12: Database III - Connection of the PostgreSQL Database to the Web Application

Lecture 103 Example: How To Connect An Application To A Database In GO

Lecture 104 PostgreSQL Connection: Just like Golf! No Driver When You Need One Urgently!

Lecture 105 Integration Work: Inserting the Driver/Database Connection (Repository Pattern)

Lecture 106 An Easy Time: Creation Of The Necessary Models

Lecture 107 Cleaning up Your Code: Regular Maintenance and a Tiny Makeover For Your Project

Lecture 108 Don't Make It Complicated - But You Can If You Like: Object-Relational Mapping

Lecture 109 Double Trouble: Reservation Creation And Storage In The Database

Lecture 110 Poking With A Stick: Short Functional Test Of The Reservation Function

Lecture 111 One Small Step For Man... Database Entry In BungalowRestrictions

Lecture 112 Availability Check: Check Availability For A Specific Date Range Per Bungalow

Lecture 113 Availability Check: Availability For A Specific Date Range For All Bungalows

Lecture 114 Delicate Ties: Creating Connections Between Database Functions And Handlers

Lecture 115 What Can It Be? Connection Of The Availability Check To The Reservation Page

Lecture 116 Mission Accomplished: We Sucessfully Make A Reservation!

Lecture 117 Aftermath: Finalize Overview Page, Restrict Date Selection, Debugging

Lecture 118 Migrations VII - Preventing "Horsing Around" With Database Entries

Lecture 119 JavaScript On A Date With JSON: Availability Check And A JSON-Processing Handler

Lecture 120 Displaying the Result Of The Bungalow Availability Query To The User

Lecture 121 Session Creation: A Connector Between Availability Check And Reservation

Lecture 122 Data transfer: Copy JavaScript Into Templates, Idea For Code Abstraction

Section 13: Checkup: Updating Tests To Keep Your Code Fit And Healthy

Lecture 123 No Database For Your Test Setup? Fake One!

Lecture 124 Repairing The Tests For The Handlers - Reservation In Sessions As Context

Lecture 125 Improving Test Coverage And Multiple Test Cases For GET-Request Handlers

Lecture 126 An Example How To Write Tests For POST-Request Handlers

Lecture 127 Special Case: Testing POST Request Handler ReservationJSON

Lecture 128 Brief Look At The Rest Of The POST-Request Handlers Tests if you please

Lecture 129 Exchange and Type Change: reqBody Becomes postedData Of Type url.Values{}

Lecture 130 Houston, We Have A Problem! Emergency Debugging On The Fly!

Section 14: The Postman Always Rings Twice: Integration Of E-Mail Into The Web Application

Lecture 131 What Was That Again? How E-Mail And The SMTP Protocol Work...

Lecture 132 MailHog Installation For Testing Purposes: Go The Whole Hog!

Lecture 133 Sending E-Mails With The Standard Library - Just For The Sake Of Completeness!

Lecture 134 Go Simple Mail: Open An Application-Wide Channel For Sending E-Mails

Lecture 135 #MEGA - Make E-Mail Great Again! - Creating And Sending E-Mail Notifications

Lecture 136 Stay Informed: A Solution To Send E-Mails To The Operator

Lecture 137 ... Once Again With Feeling: Beautifully Formatted E-Mails With Foundations

Lecture 138 Updating The Tests - Doesn't Help, It's Got To Be Done!

Section 15: Prove It's You: Authenticate Your Identity And Access All The Goods!

Lecture 139 Elevate Your App: Craft an Easy Login Screen!

Lecture 140 Navigate To Success: Crafting A Login Route And Handler

Lecture 141 Unlocking Security: Building Authentication And DB Functions

Lecture 142 After The Form: A Login Handler That Delivers!

Lecture 143 Getting Middle-witty: Cooking Up Some Middleware Magic!

Lecture 144 Database Table For Awesome: Crafting A User With Migrations!

Lecture 145 Putting The Login Page To The Test: Success Awaits!

Lecture 146 Unveiling Authenticated Users And Log Out In Style!

Lecture 147 Fortify Your App: Building A Secure Admin Zone With The Middleware!

Lecture 148 Cleaning up Your Code: Smaller Cleaning Actions - Sweep Through Again Quickly!

Section 16: Home, Sweet Home: A Customized Backend For Easy Maintenance With Security

Lecture 149 Creating An Admin Dashboard In A Ready-Made Way - Choosing A Template

Lecture 150 Like On An Assembly Line: Bulk Creation Of Routes, Handlers And Templates

Lecture 151 Displaying All Reservations: Where DB Records Get A Seat At The Stylish Table

Lecture 152 A Copy & Paste Orgy: Creating A List With Only New Reservations

Lecture 153 Interlude: Makeover And Iron Out Small Mistakes

Lecture 154 Displaying A Single Reservation: Preparation For More To Come

Lecture 155 New Possibilities: Creating the Database Access Functions

Lecture 156 Very Concrete: Implementation Of The Editing Function

Lecture 157 Shift Up A Gear: Change The Status Of A Reservation

Lecture 158 Delete a Reservation: Is This Art Or Can It GO Away?

Lecture 159 Reservation Calendar I: Heading and Navigation

Lecture 160 Reservation Calendar II: Bungalows, Days and Checkboxes

Lecture 161 Reservation Calendar III: Reservations and Blocked Days

Lecture 162 Reservation Calendar IV: Render That! Display The Calendar!

Lecture 163 Reservation Processing I: Post Request, Route, And Handler

Lecture 164 Reservation Processing II: Correct Return After Processing

Lecture 165 Reservation Editing III: Handlers To Perform Actions

Lecture 166 Reservation Processing IV: Database Functions For Actions

Lecture 167 Quo Vadis? Correction Of Redirects After Editing

Lecture 168 Making The Handler Tests Run Again And A Few Tests

Section 17: Going Live: Deploying Your Web Application To A Server On The Internet!

Lecture 169 Launch Your Web Application Flexibly: Use Command Line Flags

Lecture 170 Note On Using .env Files For Your Web Application

Lecture 171 Text Editors Nano And Vi/Vim: Short Operating Remarks

Lecture 172 Get Server And Set Up The Necessary Server-Side Software

Lecture 173 Install Go And Get The Web Application On The Server

Lecture 174 No Mail Transfer Agent (MTA) Available? Fake It Till You Make It!

Lecture 175 Supervisor - Someone Has To Watch While You're Away

Lecture 176 Logo, Footer Content: Final Touches Before The Curtain Rises!

Section 18: Farewell & How It Could Go On From Here (And Room For Bugfixes)

Lecture 177 Goodbye And How It Could Go On With Your Web Application

Advanced developers as well as beginners who want to learn to write programs (especially web applications) professionally,Experienced full-stack web developers who are interested in learning the GO programming language,People with an attitude like Colonel John 'Hannibal' Smith from the A-Team who "love it when a plan comes together!"


[Bild: 427037620_go_golang_develop_modern_fast_...ations.jpg]