Ошибки - это просто значенияЯ долго думал над тем, как лучше всего обрабатывать ошибки в программах на языке 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?Каков порядо…
Кадр из типичного "эпилептического видео"Все слышали про "эпилепсию", иногда натыкались на видео с пометкой "epilepsy warning". И вроде бы понятно, что это что-то связанное с резкими мерцаниями и переменами цветов, но так ли все просто на самом деле? На True Tech Hack одной из задач учатников стала "Адаптация фильмов для людей с особыми потребностями", а одной из таких потребностей стала возможность фильтровать или изменять сцены, которые могли бы вызвать эпилеп…
Что такое вообще платформы, что такое мультиплатформенные приложения?Платформы - база, на которых работают наши приложения. Это может быть компьютер, телефон, планшет или даже часы. Каждая из этих "баз" имеет свою операционную систему, такую как Windows на компьютерах или iOS на iPhone.Когда разработчики хотят создать приложение, которое будет работать на всех этих устройствах и операционных системах, они создают то, что называется мультиплатформенным приложением. Это приложение, котор…
Go, также известный как Golang, — это язык программирования с открытым исходным кодом. Представленный публике в 2009 году, Go был разработан для упрощения задач программирования и повышения эффективности. Он родился из потребности в языке, который был бы прост для понимания, эффективен для выполнения и прежде всего способен справиться с масштабами, в которых работает Google. Его отличают простота, эффективность, многопоточное программирование, кроссплатформенность и высокая скорость компиляции…