Привет, Хаброжители! Язык Go — это простой и понятный язык для создания высокопроизводительных систем будущего. Используйте Go в реальных производственных системах. В новое издание включены такие темы, как создание серверов и клиентов RESTful, знакомство с дженериками Go и разработка серверов и клиентов gRPC. Третье издание «Golang для профи» исследует практические возможности Go и описывает такие продвинутые темы, как параллелизм и работа сборщика мусора Go, использование Go с Docker, разр…
В статье мы рассмотрим, как подступиться к миру Kubernetes в первый раз — развернуть кластер под управлением платформы Deckhouse, разработать и подготовить приложение, развернуть его с помощью утилиты werf, предназначенной для построения рабочего процесса по принципам CI/CD, а также настроить сертификаты для доступа по HTTPS.Развертывание кластера Вводные данные Подготовка конфигурации Настройка кластера Проверка работоспособности Включение HTTPS для компонентов кластера Наст…
В рамках данного текста я попробую ответить вам и себе на вопрос из заголовка. Будет честно, если также я обозначу, что далее вы не найдете ответа на вопрос: стоит ли идти на IT-курсы учиться.Я решил написать этот текст после четырех лет чтения лекций. Я вел лекции в Otus по курсу GO и несколько раз появлялся на курсе "Архитектор высоких нагрузок". Сейчас я преподаю уже не так часто, но меня еще можно услышать/увидеть на курсе Golang.”Почему я пошел читать лекцииКогда-то у меня было мн…
Ошибки - это просто значенияЯ долго думал над тем, как лучше всего обрабатывать ошибки в программах на языке Go. Мне очень хотелось, чтобы существовал единый способ обработки ошибок, которому можно было бы научить всех программистов на Go, как учат математике или алфавиту.Однако я пришёл к выводу, что единого способа обработки ошибок не существует. Вместо этого я считаю, что работу с ошибками в Go можно разделить на три основные стратегии.Дозорные ошибкиПервая категория обработки ошибок - это …
Ранее: 1 частьПроверка ошибокОбщим договором для функций, возвращающих значение интерфейсного типа error, является то, что вызывающая сторона не должна ничего предполагать о состоянии других значений, возвращаемых в результате этого вызова, без предварительной проверки ошибки.В большинстве случаев значения ошибок, возвращаемые функциями, должны быть непрозрачными для вызывающей стороны. То есть проверка на то, что ошибка равна nil, указывает на успешность или неуспешность вызова, и не более то…
Сборник реальных советов по написанию сопровождаемых программ на языке Go. Автор - Dave Cheney, опытный разработчик на Go и один из его ведущих пропагандистов.Любопытные каналыКаналы являются характерной особенностью языка программирования Go. Каналы предоставляют мощный способ рассуждать о потоке данных от одной горутины к другой без использования блокировок или критических секций.Я хочу рассказать о двух важных свойствах каналов, которые делают их полезными для управления не только потоком д…
Сборник реальных советов по написанию сопровождаемых программ на языке Go. Автор - Dave Cheney, опытный разработчик на Go и один из его ведущих пропагандистов.Что такое нулевое значение и почему оно полезно?Начнём со спецификации языка Go на нулевое значение.Когда память выделяется для хранения значения либо через объявление, либо через вызов make или new, а явная инициализация не предусмотрена, память инициализируется по умолчанию. Каждый элемент такого значения устанавливается в нулевое знач…
Привет, Хабр! Меня зовут Антон Сулаев, я руководитель команды бэкенд-разработки Почты Mail.ru в VK и по совместительству ведущий преподаватель онлайн-курса «Разработка веб-сервисов на Golang». Недавно мы рассказали об открытии набора на новые бесплатные курсы VK Education по нескольким востребованным направлениям — программирование на Python и Go, а также техподдержка.В этой статье мы подробнее расскажем о курсе «Разработка веб-сервисов на Golang», слушатели которого смогут развить навыки прог…
"Правильно заданный вопрос - половина ответа". Осваиваю профессию Prompt Engineering. Это ответы на вопросы. Мопед не мой. Спасибо, Codeium. Не обрабатывал наводящие подвопросы, а надо бы. Но может быть кому-то пригодится и в таком виде.ОглавлениеGo — императивный или декларативный? А в чём разница?Что такое type switch?Как сообщить компилятору, что наш тип реализует интерфейс?Как работает append?Какое у slice zero value? Какие операции над ним возможны?Как устроен тип map?Каков порядо…