|
| 1 | +# Дорожня мапа розробника на Go |
| 2 | + |
| 3 | +> Дорожня мапа для того, щоб стати [Go](https://golang.org/) розробником у 2020 році: |
| 4 | +
|
| 5 | +Нижче Ви можете знайти діаграму, яка демонструє шляхи та бібліотеки, які Ви можете вибрати для того, щоб стати Go розробником. Я зробив цю діаграму в якості підказки для всіх, хто запитує мене: «Що я повинен вивчити далі як розробник на Go?» |
| 6 | + |
| 7 | +[English](../../ReadMe.md) |
| 8 | +[中文版](./i18n/zh-CN/ReadMe-zh-CN.md) |
| 9 | +[日本語版](./i18n/ja-JP/ReadMe-ja-JP.md) |
| 10 | +[Versão em Português do Brasil](./i18n/pt-BR/ReadMe-pt-BR.md) |
| 11 | +[한국어](./i18n/ko-KR/ReadMe-ko-KR.md) |
| 12 | +[Русский](./i18n/ru-RU/ReadMe-ru-RU.md) |
| 13 | + |
| 14 | +## Застереження |
| 15 | + |
| 16 | +> Мета цієї дорожньої мапи дати Вам уявлення про світ Go. Вона допоможе Вам, якщо Ви не знаєте що вивчити далі, замість того, щоб спонукати вас до вибору того, що знаходиться у тренді або є модним. Ви повинні розуміти, чому один інструмент підходить для деяких випадків краще, ніж інший. А також розуміти, що інструмент, який знаходиться у тренді, не завжди означає, що він краще підходить для роботи. |
| 17 | +
|
| 18 | +## Дай зірку! :star: |
| 19 | + |
| 20 | +Якщо Вам подобається цей проект або Ви використовуєте його для вивчення, та для побудови власних рішень, поставте йому ��ірку. Дякуємо! |
| 21 | + |
| 22 | +## Дорожня мапа |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | +## Ресурси |
| 27 | + |
| 28 | +1. Передумови |
| 29 | + |
| 30 | + - [Go](https://golangbot.com/) |
| 31 | + - [Go Modules](https://blog.golang.org/using-go-modules) |
| 32 | + - [SQL](https://www.w3schools.com/sql/default.asp) |
| 33 | + |
| 34 | +2. Загальні Навички Розробки |
| 35 | + |
| 36 | + - Вивчіть GIT, створіть кілька репозиторіїв на GitHub, поділіться своїм кодом з іншими людьми |
| 37 | + - Вивчіть протокол HTTP(S), методи запитів (GET, POST, PUT, PATCH, DELETE, OPTIONS) |
| 38 | + - Не бійтесь використовувати Google, [Power Searching with Google](http://www.powersearchingwithgoogle.com/) |
| 39 | + - Прочитайте декілька книг про алгоритми та структури даних |
| 40 | + - Дізнайтеся про реалізацію базової аутентифікації |
| 41 | + - Вивчіть принципи SOLID, архітектурні шаблони та шаблони проектування, і тому подібне... |
| 42 | + - Вивчіть основи тестування ПЗ (Unit, Integration, E2E) |
| 43 | + |
| 44 | +3. Інструменти CLI |
| 45 | + 1. [cobra](https://github.com/spf13/cobra) |
| 46 | + 2. [urfave/cli](https://github.com/urfave/cli) |
| 47 | + |
| 48 | +4. Веб-фреймворки + Маршрутизатори |
| 49 | + |
| 50 | + 1. [Beego](https://github.com/astaxie/beego) |
| 51 | + 2. [Chi](https://github.com/go-chi/chi) |
| 52 | + 3. [Echo](https://github.com/labstack/echo) |
| 53 | + 4. [Fiber](https://github.com/gofiber/fiber) |
| 54 | + 5. [Gin](https://github.com/gin-gonic/gin) |
| 55 | + 6. [Revel](https://github.com/revel/revel) |
| 56 | + |
| 57 | +5. Бази даних |
| 58 | + |
| 59 | + 1. Реляційні |
| 60 | + 1. [SQL Server](https://www.microsoft.com/en-us/sql-server/sql-server-2017) |
| 61 | + 2. [PostgreSQL](https://www.postgresql.org/) |
| 62 | + 3. [MariaDB](https://mariadb.org/) |
| 63 | + 4. [MySQL](https://www.mysql.com/) |
| 64 | + 5. [CockroachDB](https://www.cockroachlabs.com/) |
| 65 | + 2. Хмарні БД |
| 66 | + - [CosmosDB](https://docs.microsoft.com/en-us/azure/cosmos-db) |
| 67 | + - [DynamoDB](https://aws.amazon.com/dynamodb/) |
| 68 | + 3. Пошукові системи |
| 69 | + - [ElasticSearch](https://www.elastic.co/) |
| 70 | + - [Solr](http://lucene.apache.org/solr/) |
| 71 | + - [Sphinx](http://sphinxsearch.com/) |
| 72 | + 4. NoSQL |
| 73 | + - [MongoDB](https://www.mongodb.com/) |
| 74 | + - [Redis](https://redis.io/) |
| 75 | + - [Apache Cassandra](http://cassandra.apache.org/) |
| 76 | + - [RavenDB](https://github.com/ravendb/ravendb) |
| 77 | + - [CouchDB](http://couchdb.apache.org/) |
| 78 | + |
| 79 | +6. ORMs |
| 80 | + |
| 81 | + 1. [Gorm](https://github.com/go-gorm/gorm) |
| 82 | + 2. [Xorm](https://github.com/go-xorm/xorm) |
| 83 | + |
| 84 | +7. Кешування |
| 85 | + |
| 86 | + 1. [GCache](https://github.com/bluele/gcache) |
| 87 | + 2. Розпо��ілений кеш |
| 88 | + 1. [Go-Redis](https://github.com/go-redis/redis) |
| 89 | + 2. [GoMemcached](https://github.com/bradfitz/gomemcache) |
| 90 | + |
| 91 | +8. Логування |
| 92 | + |
| 93 | + 1. Фреймворки |
| 94 | + - [Zap](https://github.com/uber-go/zap) |
| 95 | + - [ZeroLog](https://github.com/rs/zerolog) |
| 96 | + - [Logrus](https://github.com/sirupsen/logrus) |
| 97 | + 2. Система управління журналами |
| 98 | + - [Sentry.io](http://sentry.io) |
| 99 | + - [Loggly.com](https://loggly.com) |
| 100 | + 3. Розподілене трасування |
| 101 | + - [Jaeger](https://www.jaegertracing.io/) |
| 102 | + |
| 103 | +9. Спілкування в Режимі Реального Часу |
| 104 | + 1. [Socket.IO](https://socket.io/) |
| 105 | + |
| 106 | +10. Клієнти API |
| 107 | + |
| 108 | + 1. REST |
| 109 | + - [Gentleman](https://github.com/h2non/gentleman) |
| 110 | + - [GRequests](https://github.com/kennethreitz/grequests) |
| 111 | + - [heimdall](https://github.com/gojek/heimdall) |
| 112 | + 2. [GraphQL](https://graphql.org/) |
| 113 | + - [gqlgen](https://github.com/99designs/gqlgen) |
| 114 | + - [graphql-go](https://github.com/graph-gophers/graphql-go) |
| 115 | + |
| 116 | +11. Добре знати |
| 117 | + |
| 118 | + - [Validator](https://github.com/go-playground/validator) |
| 119 | + - [Glow](https://github.com/pytorch/glow) |
| 120 | + - [GJson](https://github.com/tidwall/gjson) |
| 121 | + - [Authboss](https://github.com/volatiletech/authboss) |
| 122 | + - [Go-Underscore](https://github.com/ahl5esoft/golang-underscore) |
| 123 | + |
| 124 | +12. Тестування |
| 125 | + |
| 126 | + 1. Тестування Unit, Behavior, Integration |
| 127 | + 1. [GoMock](https://github.com/golang/mock) |
| 128 | + 2. [Testify](https://github.com/stretchr/testify) |
| 129 | + 3. [GinkGo](https://github.com/onsi/ginkgo) |
| 130 | + 4. [GoMega](https://github.com/onsi/gomega) |
| 131 | + 5. [GoCheck](https://github.com/go-check/check) |
| 132 | + 6. [GoDog](https://github.com/DATA-DOG/godog) |
| 133 | + 7. [GoConvey](https://github.com/smartystreets/goconvey) |
| 134 | + 8. [Dockertest](https://github.com/ory/dockertest) |
| 135 | + 2. Тестування E2E |
| 136 | + - [Selenium](https://github.com/tebeka/selenium) |
| 137 | + - [Endly](https://github.com/viant/endly) |
| 138 | + |
| 139 | +13. Планування завдань |
| 140 | + |
| 141 | + - [Gron](https://github.com/roylee0704/gron) |
| 142 | + - [JobRunner](https://github.com/bamzi/jobrunner) |
| 143 | + - [Gocron](https://github.com/go-co-op/gocron) |
| 144 | + |
| 145 | +14. Мікросервіси |
| 146 | + |
| 147 | + 1. Брокер Повідомлень |
| 148 | + - [RabbitMQ](https://www.rabbitmq.com/tutorials/tutorial-one-go.html) |
| 149 | + - [Apache Kafka](https://kafka.apache.org/) |
| 150 | + - [ActiveMQ](https://github.com/apache/activemq) |
| 151 | + - [Azure Service Bus](https://docs.microsoft.com/en-us/azure/service-bus-messaging/service-bus-messaging-overview) |
| 152 | + 2. Побудова на Основі Повідомлень |
| 153 | + - [Watermill](https://github.com/ThreeDotsLabs/watermill) |
| 154 | + - [Message-Bus](https://github.com/vardius/message-bus) |
| 155 | + 3. Фреймворки |
| 156 | + - [GoKit](https://github.com/go-kit/kit) |
| 157 | + - [Micro](https://github.com/micro/go-micro) |
| 158 | + - [rpcx](https://github.com/smallnest/rpcx) |
| 159 | + 4. RPC |
| 160 | + - [Protocol Buffers](https://github.com/protocolbuffers/protobuf) |
| 161 | + - [gRPC-Go](https://github.com/grpc/grpc-go) |
| 162 | + - [gRPC-Gateway](https://github.com/grpc-ecosystem/grpc-gateway) |
| 163 | + - [Twirp](https://github.com/twitchtv/twirp) |
| 164 | + |
| 165 | +15. [Go-Patterns](https://github.com/tmrts/go-patterns) |
| 166 | + |
| 167 | +## Підсумки |
| 168 | + |
| 169 | +Якщо Ви вважаєте, що дорожню мапу можна поліпшити, будь ласка, відкрийте запит на злиття (Pull Request) з будь-якими пропозиціями або звітами про помилки. Крім того, я продовжуватиму вдосконалювати репозиторій, тому, можливо, Ви захочете позначити це сховище зірочкою для повторного відвідування. |
| 170 | + |
| 171 | +Ідея дорожньої карти взята у: [ASP.NET Core Developer Roadmap](https://github.com/MoienTajik/AspNetCore-Developer-Roadmap) |
| 172 | + |
| 173 | +## Внесок |
| 174 | + |
| 175 | +Дорожня мапа побудована з використанням [Draw.io](https://www.draw.io/). Файл проекту `golang-developer-roadmap-uk-UA.xml`. Щоб модифікувати його, відкрийте draw.io, натисніть **Відкрийте існуючу діаграму** та виберіть `xml` файл с проектом. Таким чином, Ви відкриєте дорожню мапу. Оновіть її та завантажте оновлене зображення в Readme (експортуйте PNG з масштабом 400% а також стисніть його за допомогою [Compressor.io](https://compressor.io/compress)). |
| 176 | + |
| 177 | +- Відкрийте пул-реквест c поліпшеннями |
| 178 | +- Обговоріть ідею в Issues |
| 179 | +- Поширюйте знайомим |
| 180 | + |
| 181 | +## Ліцензія |
| 182 | + |
| 183 | +[](https://creativecommons.org/licenses/by-nc-sa/4.0/) |
0 commit comments