cookie

نحن نستخدم ملفات تعريف الارتباط لتحسين تجربة التصفح الخاصة بك. بالنقر على "قبول الكل"، أنت توافق على استخدام ملفات تعريف الارتباط.

avatar

Библиотека Go для собеса | вопросы с собеседований

Вопросы с собеседований по Go и ответы на них. Список наших каналов: https://t.me/proglibrary/8353 Учиться у нас: https://proglib.io/w/907158ab Обратная связь: @proglibrary_feedback_bot По рекламе: @proglib_adv Прайс: @proglib_advertising

إظهار المزيد
مشاركات الإعلانات
4 466
المشتركون
+524 ساعات
+887 أيام
+22830 أيام

جاري تحميل البيانات...

معدل نمو المشترك

جاري تحميل البيانات...

Photo unavailableShow in Telegram
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных» 🔥Получите вводные занятия, ответив на 3 вопроса – https://proglib.io/w/c2161ff4 На вводной части вас ждут: 1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов 2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ 3. Практические задания после лекций 4. Ссылки на дополнительные материалы для самостоятельного изучения ⚡️Переходите и начинайте учиться уже сегодня – https://proglib.io/w/c2161ff4
إظهار الكل...
💬 Что происходит при запуске программы на Go? Например, если пакет main импортирует пакет A, а пакет A зависит от пакета B. 🔸 Процесс начинается с пакета main 🔸 Пакет main импортирует пакет A 🔸 Пакет A импортирует пакет B 🔸 Инициализируются глобальные переменные (если таковые имеются) в пакете B 🔸 Выполняется функция init() или функции пакета B, если они существуют. Это первая функция init(), которая выполняется 🔸 Глобальные переменные, если таковые имеются, в пакете A инициализируются; 🔸 Выполняется функция init() или функции пакета A, если таковые имеются; 🔸 Инициализируются глобальные переменные в пакете main 🔸 Выполняется функция init() или функции пакета main, если они есть 🔸 Функция main() пакета main начинает выполнение 📌 Если пакет main импортирует пакет B самостоятельно, то ничего не произойдет, поскольку все, что связано с пакетом B, запускается пакетом A. Так происходит потому, что пакет A сначала импортирует пакет B.
إظهار الكل...
👍 20🥱 5🔥 1
💬 Как создать кэш на Go? Кэш — это инструмент, который сохраняет данные в памяти, чтобы их можно было быстро получить позже. На Go можно создать кэш с использованием пакета sync или сторонних библиотек вроде go-cache:

package main

import (
    "fmt"
    "sync"
)

func main() {
    // создаем новый кэш
    cache := &sync.Map{}

    // добавляем пару ключ-значение в кэш
    cache.Store("key", "value")

    // извлекаем значение из кэша
    value, ok := cache.Load("key")
    if ok {
        fmt.Println(value) // Output: value
    }

    // удаляем ключ из кэша
    cache.Delete("key")

    // проверяем, существует ли ключ в кэше
    _, ok = cache.Load("key")
    fmt.Println(ok) // Output: false
}
В примере мы создаем новую структуру sync.Map и используем функции Store(), Load(), Delete() для добавления, извлечения и удаления пар ключ-значение из кэша соответственно.
إظهار الكل...
🥱 10😢 2👍 1
💬 Что из себя представляют теги структур в Go? Теги структур — это аннотации, которые отображаются после типа в объявлении структуры Go. Каждый тег состоит из коротких строк, которым назначены определенные значения. Они не влияют на саму логику программы, но позволяют контролировать процесс сериализации и десериализации данных, валидацию и многое другое. Пример использования:

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}
В этом примере к полям структуры User добавлены теги json, которые указывают, как эти поля должны быть сериализованы в JSON. Тег json:"name" говорит, что поле Name должно быть представлено как "name" в JSON, аналогично для поля Age. Для работы с этими тегами можно использовать пакет reflect. Например, чтобы получить значение тега json для поля Name, можно использовать:

package main

import (
    "fmt"
    "reflect"
)

type User struct {
    Name string `json:"name"`
    Age  int    `json:"age"`
}

func main() {
    p := User{Name: "John Doe", Age: 30}
    t := reflect.TypeOf(p)
    field, ok := t.FieldByName("Name")
    if ok {
        fmt.Println(field.Tag.Get("json")) // Выведет: name
    }
}
إظهار الكل...
👍 17
Photo unavailableShow in Telegram
🧑‍💻 Статьи для IT: как объяснять и распространять значимые идеи Напоминаем, что у нас есть бесплатный курс для всех, кто хочет научиться интересно писать — о программировании и в целом. Что: семь модулей, посвященных написанию, редактированию, иллюстрированию и распространению публикаций. Для кого: для авторов, копирайтеров и просто программистов, которые хотят научиться интересно рассказывать о своих проектах. 👉Материалы регулярно дополняются, обновляются и корректируются. А еще мы отвечаем на все учебные вопросы в комментариях курса.
إظهار الكل...
👍 1
💬 Как реализовать reverse proxy на Go? Reverse proxy — это механизм для перенаправления входящих запросов на другой сервер или сервис. Для реализации на Go можно использовать пакет httputil:

package main

import (
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    targetServer := "example.com"
    proxy := httputil.NewSingleHostReverseProxy(&url.URL{
        Scheme: "http",
        Host:   targetServer,
    })

    http.Handle("/", proxy)
    http.ListenAndServe(":8000", nil)
}
В примере входящие запросы на обратный прокси на порту 8000 будут перенаправлены на целевой сервер example.com. Мы также можем настроить поведение обратного прокси, реализовав функцию Director, которая может быть использована для изменения запроса перед его перенаправлением на целевой сервер. 📌 Пример настройки функции Director:

package main

import (
    "net/http"
    "net/http/httputil"
    "net/url"
)

func main() {
    targetServer := "example.com"
    proxy := httputil.NewSingleHostReverseProxy(&url.URL{
        Scheme: "http",
        Host:   targetServer,
    })

    proxy.Director = func(req *http.Request) {
        req.Header.Set("X-Forwarded-Host", req.Host)
        req.Header.Set("X-Origin-Host", targetServer)
        req.Host = targetServer
    }

    http.Handle("/", proxy)
    http.ListenAndServe(":8000", nil)
}
إظهار الكل...
👍 14
Proglib запускает канал Азбука айтишника Подписывайтесь на наш новый канал про айти для неайтишников — для совсем новичков и тех, кто постоянно взаимодействует с айтишниками. У нас есть рубрики: ⭐ База — в ней рассказываем про термины из IT простым языком ⭐ Проект — объясняем, из чего состоят айтишные проекты и сколько они могут стоить ⭐ Психология айтишника — тут говорим про софт-скиллы, особенности работы и взаимодействия 👉Подписывайтесь!
إظهار الكل...
Азбука айтишника

🤔 Кодер или программист? Мы подготовили материал, чем отличается программист от кодера. Объясняем простым языком: их можно сравнить с архитектором и строителем. Например, архитектор разговаривает с заказчиком, проектирует здание, следит за исполнением. А строитель возводит пол, стены, крышу. Эта аналогия хорошо показывает отличия программиста и кодера. Кодер с программистом имеют разные уровни ответственности, на карточках вы узнаете подробнее о каждом. #база

💬 Как реализовать rate limiter на Go? Rate limiter — это механизм для контроля частоты доступа к определенному ресурсу. В Go для его реализации можно использовать пакет rate из стандартной библиотеки. Один из распространенных подходов к ограничению скорости — использование алгоритма token bucket, который позволяет добавлять фиксированное количество токенов в пакет с фиксированной скоростью. Когда токен извлекается из бакета, скорость добавления токенов временно уменьшается. Пакет rate предоставляет функцию NewLimiter(), которую можно использовать для создания нового token bucket rate limiter. Например:

limiter := rate.NewLimiter(rate.Limit(100), 100)
Затем можно использовать метод limiter.Allow(), чтобы проверить, доступен ли токен перед выполнением задачи:

if limiter.Allow() {
    // выполнение задачи
} else {
    // превышен лимит скорости
}
В качестве альтернативы можно использовать метод limiter.Wait(), чтобы подождать, пока токен станет доступен:

limiter.Wait()
// выполнение задачи
Также можно использовать метод limiter.Reserve(), чтобы зарезервировать токен заранее и выполнить задачу позже.
إظهار الكل...
🔥 12👍 2
Самые полезные каналы для программистов в одной подборке! Сохраняйте себе, чтобы не потерять 💾 🔥Для всех Библиотека программиста — новости, статьи, досуг, фундаментальные темы Книги для программистов IT-мемы Proglib Academy — тут мы рассказываем про обучение и курсы 🤖Про нейросети Библиотека робототехники и беспилотников | Роботы, ИИ, интернет вещей Библиотека нейрозвука | Транскрибация, синтез речи, ИИ-музыка Библиотека нейротекста | ChatGPT, Gemini, Bing Библиотека нейровидео | Sora AI, Runway ML, дипфейки Библиотека нейрокартинок | Midjourney, DALL-E, Stable Diffusion #️⃣C# Книги для шарпистов | C#, .NET, F# Библиотека шарписта — полезные статьи, новости и обучающие материалы по C# Библиотека задач по C# — код, квизы и тесты Библиотека собеса по C# — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Вакансии по C#, .NET, Unity Вакансии по PHP, Symfony, Laravel ☁️DevOps Библиотека devops’а — полезные статьи, новости и обучающие материалы по DevOps Вакансии по DevOps & SRE Библиотека задач по DevOps — код, квизы и тесты Библиотека собеса по DevOps — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования 🐘PHP Библиотека пхпшника — полезные статьи, новости и обучающие материалы по PHP Вакансии по PHP, Symfony, Laravel Библиотека PHP для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по PHP — код, квизы и тесты 🐍Python Библиотека питониста — полезные статьи, новости и обучающие материалы по Python Вакансии по питону, Django, Flask Библиотека Python для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Python — код, квизы и тесты ☕Java Книги для джавистов | Java Библиотека джависта — полезные статьи по Java, новости и обучающие материалы Библиотека Java для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Java — код, квизы и тесты Вакансии для java-разработчиков 👾Data Science Книги для дата сайентистов | Data Science Библиотека Data Science — полезные статьи, новости и обучающие материалы по Data Science Библиотека Data Science для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Data Science — код, квизы и тесты Вакансии по Data Science, анализу данных, аналитике, искусственному интеллекту 🦫Go Книги для Go разработчиков Библиотека Go разработчика — полезные статьи, новости и обучающие материалы по Go Библиотека Go для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по Go — код, квизы и тесты Вакансии по Go 🧠C++ Книги для C/C++ разработчиков Библиотека C/C++ разработчика — полезные статьи, новости и обучающие материалы по C++ Библиотека C++ для собеса — тренируемся отвечать на каверзные вопросы во время интервью и технического собеседования Библиотека задач по C++ — код, квизы и тесты Вакансии по C++ 💻Другие каналы Библиотека фронтендера Библиотека мобильного разработчика Библиотека хакера Библиотека тестировщика Вакансии по фронтенду, джаваскрипт, React, Angular, Vue Вакансии для мобильных разработчиков Вакансии по QA тестированию InfoSec Jobs — вакансии по информационной безопасности 📁Чтобы добавить папку с нашими каналами, нажмите 👉сюда👈 Также у нас есть боты: Бот с IT-вакансиями Бот с мероприятиями в сфере IT Мы в других соцсетях: 🔸VK 🔸YouTube 🔸Дзен 🔸Facebook * 🔸Instagram * * Организация Meta запрещена на территории РФ
إظهار الكل...
👍 1
Photo unavailableShow in Telegram
👀Что из этого сгенерировала нейросеть? Подписывайтесь на наш новый канал про нейросети для создания изображений, там есть: 🌸Новые нейросети и инструменты, например, вот модель генерирует картинки по наброску 🌸Промты для разных задач 🌸Лайфхаки по использованию нейросетей 👉Подписывайтесь!
إظهار الكل...
اختر خطة مختلفة

تسمح خطتك الحالية بتحليلات لما لا يزيد عن 5 قنوات. للحصول على المزيد، يُرجى اختيار خطة مختلفة.