Go

āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ HTTP

net/http, handlers, ServeMux, middleware, request/response, routing, context

24 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒÂ·
Mid-Level
1

package net/http āđƒāļ™ Go āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

package net/http āļĄāļ­āļšāļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļāļēāļĢāļ—āļģāļ‡āļēāļ™āļŠāļģāļŦāļĢāļąāļšāļŠāļĢāđ‰āļēāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒāđāļĨāļ°āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ HTTP āļ›āļĢāļ°āļāļ­āļšāļ”āđ‰āļ§āļĒāļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāļ­āļĒāđˆāļēāļ‡ http.Server, http.Handler, http.Request, http.ResponseWriter āđāļĨāļ°āļŸāļąāļ‡āļāđŒāļŠāļąāļ™āļ­āļĒāđˆāļēāļ‡ ListenAndServe āđ€āļ›āđ‡āļ™āđ„āļĨāļšāļĢāļēāļĢāļĩāļĄāļēāļ•āļĢāļāļēāļ™āļ‚āļ­āļ‡ Go āļŠāļģāļŦāļĢāļąāļš HTTP āļ—āļĩāđˆāđƒāļŠāđ‰āđƒāļ™āđāļ­āļ›āļžāļĨāļīāđ€āļ„āļŠāļąāļ™āđ€āļ§āđ‡āļšāļŠāđˆāļ§āļ™āđƒāļŦāļāđˆāđ‚āļ”āļĒāđ„āļĄāđˆāļ•āđ‰āļ­āļ‡āļžāļķāđˆāļ‡āļžāļē dependencies āļ āļēāļĒāļ™āļ­āļ

2

āļˆāļ°āļŠāļĢāđ‰āļēāļ‡āđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ HTTP āļ­āļĒāđˆāļēāļ‡āļ‡āđˆāļēāļĒāđƒāļ™ Go āđ„āļ”āđ‰āļ­āļĒāđˆāļēāļ‡āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

āļŸāļąāļ‡āļāđŒāļŠāļąāļ™ http.ListenAndServe āđ€āļĢāļīāđˆāļĄāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ HTTP āļšāļ™āļžāļ­āļĢāđŒāļ•āļ—āļĩāđˆāļāļģāļŦāļ™āļ”āļžāļĢāđ‰āļ­āļĄāļāļąāļš handler āđ‚āļ”āļĒāļĢāļąāļšāļŠāļ­āļ‡āļžāļēāļĢāļēāļĄāļīāđ€āļ•āļ­āļĢāđŒ: āļ—āļĩāđˆāļ­āļĒāļđāđˆ (āđ€āļŠāđˆāļ™ ':8080') āđāļĨāļ° handler (āļŠāļēāļĄāļēāļĢāļ–āđ€āļ›āđ‡āļ™ nil āđ€āļžāļ·āđˆāļ­āđƒāļŠāđ‰ DefaultServeMux āđ„āļ”āđ‰) āđ€āļ›āđ‡āļ™āļ§āļīāļ˜āļĩāļ—āļĩāđˆāļ‡āđˆāļēāļĒāļ—āļĩāđˆāļŠāļļāļ”āđƒāļ™āļāļēāļĢāđ€āļĢāļīāđˆāļĄāđ€āļ‹āļīāļĢāđŒāļŸāđ€āļ§āļ­āļĢāđŒ āđ‚āļ”āļĒāļˆāļ°āļšāļĨāđ‡āļ­āļāļˆāļ™āļāļ§āđˆāļēāļˆāļ°āđ€āļāļīāļ”āļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”

3

http.Handler āđƒāļ™ Go āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

āļ„āļģāļ•āļ­āļš

http.Handler āļ„āļ·āļ­āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹āļ—āļĩāđˆāļĄāļĩāđ€āļĄāļ˜āļ­āļ”āđ€āļ”āļĩāļĒāļ§āļ„āļ·āļ­ ServeHTTP(ResponseWriter, *Request) āļŠāļ™āļīāļ”āļ‚āđ‰āļ­āļĄāļđāļĨāđƒāļ” āđ† āļ—āļĩāđˆ implement āđ€āļĄāļ˜āļ­āļ”āļ™āļĩāđ‰āļŠāļēāļĄāļēāļĢāļ–āļˆāļąāļ”āļāļēāļĢ request HTTP āđ„āļ”āđ‰ āļĄāļąāļ™āđ€āļ›āđ‡āļ™āļŠāļąāļāļāļēāļžāļ·āđ‰āļ™āļāļēāļ™āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļĢāđ‰āļēāļ‡ handler āđāļšāļšāļāļģāļŦāļ™āļ”āđ€āļ­āļ‡, middleware āđāļĨāļ° router āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāđ€āļ§āđ‡āļšāļ‚āļ­āļ‡ Go āļ—āļąāđ‰āļ‡āļŦāļĄāļ”āđƒāļŠāđ‰āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹āļ™āļĩāđ‰āđ€āļ›āđ‡āļ™āļĢāļēāļāļāļēāļ™

4

āļ„āļ§āļēāļĄāđāļ•āļāļ•āđˆāļēāļ‡āļĢāļ°āļŦāļ§āđˆāļēāļ‡ http.Handler āđāļĨāļ° http.HandlerFunc āļ„āļ·āļ­āļ­āļ°āđ„āļĢ?

5

http.ServeMux āđƒāļŠāđ‰āļ—āļģāļ­āļ°āđ„āļĢ?

+21 āļ„āļģāļ–āļēāļĄāļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āļŦāļąāļ§āļ‚āđ‰āļ­āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ Go āļ­āļ·āđˆāļ™āđ†

āļžāļ·āđ‰āļ™āļāļēāļ™ Go

Junior
25 āļ„āļģāļ–āļēāļĄ

āđ‚āļ„āļĢāļ‡āļŠāļĢāđ‰āļēāļ‡āļ‚āđ‰āļ­āļĄāļđāļĨ Go

Junior
20 āļ„āļģāļ–āļēāļĄ

āļ­āļīāļ™āđ€āļ—āļ­āļĢāđŒāđ€āļŸāļ‹āđƒāļ™ Go

Junior
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļ‚āđ‰āļ­āļœāļīāļ”āļžāļĨāļēāļ”

Junior
20 āļ„āļģāļ–āļēāļĄ

āļžāļ·āđ‰āļ™āļāļēāļ™ Goroutine

Junior
20 āļ„āļģāļ–āļēāļĄ

Channels

Junior
22 āļ„āļģāļ–āļēāļĄ

Go Modules

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āđ„āļ„āļĨāđ€āļ­āļ™āļ•āđŒ HTTP

Mid-Level
18 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļ‚āđ‰āļēāļĢāļŦāļąāļŠ JSON

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Database/SQL

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āđāļžāđ‡āļāđ€āļāļˆ context

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

Testing

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āļĢāļđāļ›āđāļšāļš Concurrency

Mid-Level
24 āļ„āļģāļ–āļēāļĄ

āđ„āļžāļĢāļĄāļīāļ—āļĩāļŸāļāļēāļĢāļ‹āļīāļ‡āđ‚āļ„āļĢāđ„āļ™āļ‹āđŒ

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

āđ€āļŸāļĢāļĄāđ€āļ§āļīāļĢāđŒāļāđ€āļ§āđ‡āļš Go

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļ­āļ­āļāđāļšāļš REST API

Mid-Level
20 āļ„āļģāļ–āļēāļĄ

gRPC

Mid-Level
22 āļ„āļģāļ–āļēāļĄ

Reflection

Senior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļˆāļąāļ”āļāļēāļĢāļŦāļ™āđˆāļ§āļĒāļ„āļ§āļēāļĄāļˆāļģ

Senior
24 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāđ€āļžāļīāđˆāļĄāļ›āļĢāļ°āļŠāļīāļ—āļ˜āļīāļ āļēāļžāļāļēāļĢāļ—āļģāļ‡āļēāļ™

Senior
22 āļ„āļģāļ–āļēāļĄ

Generics

Senior
20 āļ„āļģāļ–āļēāļĄ

Go Design Patterns

Senior
24 āļ„āļģāļ–āļēāļĄ

Microservices

Senior
24 āļ„āļģāļ–āļēāļĄ

āļ„āļ§āļēāļĄāļ›āļĨāļ­āļ”āļ āļąāļĒāđāļĨāļ°āļāļēāļĢāļĒāļ·āļ™āļĒāļąāļ™āļ•āļąāļ§āļ•āļ™

Senior
24 āļ„āļģāļ–āļēāļĄ

Docker & Containerization

Senior
20 āļ„āļģāļ–āļēāļĄ

Kubernetes Basics

Senior
22 āļ„āļģāļ–āļēāļĄ

Go āļ‚āļąāđ‰āļ™āļŠāļđāļ‡

Senior
20 āļ„āļģāļ–āļēāļĄ

āļāļēāļĢāļžāļąāļ’āļ™āļē CLI

Senior
20 āļ„āļģāļ–āļēāļĄ

āđ€āļŠāļĩāđˆāļĒāļ§āļŠāļēāļ Go āļŠāļģāļŦāļĢāļąāļšāļāļēāļĢāļŠāļąāļĄāļ āļēāļĐāļ“āđŒāļ„āļĢāļąāđ‰āļ‡āļ–āļąāļ”āđ„āļ›

āđ€āļ‚āđ‰āļēāļ–āļķāļ‡āļ„āļģāļ–āļēāļĄāļ—āļąāđ‰āļ‡āļŦāļĄāļ” flashcards āđāļšāļšāļ—āļ”āļŠāļ­āļšāđ€āļ—āļ„āļ™āļīāļ„ āđāļšāļšāļāļķāļāļŦāļąāļ” code review āđāļĨāļ°āļ•āļąāļ§āļˆāļģāļĨāļ­āļ‡āļŠāļąāļĄāļ āļēāļĐāļ“āđŒ

āđ€āļĢāļīāđˆāļĄāđƒāļŠāđ‰āļŸāļĢāļĩ