cookie

Sizning foydalanuvchi tajribangizni yaxshilash uchun cookie-lardan foydalanamiz. Barchasini qabul qiling», bosing, cookie-lardan foydalanilishiga rozilik bildirishingiz talab qilinadi.

avatar

Golang | Вопросы собесов

Reklama postlari
2 251
Obunachilar
+724 soatlar
+1227 kunlar
+77530 kunlar

Ma'lumot yuklanmoqda...

Obunachilar o'sish tezligi

Ma'lumot yuklanmoqda...

🤔 Что делает ключевое слово `defer` в Go?Anonymous voting
  • Откладывает выполнение функции
  • Прекращает выполнение функции
  • Запускает новую горутину
  • Обрабатывает исключение
0 votes
Что такое HTTPS ? Спросят с вероятностью 8% HTTPS (HyperText Transfer Protocol Secure) — это расширение протокола HTTP, которое обеспечивает безопасную передачу данных между клиентом (например, веб-браузером) и сервером. Использует протоколы шифрования, такие как SSL (Secure Sockets Layer) или его преемник TLS (Transport Layer Security), для защиты данных от перехвата и изменения в процессе передачи. Основные характеристики 1️⃣Шифрование данных: ✅Все данные, передаваемые между клиентом и сервером, шифруются с использованием симметричных и асимметричных криптографических алгоритмов. ✅Шифрование предотвращает чтение данных третьими лицами, если они будут перехвачены. 2️⃣Аутентификация сервера: ✅Сертификаты SSL/TLS используются для проверки подлинности сервера. Это помогает клиентам убедиться, что они подключаются к правильному серверу, а не к мошенническому. 3️⃣Целостность данных: ✅Механизмы контроля целостности обеспечивают, что данные не были изменены в процессе передачи. ✅Цифровые подписи и хеш-функции используются для проверки целостности данных. Как он работает 1️⃣Установка соединения: ✅Клиент инициирует соединение с сервером, отправляя запрос через HTTPS. 2️⃣Рукопожатие (Handshake): ✅Сервер отвечает и отправляет свой SSL/TLS сертификат. ✅Клиент проверяет сертификат с помощью центра сертификации (CA). Если сертификат действителен, клиент создает сессионный ключ, шифрует его с использованием публичного ключа сервера и отправляет обратно серверу. ✅Сервер расшифровывает сессионный ключ с помощью своего приватного ключа. 3️⃣Шифрование данных: ✅Все последующие данные, передаваемые между клиентом и сервером, шифруются с использованием симметричного шифрования с сессионным ключом. 4️⃣Передача данных: ✅Данные передаются в зашифрованном виде, обеспечивая конфиденциальность, целостность и аутентичность. Преимущества 1️⃣Безопасность: ✅Защита данных от перехвата и чтения третьими лицами. ✅Защита от атак типа "человек посередине" (Man-in-the-Middle). 2️⃣Конфиденциальность: Пользователи могут быть уверены, что их данные остаются приватными и защищенными. 3️⃣Аутентификация: ✅Клиенты могут быть уверены, что они взаимодействуют с подлинным сервером, а не с мошенническим. 4️⃣Доверие пользователей: ✅Наличие повышает доверие пользователей к веб-сайту и может улучшить репутацию компании. 5️⃣SEO: ✅Поисковые системы, такие как Google, учитывают использование HTTPS при ранжировании сайтов, что может улучшить позиции сайта в результатах поиска. Недостатки 1️⃣Производительность: ✅Шифрование и дешифрование данных требуют дополнительных вычислительных ресурсов, что может снизить производительность. ✅Установка SSL/TLS соединения требует дополнительного времени по сравнению с обычным HTTP-соединением. 2️⃣Стоимость: ✅Сертификаты SSL/TLS могут стоить денег, хотя существуют бесплатные решения, такие как Let's Encrypt. 3️⃣Сложность настройки: ✅Настройка требует знаний в области сетевой безопасности и может быть сложнее, чем настройка HTTP. Пример:
```go
package main

import (
    "fmt"
    "log"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, HTTPS!")
}

func main() {
    http.HandleFunc("/", helloHandler)

    // Путь к сертификату и ключу
    certFile := "path/to/cert.pem"
    keyFile := "path/to/key.pem"

    // Запуск HTTPS сервера
    log.Println("Starting server on https://localhost:8443")
    err := http.ListenAndServeTLS(":8443", certFile, keyFile, nil)
    if err != nil {
        log.Fatalf("Failed to start server: %v", err)
    }
}
HTTPS — это расширение HTTP, которое обеспечивает безопасность передачи данных через сеть с использованием SSL/TLS. Защищает данные от перехвата, обеспечивает аутентификацию сервера и сохраняет целостность данных. Это важный компонент современной интернет-безопасности и конфиденциальности. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Hammasini ko'rsatish...
👍 1
Photo unavailableShow in Telegram
⚡️В сети начали находить курсы и книги известных онлайн школ в открытом доступе Вот отсортированная база с тонной материала(постепенно пополняется): 🔗 БАЗА (3385 видео): (343 видео, 87 книги) — Java (176 видео, 32 книги) — Git (293 видео, 63 книги) — C# (352 видео, 89 книги) — С++ (167 видео, 53 книги) — PHP (227 видео, 83 книги) — SQL (163 видео, 29 книги) — Linux (363 видео, 122 книги) — Python (415 видео, 168 книги) — Frontend (143 видео, 33 книги) — Flask (167 видео, 43 книги) — Django (197 видео, 49 книги) — Разработка ботов (137 видео, 93 книги) — Data Science (113 видео, 82 книги) — GameDev (129 видео, 73 книги) — QA Скачивать ничего не нужно — все выложили в Telegram и на YouTube с доступом по ссылке
Hammasini ko'rsatish...
😁 3🤯 1
🤔 Какой тип данных не существует в Go?Anonymous voting
  • slice
  • map
  • tuple
  • array
0 votes
Возможны ли случаи, когда перебор по слайсу будет быстрее чем по map ? Спросят с вероятностью 17% Существуют случаи, когда перебор по слайсу может быть быстрее, чем поиски по мапе. Это может зависеть от нескольких факторов, включая размер данных, тип операций и структуру данных. Размер данных Если речь идет о небольшом количестве элементов, перебор по слайсу часто может быть быстрее, чем использование мапы, поскольку мапы имеют дополнительные накладные расходы, связанные с вычислением хеш-функции и управлением внутренней структурой данных (хеш-таблицей). Эти накладные расходы могут сделать операции с мапами медленнее по сравнению со слайсами, особенно для малых или простых данных. Локальность данных Слайсы хранят данные последовательно в памяти, что улучшает кэширование и доступ к данным благодаря пространственной локальности. Это означает, что при переборе слайса данные чаще находятся в кэше процессора, что ускоряет их обработку. С другой стороны, мапы могут хранить данные в разбросанном порядке, что потенциально ухудшает кэш-локальность и увеличивает время доступа к элементам при итерации или поиске. Сценарии использования Случаи, когда слайс может быть быстрее: ✅Если вам нужно выполнить операции с каждым элементом коллекции, перебор всех элементов слайса может быть эффективнее, чем итерация по ключам и доступы к значениям в мапе. ✅Когда вы часто обновляете структуру данных, добавление и удаление элементов в слайсе (особенно если он не требует частого расширения) может быть быстрее, чем операции с мапой. Сценарии, когда мапа может быть предпочтительнее: ✅Если необходим быстрый доступ к элементам по ключу. ✅Когда данные необходимо часто проверять на наличие или отсутствие ключей, и количество данных достаточно велико. Вот простой пример кода, демонстрирующий перебор слайса и мапы в Go:
package main

import "fmt"

func main() {
    // Слайс
    slice := []int{1, 2, 3, 4, 5}
    sumSlice := 0
    for _, v := range slice {
        sumSlice += v
    }
    fmt.Println("Сумма слайса:", sumSlice)

    // Мапа
    m := map[int]int{1: 2, 3: 4, 5: 6, 7: 8, 9: 10}
    sumMap := 0
    for _, v := range m {
        sumMap += v
    }
    fmt.Println("Сумма мапы:", sumMap)
}
Выбор между слайсом и мапой зависит от конкретных требований вашего приложения. Если вам нужна простота и быстрый перебор небольшого числа элементов, слайс может быть предпочтительнее. Однако для сложных операций поиска и управления большими объемами данных мапы предоставляют больше возможностей и эффективность. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Hammasini ko'rsatish...
👍 5
🤔 Какой механизм Go использует для обработки исключений?Anonymous voting
  • try-catch
  • exceptions
  • panic-recover
  • error returns
0 votes
😁 1
Что такое SSL ? Спросят с вероятностью 8% SSL (Secure Sockets Layer) — это криптографический протокол, предназначенный для обеспечения безопасности. Он используется для шифрования данных, передаваемых между клиентом и сервером, что позволяет защитить информацию от перехвата и изменений. Основные цели 1️⃣Шифрование данных: ✅Защищает данные от перехвата третьими лицами, обеспечивая конфиденциальность. 2️⃣Аутентификация: ✅Гарантирует, что сервер и, в некоторых случаях, клиент являются теми, за кого себя выдают. 3️⃣Целостность данных: ✅Обеспечивает защиту данных от изменения или подмены во время передачи. Как он работает Использует комбинацию симметричного и асимметричного шифрования для обеспечения безопасности соединения. Процесс установки SSL-соединения включает несколько этапов: 1️⃣Установка соединения (Handshake): ✅Клиент отправляет серверу запрос на установку соединения и сообщает, какие криптографические алгоритмы он поддерживает. 2️⃣Ответ сервера: ✅Сервер отвечает, выбирая из предложенных клиентом криптографических алгоритмов наиболее сильные и возвращает свой SSL-сертификат. 3️⃣Проверка сертификата: ✅Клиент проверяет сертификат сервера с помощью доверенного центра сертификации (CA). Если сертификат действителен, клиент генерирует сессионный ключ для симметричного шифрования. 4️⃣Создание сессионного ключа: ✅Клиент шифрует сессионный ключ с помощью публичного ключа сервера и отправляет его серверу. 5️⃣Установка защищенного соединения: ✅Сервер расшифровывает сессионный ключ с помощью своего приватного ключа. Теперь и клиент, и сервер имеют общий сессионный ключ, который используется для шифрования дальнейшей передачи данных. Пример процесса SSL Handshake 1️⃣ClientHello: Клиент отправляет сообщение ClientHello, содержащее информацию о поддерживаемых версиях протокола, шифрах и сжимающих методах. 2️⃣ServerHello: Сервер отвечает сообщением ServerHello, выбирая параметры соединения, включая шифр и версию протокола. 3️⃣Сертификат сервера: Сервер отправляет свой сертификат клиенту. 4️⃣Key Exchange: Клиент отправляет зашифрованный сессионный ключ серверу. 5️⃣Finished: Обе стороны отправляют сообщения Finished, чтобы подтвердить успешное установление защищенного соединения. Пример:
package main

import (
    "fmt"
    "log"
    "net/http"
)

func helloHandler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, SSL!")
}

func main() {
    http.HandleFunc("/", helloHandler)

    // Путь к сертификату и ключу
    certFile := "path/to/cert.pem"
    keyFile := "path/to/key.pem"

    // Запуск HTTPS сервера
    log.Println("Starting server on https://localhost:8443")
    err := http.ListenAndServeTLS(":8443", certFile, keyFile, nil)
    if err != nil {
        log.Fatalf("Failed to start server: %v", err)
    }
}
Преимущества 1️⃣Безопасность: ✅Обеспечивает конфиденциальность, аутентификацию и целостность данных. 2️⃣Доверие пользователей: ✅Использование его увеличивает доверие пользователей к веб-сайту, поскольку они видят, что их данные защищены. 3️⃣SEO: ✅Поисковые системы, такие как Google, отдают предпочтение сайтам, использующим SSL, что может улучшить их рейтинг в результатах поиска. TLS — преемник SSL Был заменен более современным и безопасным протоколом TLS (Transport Layer Security). Несмотря на это, термин "SSL" все еще часто используется для обозначения TLS. Имеет несколько версий (1.0, 1.1, 1.2, 1.3), каждая из которых вносит улучшения в безопасность и производительность. SSL (Secure Sockets Layer) — это криптографический протокол, обеспечивающий безопасную передачу данных в Интернете путем шифрования, аутентификации и обеспечения целостности данных. SSL был заменен протоколом TLS, который продолжает развиваться и улучшаться для обеспечения безопасности современных интернет-соединений. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Hammasini ko'rsatish...
👍 1
00:04
Video unavailableShow in Telegram
👣 Golang - крупнейший обучающий канал-гайд в телеграме ! В канале ребята 24/7 пишут код, тестируют разные библиотеки, копаются в их настройках и применяют в работе. А потом делятся с подписчиками. По контенту: 1. Лучшие бесплатные курсы и книги для изучения GO в 2024 году 2. Все что нужно для подготовки к Golang собеседованию 3. Полезная подборка бесплатных учебников по Go 4. А здесь собрана Мега-полезную папку Go-разработчика, все, что нужно знать в одном месте. и многое другое. Подписывайтесь, потом сами себе спасибо скажете: @Golang_google
Hammasini ko'rsatish...
OKqbF7n.mp41.77 KB
👍 1 1🔥 1
⚡️ Учить GO
🤔 Какой тип данных в Go не является встроенным?Anonymous voting
  • string
  • slice
  • map
  • tuple
0 votes
🤔 2
Какие основные структуры данных есть в Go ? Спросят с вероятностью 17% Встроены несколько основных структур данных, которые широко используются в различных типах приложений. Эти структуры данных обеспечивают эффективное управление данными и поддерживают различные алгоритмы и операции. Вот основные из них: 1⃣Слайсы (Slices) Это динамические массивы в Go, которые могут автоматически увеличиваться и уменьшаться. Слайсы построены на базе массивов, но обеспечивают более гибкое управление коллекциями элементов. Они поддерживают операции добавления, удаления и доступа к элементам. 2⃣Массивы (Arrays) Это коллекции фиксированного размера, которые хранят элементы одного типа. Размер массива должен быть известен на этапе компиляции, что делает массивы менее гибкими по сравнению со слайсами, но они полезны для задач, где известно точное количество элементов, что может улучшить производительность. 3⃣Мапы (Maps) Представляют собой структуры данных, которые хранят данные в парах ключ-значение. Ключи уникальны, и каждый ключ ассоциирован с одним значением. Используются для быстрого поиска, добавления и удаления данных по ключу. 4⃣Структуры (Structs) Представляют собой пользовательские типы данных, которые позволяют сгруппировать данные различных типов. Структуры широко используются для организации сложных данных и поддерживают концепцию инкапсуляции в объектно-ориентированном программировании (хотя Go не является полностью объектно-ориентированным языком). 5⃣Каналы (Channels) Это средства передачи данных между горутинами, которые поддерживают параллельное и асинхронное выполнение. Каналы предоставляют способ синхронизации и коммуникации между горутинами без использования традиционных примитивов синхронизации, таких как мьютексы и условные переменные. 6⃣Интерфейсы (Interfaces) Интерфейсы в Go представляют собой наборы методов, которые определяют поведение. Типы могут реализовывать интерфейсы, предоставляя реализации методов. Интерфейсы широко используются для создания гибких и модульных программ, поддерживающих различные типы поведения.
// Структура данных
type Person struct {
    Name string
    Age  int
}

// Слайс
people := []Person{
    {"Alice", 30},
    {"Bob", 25},
}

// Мапа
emails := map[string]string{
    "Alice": "[email protected]",
    "Bob": "[email protected]",
}

// Использование мапы и структуры
for _, person := range people {
    email := emails[person.Name]
    fmt.Printf("Name: %s, Age: %d, Email: %s\n", person.Name, person.Age, email)
}
Эти структуры данных являются фундаментальными для множества задач, от простых операций с данными до сложной обработки и межпроцессного взаимодействия. 👉 Можно посмотреть Примеры как отвечают люди на этот вопрос, или перейти К списку 349 вопроса на Golang разработчика. Ставь 👍 если нравится контент 🔐 База собесов | 🔐 База тестовых
Hammasini ko'rsatish...
Boshqa reja tanlang

Joriy rejangiz faqat 5 ta kanal uchun analitika imkoniyatini beradi. Ko'proq olish uchun, iltimos, boshqa reja tanlang.