Почему вам нужно учить больше языков программирования

О моих свободных отношениях с языками программирования Я занимаюсь программированием уже около 4 лет. Я начал с C#, занимаясь разработкой игр, а затем перешел на Python, потому что меня заинтересовало машинное обучение. Далее я изучил Javascript и Typescript, чтобы заниматься фронтендом. Через некоторое время я захотел разрабатывать мобильные приложения, поэтому ПОДРОБНЕЕ

Go: стратегия встраивания и ограничение

ℹ️ В статье используется Go 1.13. Процесс встраивания состоит в замене вызова функции на тело этой функции. И хотя такая оптимизация увеличивает размер двоичного кода, она улучшает производительность программ. В Go осуществляется встраивание не всех функций и при этом соблюдаются определённые правила. Правила Начнём с примера, поясняющего суть встраивания. Следующая ПОДРОБНЕЕ

Golang — изящная обработка ошибок

Несмотря на то, что в go предусмотрена простая модель ошибок, на деле все не так уж и просто. В данной статье я хочу рассказать вам об эффективном способе обработки ошибок и решения сопутствующих проблем. Для начала, необходимо понять, что именно считается ошибкой в go. Затем рассмотрим весь процесс, от создания ПОДРОБНЕЕ

Идеальная настройка вашего Golang проекта

Часть 1, Часть 2, Часть 3 При запуске нового проекта самые большие трудности у меня всегда вызывала его настройка. Всегда стараешься сделать её «идеальной»: используешь лучшую структуру каталогов, чтобы всё было легко найти и импортирование происходило без проблем; настраиваешь все команды так, чтобы нужные действия выполнялись в один клик или ПОДРОБНЕЕ

4 golang-сниппета, которые вводят в заблуждение разработчиков C#!

В лингвистике такое явление получило название ложные друзья переводчика, то есть слова, похожие по звучанию или написанию, но совершенно разные по значению. Например, английское слово buiscuit (печенье) и русское бисквит. С виду практически одинаковые, но последний переводится на английский как sponge cake. Это может привести к путанице. То же можно ПОДРОБНЕЕ

Введение в каналы Golang

Golang использует горутины для параллельного программирования. На них можно ссылаться как на подзадачи для приложения. Если вы новичок в Golang, то рекомендую для начала ознакомиться с концепцией горутин. Горутинам необходимы механизмы для связи между собой — каналы, которые гарантируют, что горутины и основной поток могут взаимодействовать друг с другом. В ПОДРОБНЕЕ

Топ-10 самых распространенных ошибок в проектах Go. Часть 1

Неизвестное значение enum Рассмотрим простой пример: type Status uint32 const ( StatusOpen Status = iota StatusClosed StatusUnknown ) Enum создан с помощью iota, что приводит к следующему состоянию: StatusOpen = 0 StatusClosed = 1 StatusUnknown = 2 Предположим, что тип Status является частью запроса JSON, и он будет маршализован или не маршализован. Можно ПОДРОБНЕЕ

Отладка Go для профессионалов

Многие разработчики редко используют отладчик при возникновении проблем в коде. Если вы пишете модульные тесты и используете линтинг и рефакторинг, то этот быстрый и грязный подход будет работать в большинстве случаев. Однако порой намного проще открыть интерактивный отладчик, чем постоянно добавлять утверждения и операторы print. Пример графика, отображающего утечку памяти ПОДРОБНЕЕ

Как работает функция Defer в Golang

В Golang, благодаря появлению целого ряда новых средств и инструментов, которыми не могут похвастать другие языки серверного программирования, реализована очень мощная и гибкая модель функционального программирования. Одним из таких нововведений является функция отложенного вызова Defer. Для тех, кто только знакомится с Golang, возможно, будет полезно почитать сначала эти статьи: Конкурентность ПОДРОБНЕЕ

Бинарное дерево на Go для новичка

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