↪️ Мой аналог The GO Playground
Под данным катом описано как я создал свой аналог The GO Playground. Это было сделано исключительно по собственному желанию в образовательных целях. Ссылка на репозиторий.
Кодовая база проекта традиционно состоит из фронта и бэка. В качестве языка бэка используется Go, на фронте JS + jQuery.
В моей реализации реактивная отправка данных на фронт осуществляется с помощью протокола WS, а получение исходного кода по ссылке с помощью HTTP. Для роутинга в приложении я использовал httprouter. Изначально я использовал html/template и автообновление блоков HTML c помощью функции load(), но потом отошел от этой идеи ввиду некоторых сложностей реализации.
На самом деле оригинальная платформа сделана очень хитрым образом с точки зрения использования ресурсов системы. Если в пользовательской программе используются конструкции задержки по типу time.Sleep, программа на самом деле не спит, а выполняет свой код непрерывно, минуя задержки. А на выходе генерируется последовательность байт с учетом задержки, которую фронт отрабатывает таким образом, что пользователь не видит разницы. Создается ощущение, что программа запущена локально. Для безопасной работы с сетью и файловой системой используются некоторые трюки, про все подробности, используемые в The GO Playground можно почитать по ссылке. Оригинальный код платформы по ссылке.
Домашняя страница выглядит весьма минималистично, на выбор представлено пару тестовых программ. Блок ввода кода, блок результата выполнения программы.
➡️ Читать
⚙️ Github
@Golang_google
Под данным катом описано как я создал свой аналог The GO Playground. Это было сделано исключительно по собственному желанию в образовательных целях. Ссылка на репозиторий.
Кодовая база проекта традиционно состоит из фронта и бэка. В качестве языка бэка используется Go, на фронте JS + jQuery.
В моей реализации реактивная отправка данных на фронт осуществляется с помощью протокола WS, а получение исходного кода по ссылке с помощью HTTP. Для роутинга в приложении я использовал httprouter. Изначально я использовал html/template и автообновление блоков HTML c помощью функции load(), но потом отошел от этой идеи ввиду некоторых сложностей реализации.
На самом деле оригинальная платформа сделана очень хитрым образом с точки зрения использования ресурсов системы. Если в пользовательской программе используются конструкции задержки по типу time.Sleep, программа на самом деле не спит, а выполняет свой код непрерывно, минуя задержки. А на выходе генерируется последовательность байт с учетом задержки, которую фронт отрабатывает таким образом, что пользователь не видит разницы. Создается ощущение, что программа запущена локально. Для безопасной работы с сетью и файловой системой используются некоторые трюки, про все подробности, используемые в The GO Playground можно почитать по ссылке. Оригинальный код платформы по ссылке.
Домашняя страница выглядит весьма минималистично, на выбор представлено пару тестовых программ. Блок ввода кода, блок результата выполнения программы.
➡️ Читать
⚙️ Github
@Golang_google
🔥 Полезная подборка каналов
🦫 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🦾 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
🐍 Python
@pythonl – python для датасаентиста
@pro_python_code – python на русском
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
🐧 Linux
@inux_kal - чат kali linux
@inuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🔋 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
💡 Javascript / front
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
☕️ Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
🦫 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🦾 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
🐍 Python
@pythonl – python для датасаентиста
@pro_python_code – python на русском
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
🐧 Linux
@inux_kal - чат kali linux
@inuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🔋 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
💡 Javascript / front
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
☕️ Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
🍸 Как построить масштабируемый API на Go с помощью Gin
Что такое Gin?
Gin — это самый популярный высокопроизводительный фреймворк для Go (Golang), с помощью которого можно создавать веб-приложения. Если вы знакомы с ExpressJS, то Gin очень на него похож, и работать вам с ним будет довольно удобно.
Что мы будем создавать?
Проект у нас будет стандартный. Мы создадим простой API для работы с книгами. Не волнуйтесь, хоть ваш проект и будет основан на масштабируемом подходе, сам API окажется довольно простым, и проблем с пониманием процесса не возникнет.
Что необходимо?
Вам потребуется базовое понимание Go. Лично я в качестве редактора кода использую Visual Studio Code, вы же вольны выбирать на свое усмотрение. Только имейте ввиду, что в статье вам встретится команда code . — это собственная команда VSCode, которая открывает в редакторе текущий каталог.
➡️ Читать
⚙️ Github
@Golang_google
Что такое Gin?
Gin — это самый популярный высокопроизводительный фреймворк для Go (Golang), с помощью которого можно создавать веб-приложения. Если вы знакомы с ExpressJS, то Gin очень на него похож, и работать вам с ним будет довольно удобно.
Что мы будем создавать?
Проект у нас будет стандартный. Мы создадим простой API для работы с книгами. Не волнуйтесь, хоть ваш проект и будет основан на масштабируемом подходе, сам API окажется довольно простым, и проблем с пониманием процесса не возникнет.
Что необходимо?
Вам потребуется базовое понимание Go. Лично я в качестве редактора кода использую Visual Studio Code, вы же вольны выбирать на свое усмотрение. Только имейте ввиду, что в статье вам встретится команда code . — это собственная команда VSCode, которая открывает в редакторе текущий каталог.
➡️ Читать
⚙️ Github
@Golang_google
This media is not supported in your browser
VIEW IN TELEGRAM
🎇 Echelon
Кросс-платформенная библиотека для организации логов в иерархической структуре
Настраиваемый и работает с любым терминалом, совместимым с VT100. Может использоваться из нескольких горутинов
⤷ Ссылка на проект
#Go #Windows #Logging #Useful
@Golang_google
Кросс-платформенная библиотека для организации логов в иерархической структуре
Настраиваемый и работает с любым терминалом, совместимым с VT100. Может использоваться из нескольких горутинов
⤷ Ссылка на проект
#Go #Windows #Logging #Useful
@Golang_google
🐳 Руководство по Docker для аналитика даннных.
Представьте, как вы устанавливаете программное обеспечение, требующее установку всех его зависимостей. Придется столкнуться со множеством ошибок, вручную выяснить и устранить все их причины. Каждый раз — попытки запустить всю систему заново, чтобы наконец-то правильно завершить установку… Именно в этот момент на помощь приходит Docker, пытаясь серьезно облегчить жизнь.
Содержание статьи:
1. Образы и контейнеры.
2. Запуск первой программы в Docker.
3. Основные команды контейнеров Docker.
4. Командная строка Docker-контейнера.
5. Пользовательские образы Docker.
6. Запуск веб-приложения в Docker.
7. Docker и сопоставление портов.
8. Выводы.
➡️ Читать дальше
@Golang_google
Представьте, как вы устанавливаете программное обеспечение, требующее установку всех его зависимостей. Придется столкнуться со множеством ошибок, вручную выяснить и устранить все их причины. Каждый раз — попытки запустить всю систему заново, чтобы наконец-то правильно завершить установку… Именно в этот момент на помощь приходит Docker, пытаясь серьезно облегчить жизнь.
Содержание статьи:
1. Образы и контейнеры.
2. Запуск первой программы в Docker.
3. Основные команды контейнеров Docker.
4. Командная строка Docker-контейнера.
5. Пользовательские образы Docker.
6. Запуск веб-приложения в Docker.
7. Docker и сопоставление портов.
8. Выводы.
➡️ Читать дальше
@Golang_google
modgv – инструмент, который позволяет отрендерить граф зависимостей вашего go-проекта
Позволяет конвертировать 'go mod graph' в Graphviz представление с возможностью сохранения в png
⤷ Ссылка на проект
@Golang_google | #Interesting #Go #Graph
Позволяет конвертировать 'go mod graph' в Graphviz представление с возможностью сохранения в png
⤷ Ссылка на проект
@Golang_google | #Interesting #Go #Graph
📌 Golang RPC и все-все-все…
Disclaimer: this is not another one gRPC hate article... Oh, whait...
Начнем издалека - знаете, всегда было интересно, а почему, собственно, для golang существует такое большое разнообразие библиотек, для каких-то часто используемых сущностей, как-то - роутеры http (fasthttprouter забыли, как подсказали в коментах) или cache?
С выбором RPC вроде все просто, gRPC - наше всё (вы, кстати, в курсе, что g здесь - это не Google внезапно). Но не тут-то было...
Все просто без ума от Мэри gRPC (нет).
Начнем с того, что в golang изначально реализовали net/rpc со своим сериализатором gob. Типа есть потребность - в golang есть решение из коробки (так же история, что и с роутером http - он есть, но все используют сторонние решения из-за параметризованных путей запросов). И тут засада - этот rpc можно только между golang приложениями использовать. Потом выкатили gRPC и все заверте... Вкратце - gRPC использует http/2 и protobuf для сериализации (запомним, rpc - это протокол обмена плюс сериализатор). Причем gRPC реализация доступна для многих языков, фактически нет привязки, на чем писать клиентскую и серверную часть. So far, so good...
Однако не все так гладко... Понятно стремление Google объять все возможные кейсы, но! К оригинальной реализации gRPC со временем появилось куча вопросов. Иначе как объяснить, что куча контор начали пилить свои собственные реализации RPC (и/или сериализаторов)? Также, внезапно, выяснилось, что требования к RPC внутри облака (читай между микросервисами) и RPC между клиентами за пределами облака/датацентра и сервисами внутри него (за ingress/proxy/load balancer - как хотите называйте) как бы "немножко" разные? Да и выбор http/2 в качестве транспорта - ну кто-же знал, что внедрёж пойдет не так (быстро), как ожидалось.
➡️ Читать
@Golang_google
Disclaimer: this is not another one gRPC hate article... Oh, whait...
Начнем издалека - знаете, всегда было интересно, а почему, собственно, для golang существует такое большое разнообразие библиотек, для каких-то часто используемых сущностей, как-то - роутеры http (fasthttprouter забыли, как подсказали в коментах) или cache?
С выбором RPC вроде все просто, gRPC - наше всё (вы, кстати, в курсе, что g здесь - это не Google внезапно). Но не тут-то было...
Все просто без ума от Мэри gRPC (нет).
Начнем с того, что в golang изначально реализовали net/rpc со своим сериализатором gob. Типа есть потребность - в golang есть решение из коробки (так же история, что и с роутером http - он есть, но все используют сторонние решения из-за параметризованных путей запросов). И тут засада - этот rpc можно только между golang приложениями использовать. Потом выкатили gRPC и все заверте... Вкратце - gRPC использует http/2 и protobuf для сериализации (запомним, rpc - это протокол обмена плюс сериализатор). Причем gRPC реализация доступна для многих языков, фактически нет привязки, на чем писать клиентскую и серверную часть. So far, so good...
Однако не все так гладко... Понятно стремление Google объять все возможные кейсы, но! К оригинальной реализации gRPC со временем появилось куча вопросов. Иначе как объяснить, что куча контор начали пилить свои собственные реализации RPC (и/или сериализаторов)? Также, внезапно, выяснилось, что требования к RPC внутри облака (читай между микросервисами) и RPC между клиентами за пределами облака/датацентра и сервисами внутри него (за ingress/proxy/load balancer - как хотите называйте) как бы "немножко" разные? Да и выбор http/2 в качестве транспорта - ну кто-же знал, что внедрёж пойдет не так (быстро), как ожидалось.
➡️ Читать
@Golang_google
fzf – терминальная утилита, которая представляет из себя интерактивный фильтр Unix для командной строки
Можно использовать с любым списком: файлы, история комманд, процессы, имена хостов, закладки, история git-коммов и т. д.
⤷ Ссылка на проект
@Golang_google | #Interesting #Ruby #Go #Terminal
Можно использовать с любым списком: файлы, история комманд, процессы, имена хостов, закладки, история git-коммов и т. д.
⤷ Ссылка на проект
@Golang_google | #Interesting #Ruby #Go #Terminal
✔️ [Golang] Ошибки, которые нельзя обработать
Паника в горутине
Если мы в обработчике будем использовать горутину, которая по каким-то причинам вызвала панику, Golang не сможет обработать эту панику и приложение упадет с ошибкой и все запросы, которые сейчас обрабатывает сервис оборвутся.
Eсли написать примерно вот такой код
То при вызове функции CreateUser сервис упадет.
Для того, что бы исправить это, нужно обрабатывать паники в каждой горутине
➡️ Читать дальше
@Golang_google
Паника в горутине
Если мы в обработчике будем использовать горутину, которая по каким-то причинам вызвала панику, Golang не сможет обработать эту панику и приложение упадет с ошибкой и все запросы, которые сейчас обрабатывает сервис оборвутся.
Eсли написать примерно вот такой код
type User struct {
Email string
}
func UpsertUser(r *http.Request) (User, error) {
return User{}, nil
}
func SendEmail(u User) {
panic("sending email is not implemented")
}
func CreateUser(w http.ResponseWriter, r *http.Request) {
user, err := UpsertUser(r)
if err != nil {
// handling error
}
go func() {
SendEmail(user)
// may be something else
}()
}
То при вызове функции CreateUser сервис упадет.
Для того, что бы исправить это, нужно обрабатывать паники в каждой горутине
➡️ Читать дальше
@Golang_google
UseStdLibVars: используйте переменные стандартных библиотек
Go-разработчики часто пишут свои собственные переменные или константы, а затем используют их в коде, который обращается к стандартной библиотеке. Поэтому наш Go-разработчик Саша Мелентьев создал линтер usestdlibvars, который определяет, можно ли повторно использовать переменные или константы из стандартной библиотеки, вместо того чтобы создавать собственные.
Например, вы создаете запрос. Он должен использовать какой-то метод, например, getpost, в этом случае многие разработчики так и пишут — get. Но вместо этого вы можете использовать константу из стандартной библиотеки. Вам не придётся писать лишний код, линтер сэкономит ваше время.
К примеру, вместо http.NewRequest("GET", "", nil) можете использовать http.NewRequest(http.MethodGet, "", nil) — линтер это подсветит.
Важно то, что в стандартной библиотеке много различных переменных, которые можно использовать повторно, но они не всегда подходят. Согласно стандарту, в наш линтер включены только две опции (например, проверка, связанная с внутренней библиотекой http), чтобы не было ложных срабатываний.
Название линтера, UseStdLibVars, по сути, является призывом к действию «Используйте переменные стандартных библиотек». Линтер уже включен в golangci-lint.
➡️ Читать дальше
@Golang_google
Go-разработчики часто пишут свои собственные переменные или константы, а затем используют их в коде, который обращается к стандартной библиотеке. Поэтому наш Go-разработчик Саша Мелентьев создал линтер usestdlibvars, который определяет, можно ли повторно использовать переменные или константы из стандартной библиотеки, вместо того чтобы создавать собственные.
Например, вы создаете запрос. Он должен использовать какой-то метод, например, getpost, в этом случае многие разработчики так и пишут — get. Но вместо этого вы можете использовать константу из стандартной библиотеки. Вам не придётся писать лишний код, линтер сэкономит ваше время.
К примеру, вместо http.NewRequest("GET", "", nil) можете использовать http.NewRequest(http.MethodGet, "", nil) — линтер это подсветит.
Важно то, что в стандартной библиотеке много различных переменных, которые можно использовать повторно, но они не всегда подходят. Согласно стандарту, в наш линтер включены только две опции (например, проверка, связанная с внутренней библиотекой http), чтобы не было ложных срабатываний.
Название линтера, UseStdLibVars, по сути, является призывом к действию «Используйте переменные стандартных библиотек». Линтер уже включен в golangci-lint.
go install github.com/sashamelentyev/usestdlibvars@latest
➡️ Читать дальше
@Golang_google
English for Developers - канал для тех, кто хочет учить технический английский. От создатателей популярного ит-канала Data analysis.
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
1. техническая лексика
2. опросы на английском
3. шутки на английском
Подписывайтесь, проходите опросы, читайте полезные прогерские фразы на английском: english_forprogrammers.
1 канал вместо тысячи учебников и курсов
✔️ chi
Подробный гайд по интеграции JWT-аутентификации в приложение на Go + chi с использованием chi jwtauth middleware.
⚙️ Github
🗒 Гайд
@Golang_google
Подробный гайд по интеграции JWT-аутентификации в приложение на Go + chi с использованием chi jwtauth middleware.
⚙️ Github
🗒 Гайд
@Golang_google
devdash – настраиваемая панель инструментов в терминале для отображения актуальных метрик в одном месте
⤷ Ссылка на проект
@Golang_google | #Interesting #Go
⤷ Ссылка на проект
@Golang_google | #Interesting #Go
💻 Создайте собственный линтер Go за 5 минут
Создание пользовательского линтера может быть отличным способом обеспечить соблюдение стандартов кодинга и обнаружить ошибки в коде. В этом руководстве мы будем использовать Sylver, чтобы создать собственный линтер Golang всего за несколько строк кода.
➡️ Читать дальше
@Golang_google
Создание пользовательского линтера может быть отличным способом обеспечить соблюдение стандартов кодинга и обнаружить ошибки в коде. В этом руководстве мы будем использовать Sylver, чтобы создать собственный линтер Golang всего за несколько строк кода.
➡️ Читать дальше
@Golang_google
✔️ Serverless Userpics
🚀 Generate avatars on the fly
🎨 100 avatars included from Craftwork.design (I'm not affiliated with them, just a fan)
🎨 Abstraction over Boring Avatars included as well.
✨ Tiny as fuck.
✨ Serverless. Configurable. Easily deployable.
⚙️ Github
@Golang_google
🚀 Generate avatars on the fly
🎨 100 avatars included from Craftwork.design (I'm not affiliated with them, just a fan)
🎨 Abstraction over Boring Avatars included as well.
✨ Tiny as fuck.
✨ Serverless. Configurable. Easily deployable.
⚙️ Github
@Golang_google
GitHub
GitHub - DevClad-Inc/serverless-userpics: ⚡ Instantly get user avatars via 1 API call. Ready to use. 100 artsy avatars included.…
⚡ Instantly get user avatars via 1 API call. Ready to use. 100 artsy avatars included. Made open-source by DevClad. - GitHub - DevClad-Inc/serverless-userpics: ⚡ Instantly get user avatars via 1 A...
Golang-дайджест № 21 (1 – 30 сентября 2022)
Новости, события
- Выпущены версии 1.19.1 и 1.18.6
- Второстепенные выпуски версий 1.19.2 и 1.18.7 предварительно объявлены на 4 октября
- GopherCon Europe 2022
- GopherCon UK 2022
- Чистый код в Go
- Обсуждение обратной совместимости в Go
- Новый инструмент управления уязвимостями go:govulncheck
- Результаты Go Developer Survey 2022 Q2
- Планирование работы над криптографией Go 1.20
➡️ Читать дальше
@Golang_google
Новости, события
- Выпущены версии 1.19.1 и 1.18.6
- Второстепенные выпуски версий 1.19.2 и 1.18.7 предварительно объявлены на 4 октября
- GopherCon Europe 2022
- GopherCon UK 2022
- Чистый код в Go
- Обсуждение обратной совместимости в Go
- Новый инструмент управления уязвимостями go:govulncheck
- Результаты Go Developer Survey 2022 Q2
- Планирование работы над криптографией Go 1.20
➡️ Читать дальше
@Golang_google
В процессе знакомства с Go я нашел в документации пример:
func returnsError() error {
var p *MyError = nil
if bad() {
p = ErrBad
}
return p // Will always return a non-nil error.
}
После его просмотра меня заинтересовало, почему returnsError всегда будет возвращать не non-nil error?
Переменные в Go всегда инициализируются значением. Это относится и к интерфейсам. Стоит отметить, что интерфейсы реализованы в виде двух элементов: тип(T) и значение(V). Это достаточно поверхностное определение, которое чуть дальше мы разберем. Значение интерфейса будет nilтолько в том случае, если Vи T оба будут nil.
Есть интересный момент, а именно случай, когда V=nil, а T!=nil. В таком случае никакие проверки интерфейса на nil нам не помогут. А ведь именно этот сценарий и происходит в returnsError.
Мне стало интересно, как именно эти проверки проходят в Go.
type Word struct {
name string
priority uint
}
type Foo interface {
foo()
}
func (w *Word) foo() {
fmt.Println("call foo()")
}
func (w *Word) noFoo() {
fmt.Println("call noFoo()")
}
func call(f Foo) {
if f != nil {
f.foo()
} else {
fmt.Println("f null")
}
}
func main() {
var f1 *Word
call(f1)
}
➡️ Читать дальше
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥 Полезнейшая Подборка каналов
👣 Golang
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
🖥 Python
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
🖥 Machine learning
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
🖥 Java
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
🖥 Javascript / front
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
🖥 Linux
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
🖥 SQL
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
📢 English for coders
@english_forprogrammers - Английский для программистов
🖥 Github
@github_code
@golang_interview - вопросы и ответы с собеседований по Go. Для всех уровней разработчиков.
@Golang_google - go для разработчиков
@golangtests - тесты и задачи GO
@golangl - чат Golang
@GolangJobsit - вакансии и работа GO
@golang_jobsgo - чат вакансий
@golang_books - книги Golang
@golang_speak - обсуждение задач Go
@pro_python_code – погружение в python
@python_job_interview – подготовка к Python собеседованию
@python_testit тесты на python
@pythonlbooks - книги Python
@Django_pythonl django
@python_djangojobs - работа Python
@python_django_work
@ai_machinelearning_big_data – все о машинном обучении
@data_analysis_ml – все о анализе данных.
@machinelearning_ru – машинное обучении на русском от новичка до профессионала.
@machinelearning_interview – подготовка к собеседования Data Science
@datascienceiot – бесплатные книги Machine learning
@ArtificialIntelligencedl – канал о искусственном интеллекте
@neural – все о нейронных сетях
@machinee_learning – чат о машинном обучении
@datascienceml_jobs - работа ds, ml
@Machinelearning_Jobs
@javatg - Java для програмистов
@javachats Java чат
@java_library - книги Java
@android_its Android разработка
@java_quizes - тесты Java
@Java_workit - работа Java
@progersit - шпаргалки ит
@javascriptv - javascript изучение
@about_javascript - javascript продвинутый
@JavaScript_testit -тесты JS
@htmlcssjavas - web
@hashdev - web разработка
@linux_kal - чат kali linux
@linuxkalii - linux kali
@linux_read - книги linux
👷♂️ IT работа
@hr_itwork - ит-ваканнсии
@sqlhub - базы данных
@chat_sql - базы данных чат
🤡It memes
@memes_prog - ит-мемы
⚙️ Rust
@rust_code - язык программирования rust
@rust_chats - чат rust
#️⃣ c# c++
@csharp_ci - c# c++кодинг
@csharp_cplus чат
📓 Книги
@programming_books_it
@datascienceiot
@pythonlbooks
@golang_books
@frontendbooksit
@progersit
@linux_read
@java_library
@frontendbooksit
@english_forprogrammers - Английский для программистов
@github_code
Please open Telegram to view this post
VIEW IN TELEGRAM
Непрерывно собирает ваши ветки git, такие как CI-сервер, чтобы вы могли начать работу с кодом прямо сейчас - больше не нужно ждать загрузок зависимостей и завершения сборки
@Golang_google | #Go #Automation
Please open Telegram to view this post
VIEW IN TELEGRAM
Fyne - это open-source библиотека для очень простого и быстрого создания кросс-платформенных приложений на Golang
Здесь можно вполне понять для чего нужен fyne, от себя могу сказать, что это очень простая библиотека для пользования, чтобы начать писать на ней программы с графическим интерфейсом не нужно никаких знаний
Можно глянуть одним глазком там довольно медленно и только совсем про базу рассказано, поэтому использовать можно как справочник, когда быстро набрасываешь свой первый интерфейс
@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM