Golang вопросы собеседований
14K subscribers
680 photos
8 videos
1 file
485 links
@notxxx1 - админ

@Golang_google - Golang для разработчиков

@itchannels_telegram - 🔥лучшие из ит

@golangl - chat

@golangtests - golang tests

@golang_jobsgo - go chat jobs

@ai_machinelearning_big_data - AI

@data_analysis_ml

РКН: clck.ru/3FmtKd
加入频道
🔥 Templ — пакет, который позволяет писать пользовательские интерфейсы на Go

Вместе с Templ мы можем написать следующий код:
/ index.templ

package mainhttps://github.com/a-h/templ/raw/main/ide-demo.gif

templ hello(name string) {
if name == "Виктор" {
<div>Привет, Виктор! Как твои дела сегодня?</div>
} else {
<div>Hello, { name }</div>
}
}

templ greeting(person Person) {
<div class="greeting">
@hello(person.Name)
</div>
}

// ...

Далее вам просто нужно запустить процесс генерации всех *.templфайлов...:
go run github.com/a-h/templ/cmd/templ@latest generate

...и после этого index.templ будет преобразована в обычную функцию Go и готоа к запуску. Выглядеть она может как-то так:
// main.go

package main

// ...

// Simple user struct.
type Person struct {
Name string
}

func main() {
// Create a new user with name.
user := Person{Name: "John"}

// Create Templ handler.
handler := templ.Handler(greeting(user))

// Serve Templ handler with HTTP server.
http.Handle("/", handler)

// Start simple HTTP server.
http.ListenAndServe(":3000", nil)
}


Теперь откройте браузер http://localhost:3000 и посмотрите результат.
Да, это так просто!

🖥 GitHub

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18🥴10🔥43🤡1
👣 Интересная идея для пет-проекта — передача данных через анимированные QR на Gomobile и GopherJS

Креативный способ прокачать скиллы и получить +1 проект в портфолио 🌟

*️⃣Проект написан на Go, с использованием Gomobile и Gopherjs – последний для веб-приложения для автоматического замера скорости передачи данных.

*️⃣В проекте используется Vecty для создания простого и понятного кода, который облегчает работу с DOM.

*️⃣Компиляция Go кода в JavaScript происходит быстро и без проблем, что упрощает процесс разработки и позволяет писать веб-приложения без JS>

*️⃣Веб-сервис для передачи данных между веб-приложением и мобильным клиентом работает через WebSocket-прокси.

*️⃣В ходе тестирования и обкатки проекта выяснилось, что односторонняя передача данных через анимированные QR-коды возможна и подходит для ситуаций с небольшим объемом данных.

*️⃣Как выяснилось, использовать Gomobile и GopherJS — неплохая идея, они обеспечивают отличную скорость разработки и возможность рефакторинга на ходу.

Про весь процесс создания, с подробным описанием и примерами читать тут

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥31🤔1🤩1
👣 Разомни своё серое вещество 🌟

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

Написал?
Можешь смотреть один из вариантов решения

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥43❤‍🔥1
🔺Дизайн систем — основные понятия и принципы

CAP – Согласованность/целостность, доступность и устойчивость к разделению. Это означает, что версии одной и той же информации, хранящиеся на разных серверах, не противоречат друг другу и любой запрос к распределённой системе завершается корректным откликом. Такие системы возможны при поддержке ACID-требований к транзакциям

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

SOLID — принцип единственной ответственности, принцип открытости/закрытости, принцип подстановки Барбары Лисков, принцип разделения интерфейса, принцип инверсии зависимостей

KISS — принцип, запрещающий использование более сложных средств, чем необходимо

И ещё некоторые важные требования к техническим системам в плане отказоустойчивости и т.д. на другом изображении

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍123🥱3🔥2
👣 Итак, задача с собеседования на Go-разработчика

Напиши программу, которая будет читать файл и выводить топ 10 самых часто встречающихся слов.

Написал? Тогда можешь смотреть решение; оно специально не самое оптимальное, так что предлагай свой вариант кода в комментах
Данное решение использует передачу файла как аргумента командной строки, поэтому go run <файл.go> <файл.txt>

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍132🔥1😁1
💡 Топ 150 задач c собеседований.

Это большой списиок самых популярных задач, которые спрашивают на собесах.

Задачи, которые покрывают 90% задач, структур данных, алгоритмов которые спрашивают на собеседованиях.

📂 Список

@golang_interview
👍142🔥2
👣 Полезная статья, где описываются методы оптимизации Go кода

Оптимизации включают использование map со значениями указателей, парсинг температур вручную и создание специальной хэш-таблицы.
Самое то для понимания, как работают высоконагруженные приложения, и как можно проводить их профилирование.

📎 Статья

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍15🔥63😁1
📌Лови простую задачу, справишься за 5 минут?

Задание: напиши программу на Go, которая будет генерировать простые числа с помощью алгоритма "Решето Эратосфена".
"Решето Эратосфена" используется для нахождения простых чисел, алгоритм такой:
🔘Создаём список из целых чисел от 2 до заданного предела.
🔘Начинаем с первого числа в списке (2). Это число является простым числом.
🔘Удаляем все кратные этому числа из списка (кроме самого числа), так как они не являются простыми.
🔘Переходим к следующему числу в списке, которое еще не было обработано; повторяем шаги 3 и 4, пока не достигнем конца списка.

Получилось? Можешь смотреть решение

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
👣 Мышление программиста Go и скиллы управления кибер-инцидентами в борьбе с диабетом

Статья о человеке, которому Go помогает справляться с диабетом.
Если вкратце, то парень использует Go и распределённую систему микросервисов, чтобы отслеживать уровень инсулина и сахара в крови и т.д.
Параллельно в статье рассказывается про такие инструменты как Prometheus, Grafana, PagerDuty, так что можно узнать много полезного.

📎 Статья

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥43
👣 Немного о записи в файл с помощью Go

В Go можно писать в файлы без использования буферов, что означает, что каждая операция записи в файл приводит к записи на диск. Это поведение отличается от многих других языков программирования, где операции ввода-вывода буферизуются по дефолту для улучшения производительности.
Если вы хотите использовать буферизованный ввод-вывод, вы должны явно использовать пакет bufio для создания буферизованных объектов чтения и записи.

В случае записи без использования буфера, каждый вызов WriteString приводит к непосредственной записи данных в файл, а с использованием буфера данные сначала записываются в него, и только после происходит запись данных в файл. Это может значительно улучшить производительность, особенно при большом количестве операций записи, поскольку уменьшает количество системных вызовов.

В общем, использование буферизованного ввода-вывода может быть более эффективным по сравнению с небуферизованным.
При работе с большими файлами и необходимости минимизировать использование памяти, может быть целесообразно рассмотреть использование bufio.Scanner, который также использует буферизацию, но с более низким потреблением памяти.

📎 Здесь обсуждение проблемы записи в файл на Go, примеры кода на Python и C, очень полезно

@golang_interview
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍17🔥71