Golang: различия между версиями
Перейти к навигации
Перейти к поиску
Artem (обсуждение | вклад) |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 40 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
* https://golang.org/doc/install | * [https://golang.org/doc/install Установка] | ||
* [[: | * [https://go-tour-ru-ru.appspot.com/welcome/1 Тур на русском] | ||
* [https://habr.com/ru/post/249545/ GOPATH и GOROOT] | |||
* http://golang-book.ru/ | |||
* https://gobyexample.com/ | |||
* https://www.golangprograms.com/ | |||
* https://awesome-go.com/ | |||
* [https://habr.com/ru/articles/654569/ Собеседование Golang разработчика (теоретические вопросы), Часть I] | |||
** [https://habr.com/ru/companies/nixys/articles/492056/ 4 примера iota-перечислений] | |||
* [https://habr.com/ru/articles/670974/ Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?] | |||
** [https://gobyexample.com/waitgroups Go by Example: WaitGroups] | |||
* Книга 100 ошибок Go и как их избежать ISBN:978-5-4461-2058-1 | |||
* [https://habr.com/ru/articles/490336/ Анатомия каналов в Go] | |||
* [https://dzen.ru/a/ZT37Gzpya2uEvz9L #3 Аксиомы каналов в Go] | |||
* [https://habr.com/ru/articles/743266/ Про планировщик] P, M, G | |||
* [https://habr.com/ru/articles/457728/ Про MAP] | |||
* [https://www.youtube.com/watch?v=eOyxRI8FQm4 Вопрос по Golang на миллион долларов] | |||
* [https://www.youtube.com/watch?v=10LW7NROfOQ GoLang Slice в деталях, простым языком] | |||
* [https://www.youtube.com/watch?v=P_SXTUiA-9Y Как на самом деле устроен тип Map в Golang? | Golang под капотом] | |||
* [https://www.youtube.com/watch?v=ZTJcaP4G4JM Как на самом деле устроены каналы в Golang? | Golang channels internals] | |||
* https://gobyexample.com/generics | |||
* https://go.dev/doc/tutorial/generics | |||
= Roadmap = | = Roadmap = | ||
* Go | * '''Go''' | ||
** GO CLI | ** GO CLI | ||
** Variables, Constants, Types, Function, Packages, etc | ** Variables, Constants, Types, Function, Packages, etc | ||
Строка 13: | Строка 33: | ||
** Defer, Error, Panic, Recover | ** Defer, Error, Panic, Recover | ||
* Go Modules | * '''Go Modules''' | ||
** Learn Go dependecy management tool | ** Learn Go dependecy management tool | ||
** semantic versioning | ** semantic versioning | ||
** Version, scripts and other Properties | ** Version, scripts and other Properties | ||
* SQL fundamentals | * '''SQL fundamentals''' | ||
** Basic Sql Syntax | ** Basic Sql Syntax | ||
* General Development Skills | * '''General Development Skills''' | ||
** GIT | ** GIT | ||
** HTTP/HTTPS | ** HTTP/HTTPS | ||
Строка 29: | Строка 49: | ||
** SOLID, YAGNI, KISS | ** SOLID, YAGNI, KISS | ||
* '''CLI''' | |||
** cobra | |||
** urfave/cli | |||
* '''Web Frameworks + Routers''' | |||
** Echo | |||
** Beego | |||
** Gin | |||
** Revel | |||
** Chi | |||
** | * '''ORMs''' | ||
** | ** Gorm | ||
** | ** Xorm | ||
* '''Databases''' | |||
** Relational | |||
*** PostgreSQL | |||
*** MySQL | |||
*** SQL Server | |||
*** CockrachDB | |||
*** MariaDB | |||
** NoSQL | |||
*** MongoDB | |||
*** Redis | |||
*** Apache Cassandra | |||
*** RavenDB | |||
*** CouchDB | |||
** Search Engines | |||
*** ElasticSearch | |||
*** Solr | |||
*** Sphinx | |||
** Cloud Databases | |||
*** Azure CosmosDB | |||
*** Amazon DynamoDB | |||
* '''Caching''' | |||
** GCache | |||
** Distributed Cache | |||
*** Go-Redis | |||
*** GoMemcache | |||
* '''Logging''' | |||
** Log Frameworks | |||
*** Zap | |||
*** Logrus | |||
*** ZeroLog | |||
** Distributed Tracing | |||
*** Jaeger | |||
** Log Management System | |||
*** Sentry.io | |||
*** loggly.com | |||
* '''Real-Time Communication''' | |||
** Melody | |||
** Centrifugo | |||
* '''API Clients''' | |||
** REST | |||
*** Gentelman | |||
*** GRequests | |||
*** Heimdail | |||
** GraphQL | |||
*** gqlgen | |||
*** graphql-go | |||
* '''Testing''' | |||
** Unit Testing | |||
*** Frameworks, Assertion | |||
**** Testify | |||
**** Ginkgo | |||
**** GoMega | |||
**** GoCheck | |||
*** Mocking | |||
**** GoMock | |||
*** Behavior Testing | |||
**** GoDog | |||
**** GoConvey | |||
**** GinkGo | |||
*** Integration Testing | |||
**** Testify | |||
**** GinkGo | |||
*** E2E Testing | |||
**** Selenium | |||
**** Endly | |||
* '''Good to Know Libraries''' | |||
** Validator | |||
** Glow | |||
** GJson | |||
** Authboss | |||
** Go-Underscore | |||
* '''MicroServices''' | |||
** Message-Broker | |||
*** RabbitMQ | |||
*** Apache Kafka | |||
*** ActiveMQ | |||
*** Azure Service Bus | |||
** Building event-driven | |||
*** Watermill | |||
*** Message-Bus | |||
** Frameworks | |||
*** rpcx | |||
*** Go-kit | |||
*** Micro | |||
** RPC | |||
*** Protocol Buffers | |||
*** gRPC-Go | |||
*** gRPC-gateway | |||
*** twirp | |||
* '''Task Scheduling''' | |||
** gron | |||
** jobrunner | |||
* '''Go Patterns''' | |||
** Creational | |||
** Structural | |||
** Behavioral | |||
** syncronization | |||
** Concurrency | |||
** Messaging | |||
** Stability | |||
= Уроки = | = Уроки = | ||
* https://www.youtube.com/watch?v=9Pk7xAT_aCU | * https://www.youtube.com/watch?v=9Pk7xAT_aCU | ||
= Private repo = | |||
<pre> | |||
git config --global --add url."artem@artem2.aleksashkin.net:projects/repo/docker/repos/core".insteadOf "https://repo.aleksashkin.net/core" | |||
export GOPRIVATE=repo.aleksashkin.net/core | |||
</pre> | |||
and https://repo.aleksashkin.net/core?go-get=1 should return (error fix go: errors parsing go.mod: go.mod unrecognized import path "repo.aleksashkin.net/core": parse https://repo.aleksashkin.net/core?go-get=1: no go-import meta tags ()) | |||
also check this https://pkg.go.dev/rsc.io/go-import-redirector | |||
<pre> | |||
<!DOCTYPE html> | |||
<html> | |||
<head> | |||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> | |||
<meta name="go-import" content="repo.aleksashkin.net/core git https://repo.aleksashkin.net/core"> | |||
<meta http-equiv="refresh" content="0; url=https://pkg.go.dev/repo.aleksashkin.net/core.git"> | |||
</head> | |||
<body> | |||
Redirecting to docs at <a href="https://pkg.go.dev/repo.aleksashkin.net/core.git">pkg.go.dev/repo.aleksashkin.net/core.git</a>... | |||
</body> | |||
</pre> | |||
Should work after | |||
<pre> | |||
git clone https://repo.aleksashkin.net/core | |||
git clone artem@artem2.aleksashkin.net:projects/repo/docker/repos/core | |||
go get repo.aleksashkin.net/core | |||
</pre> |
Текущая версия от 14:34, 23 сентября 2024
- Установка
- Тур на русском
- GOPATH и GOROOT
- http://golang-book.ru/
- https://gobyexample.com/
- https://www.golangprograms.com/
- https://awesome-go.com/
- Собеседование Golang разработчика (теоретические вопросы), Часть I
- Собеседование Golang разработчика (теоретические вопросы), Часть II. Что там с конкурентностью?
- Книга 100 ошибок Go и как их избежать ISBN:978-5-4461-2058-1
- Анатомия каналов в Go
- #3 Аксиомы каналов в Go
- Про планировщик P, M, G
- Про MAP
- Вопрос по Golang на миллион долларов
- GoLang Slice в деталях, простым языком
- Как на самом деле устроен тип Map в Golang? | Golang под капотом
- Как на самом деле устроены каналы в Golang? | Golang channels internals
- https://gobyexample.com/generics
- https://go.dev/doc/tutorial/generics
Roadmap
- Go
- GO CLI
- Variables, Constants, Types, Function, Packages, etc
- Array & Slices
- Pointers, Structures, Methods
- Interface
- GoRutine, Channel, Buffer, Select, Mutex
- Defer, Error, Panic, Recover
- Go Modules
- Learn Go dependecy management tool
- semantic versioning
- Version, scripts and other Properties
- SQL fundamentals
- Basic Sql Syntax
- General Development Skills
- GIT
- HTTP/HTTPS
- Data Structures and Algorithms
- Scrum, Kanban or other project strategies
- Basic Authentication, OAuth, JWT, etc
- SOLID, YAGNI, KISS
- CLI
- cobra
- urfave/cli
- Web Frameworks + Routers
- Echo
- Beego
- Gin
- Revel
- Chi
- ORMs
- Gorm
- Xorm
- Databases
- Relational
- PostgreSQL
- MySQL
- SQL Server
- CockrachDB
- MariaDB
- NoSQL
- MongoDB
- Redis
- Apache Cassandra
- RavenDB
- CouchDB
- Search Engines
- ElasticSearch
- Solr
- Sphinx
- Cloud Databases
- Azure CosmosDB
- Amazon DynamoDB
- Relational
- Caching
- GCache
- Distributed Cache
- Go-Redis
- GoMemcache
- Logging
- Log Frameworks
- Zap
- Logrus
- ZeroLog
- Distributed Tracing
- Jaeger
- Log Management System
- Sentry.io
- loggly.com
- Log Frameworks
- Real-Time Communication
- Melody
- Centrifugo
- API Clients
- REST
- Gentelman
- GRequests
- Heimdail
- GraphQL
- gqlgen
- graphql-go
- REST
- Testing
- Unit Testing
- Frameworks, Assertion
- Testify
- Ginkgo
- GoMega
- GoCheck
- Mocking
- GoMock
- Behavior Testing
- GoDog
- GoConvey
- GinkGo
- Integration Testing
- Testify
- GinkGo
- E2E Testing
- Selenium
- Endly
- Frameworks, Assertion
- Unit Testing
- Good to Know Libraries
- Validator
- Glow
- GJson
- Authboss
- Go-Underscore
- MicroServices
- Message-Broker
- RabbitMQ
- Apache Kafka
- ActiveMQ
- Azure Service Bus
- Building event-driven
- Watermill
- Message-Bus
- Frameworks
- rpcx
- Go-kit
- Micro
- RPC
- Protocol Buffers
- gRPC-Go
- gRPC-gateway
- twirp
- Message-Broker
- Task Scheduling
- gron
- jobrunner
- Go Patterns
- Creational
- Structural
- Behavioral
- syncronization
- Concurrency
- Messaging
- Stability
Уроки
Private repo
git config --global --add url."artem@artem2.aleksashkin.net:projects/repo/docker/repos/core".insteadOf "https://repo.aleksashkin.net/core" export GOPRIVATE=repo.aleksashkin.net/core
and https://repo.aleksashkin.net/core?go-get=1 should return (error fix go: errors parsing go.mod: go.mod unrecognized import path "repo.aleksashkin.net/core": parse https://repo.aleksashkin.net/core?go-get=1: no go-import meta tags ())
also check this https://pkg.go.dev/rsc.io/go-import-redirector
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta name="go-import" content="repo.aleksashkin.net/core git https://repo.aleksashkin.net/core"> <meta http-equiv="refresh" content="0; url=https://pkg.go.dev/repo.aleksashkin.net/core.git"> </head> <body> Redirecting to docs at <a href="https://pkg.go.dev/repo.aleksashkin.net/core.git">pkg.go.dev/repo.aleksashkin.net/core.git</a>... </body>
Should work after
git clone https://repo.aleksashkin.net/core git clone artem@artem2.aleksashkin.net:projects/repo/docker/repos/core go get repo.aleksashkin.net/core