37.1K subscribers
1.46K photos
33 videos
5 files
1.62K links
加入频道
✔️ chi

Подробный гайд по интеграции JWT-аутентификации в приложение на Go + chi с использованием chi jwtauth middleware.

⚙️ Github
🗒 Гайд

@Golang_google
devdash – настраиваемая панель инструментов в терминале для отображения актуальных метрик в одном месте

Ссылка на проект

@Golang_google | #Interesting #Go
💻 Создайте собственный линтер Go за 5 минут

Создание пользовательского линтера может быть отличным способом обеспечить соблюдение стандартов кодинга и обнаружить ошибки в коде. В этом руководстве мы будем использовать 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
🖥 Анатомия интерфейсов в Go

В процессе знакомства с 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Gitpodавтоматизация выделения готовых для работы сред разработки

Непрерывно собирает ваши ветки git, такие как CI-сервер, чтобы вы могли начать работу с кодом прямо сейчас - больше не нужно ждать загрузок зависимостей и завершения сборки

↪️ Ссылка на проект

@Golang_google | #Go #Automation
Please open Telegram to view this post
VIEW IN TELEGRAM
Golang fyne Куда нажать? :-(

Fyne - это open-source библиотека для очень простого и быстрого создания кросс-платформенных приложений на Golang

Здесь можно вполне понять для чего нужен fyne, от себя могу сказать, что это очень простая библиотека для пользования, чтобы начать писать на ней программы с графическим интерфейсом не нужно никаких знаний

Можно глянуть одним глазком там довольно медленно и только совсем про базу рассказано, поэтому использовать можно как справочник, когда быстро набрасываешь свой первый интерфейс

↪️ Статья
🖥 Github
⚙️ Видео

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🧑‍💻 Implementing LRU Cache in Go


➡️ Статья
↪️ Что такое LRU кэш

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Как запускать SQL в Go с максимальным комфортом

Писать SQL руками или использовать ORM — тема очень спорная, и я опишу, как использовать первый подход максимально эффективно. А какой из подходов выбрать, думаю, каждый сам для себя уже решил.

Я не буду описывать то, что уже описано в документации, речь пойдёт про использование встроенного пакета для работы с базами данных database/sql и надстройки над этим пакетом под названием sqlx. Также будет пара примеров для работы только с PostgreSQL.

Всё описанное ниже хорошо работает в большом проекте, в котором очень активно используется SQL, когда мест, где запускаются запросы, больше 100, к примеру.

Примеры кода можно посмотреть в репозитории. Этот код я написал специально для статьи, так что, возможно, допустил где-то ошибки. Но он очень похож на то, что используется у нас в проекте.

➡️ Читать дальше
🖥 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
Как создать MVP бэкенда

Показываем, какой MVP бэкенда можно разработать для приложения по отслеживанию процессов в компании. В качестве языка использован Go.

Читать: «Как создать MVP бэкенда»

@Golang_google
👣 Bucketeer-io/bucketeer

Платформа для A/B-тестирования

🔩 Github
📝 Документация

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 Cute Print

Симпатичный пакет печати Go (альтернатива fmt), минималистичный, без зависимостей!

go get -u github.com/zakaria-chahboun/cute@latest

🔩 Github

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Fman

Fman быстрый файловый менеджер для терминала, написанный на GO

Имеет чистый интерфейс с подсветкой синтаксиса и поддержкой различных тем

$ go install github.com/nore-dev/fman@latest

🔩 Github

#Interesting #Go #Terminal

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
👣 Полезные библиотеки Go

Ddosify
- очень простой в использовании инструмент для нагрузочного тестирования веб ресурсов.

Поддерживает HTTP, HTTPS, HTTP/2 протоколы.

➡️ GitHub/Инструкция

#go #golang #hack #pentest

@github_code
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Понимание Go Inline оптимизации на примере

В эпоху мобильного Интернета масштабы бизнес-систем, которые непосредственно сталкиваются с C-пользователем, как правило, очень велики, и машинные ресурсы, потребляемые системой, также весьма значительны. Количество ядер ЦП и памяти, используемых системой, поглощают реальные деньги компании. Сведение к минимуму потребления ресурсов одним экземпляром службы без снижения уровня обслуживания, что обычно известно как «есть меньше травы и производить больше молока», всегда было целью операторов каждой компании, и некоторые компании могут сэкономить сотни тысяч долларов в год за счет сокращения количества используемых ядер процессора на 1%.

При одинаковом выборе языка программирования важно постоянно снижать потребление сервисных ресурсов. Более естественно и просто полагаться, с одной стороны, на разработчиков, которые будут постоянно совершенствовать производительность своего кода, а с другой — на компиляторов языка программирования, чтобы улучшить результаты с точки зрения оптимизации компиляции. Однако эти два аспекта также дополняют друг друга: если разработчики смогут более тщательно понять сценарии и инструменты оптимизации компилятора, они смогут написать более дружественный код для оптимизации компиляции и, таким образом, получить лучшие результаты оптимизации производительности.

➡️ Читать дальше

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Создание обратного прокси-сервера (gRPC-Gateway)

В этой статье мы рассмотрим создание API со следующим шагом реализации обратного прокси.

Мы будем использовать docker и docker-compose, поэтому я рекомендую сначала установить docker и docker-compose и убедиться, что вы можете запускать контейнеры.

➡️ Читать дальше

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
👣 GoCover — инструмент для оценки покрытия кода тестами для всех пакетов Go

Покрытие кода предполагает проведение множества тестов, а это часто может быть опасно. Инструмент преодолевает это ограничение, исполняя код в изолированной среде — внутри контейнера Docker. Для этого необходимо лишь ввести адрес репозитория и нажать на кнопку. На экране отобразится процент покрытия кода, а покрытые и непокрытые области выделятся разным цветом.

Стоимость: #бесплатно.

#devOps #Golang

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM
🖥 Focalboard - бесплатная замена Trello, Notion и Asana с открытым исходным кодом.

Варианты использования:
Установка на собственный сервер с возможностью работать над проектами вместе.
Установка на компьютер как обычное приложение.

Поддерживает Linux, Mac и Windows.

🔩 GitHub/Инструкция

#typescript #go

@Golang_google
Please open Telegram to view this post
VIEW IN TELEGRAM