Найти в Дзене
Поддержите автораПеревод на любую сумму
Срезы(slices) в Go
Срезы (slices) в Go могут показаться простыми при первом знакомстве, но их эффективное использование требует понимания внутреннего устройства и особенностей работы с памятью. Многие разработчики сталкиваются с путаницей между понятиями длины и емкости срезов, что может привести к неэффективному использованию памяти или даже утечкам. Важно разобраться, как эти концепции работают при выполнении базовых операций: инициализации, добавлении элементов, копировании и нарезке. В этой статье мы рассмотрим...
5 месяцев назад
Карты (maps) в Go
Карты (maps) в Go — это отличный инструмент для хранения данных в виде пар «ключ — значение». Они широко используются в разработке благодаря своей гибкости и удобству. Например, карты часто применяются для кэширования данных, хранения конфигураций или обработки больших объемов информации. Однако эффективная работа с картами требует понимания их внутреннего устройства и особенностей управления памятью. Под капотом карты реализованы на основе хеш-таблиц, что обеспечивает быстрый доступ к данным, но также создает потенциальные проблемы, такие как неэффективное использование памяти или утечки...
5 месяцев назад
Терминал Warp
Warp — это современный терминал для macOS, Linux и Windows, который переосмысливает работу с командной строкой. Позиционируясь как "терминал для 21-го века", работает на базе искусственного интеллекта. В этой статье я расскажу, почему я решил попробовать Warp, какие есть возможности, и как, возможно, он может помочь разработчикам повысить продуктивность. Всё началось с того, что я в очередной раз устал от стандартного маковского терминала. Он надёжен, но часто кажется устаревшим: нет умных подсказок, автодополнение примитивное, а интерфейс выглядит так, будто его не обновляли с 90-х...
5 месяцев назад
Строки(strings) в Go
Строки — одна из самых часто используемых структур данных в любом языке программирования. И в Go они повсюду: от простых приветствий вроде "Hello, World!" до сложных парсеров, логгеров и сетевых протоколов. На первый взгляд, с ними всё просто: создал, склеил, обрезал — и пошёл дальше. Но как это часто бывает, под простотой скрываются тонкости, игнорирование которых может привести к ошибкам и снижению производительности. Go предлагает удобные, но специфичные механизмы работы со строками. Они тесно связаны с понятиями Unicode, UTF-8, рун, неизменяемости и байтовых представлений...
5 месяцев назад
Пишем Telegram-бота на Go(и заставляем его мотивировать нас каждые 30 минут)
Я всегда хотел сделать что-то простое и полезное в Telegram, но чтобы не пришлось постоянно за этим следить. И вот пришла гениальная идея: чтобы быть всегда замотивированным, можно написать бота, который будет (с какой то периодичностью) сам отправлять мотивационные цитаты в канал? Этот бот берёт случайные цитаты известных людей из интернета, переводит их на русский язык и отправляет в Telegram-канал по расписанию. Например, утром, днём, вечером и ночью. Звучит просто, правда? Но внутри этого проекта...
6 месяцев назад
Планировщик Go
Язык программирования Go был разработан для высокопроизводительных многопоточных приложений, и его система планирования горутин играет ключевую роль в эффективном использовании аппаратных ресурсов. В отличие от традиционных потоков ОС, горутины легче, создаются быстрее и управляются встроенным планировщиком Go, который распределяет задачи между доступными процессорами. В этом тексте я рассмотрю, как Go-программа использует вычислительные мощности, как работает планировщик горутин и какие механизмы обеспечивают эффективное выполнение кода...
7 месяцев назад
HTTP-сервер на Go
Привет, меня зовут Илья, и сегодня я хочу рассказать вам о том, как создать HTTP-сервер на языке программирования Go. Начнём с HTTP-протокола, рассмотрим основные концепции создания сервера, далее напишем практический пример. HTTP (HyperText Transfer Protocol) — это протокол прикладного уровня, который используется для передачи данных между клиентом (например, браузером) и сервером. Он является основой для обмена информацией в интернете. HTTP работает поверх TCP/IP и использует стандартные порты: 80 для HTTP и 443 для HTTPS...
7 месяцев назад
Планировщик ОС
Дизайн и поведение планировщика Go позволяют многопоточным программам работать более эффективно и производительно. Это возможно благодаря тому, что планировщик Go учитывает особенности работы планировщика операционной системы (OS). Однако, если многопоточная программа не учитывает принципы их взаимодействия, все преимущества теряются. Поэтому важно понимать, как работают оба планировщика, чтобы правильно проектировать многопоточные приложения. В этой статье я решил разобраться с основными механизмами и принципами работы планировщик ОС...
7 месяцев назад
Грокаем алгоритмы
Книга «Грокаем алгоритмы» Адитьи Бхаргава — это лучший выбор для тех, кто хочет подружиться с алгоритмами и при этом не поседеть. Если вы думаете, что алгоритмы — это страшные монстры из математического ада, то эта книга вас разубедит. Тут всё просто, как рецепт яичницы. Одной из самых привлекательных черт этой книги является её подход к объяснению сложных тем. Автор использует визуализацию в виде красочных иллюстраций, которые помогают лучше понять концепции. Вы будто смотрите мультик, только вместо героя — бинарный поиск, а вместо злодея — медленные алгоритмы сортировки...
9 месяцев назад
Roadmap: алгоритмы и структуры данных
Алгоритмы и структуры данных лежат в основе работы любого приложения или системы. Они помогают: Компании, такие как Google, Amazon или Microsoft, в процессе собеседований проверяют именно эти знания, поскольку они являются универсальными и применимыми ко всем областям разработки. На этом этапе важно понять, как устроены и работают основные структуры данных. Вот список, который нужно изучить: 💡 Совет: Изучая каждую структуру, отметьте для себя их сильные и слабые стороны, а также области применения...
9 месяцев назад
Деревья в информатике: структура и применение
Деревья — это одна из ключевых структур данных, широко используемых в информатике и программировании. Они представляют собой иерархическую модель, где данные организованы в виде узлов, соединённых рёбрами, что позволяет эффективно хранить, обрабатывать и извлекать информацию...
9 месяцев назад
Асимптотический анализ: основы и применение
Асимптотический анализ — это математический инструмент, который используется для оценки сложности алгоритмов в информатике. Он позволяет описать, как время выполнения или использование памяти алгоритмом изменяются в зависимости от размера входных данных. Такой подход помогает разработчикам выбирать наиболее эффективные алгоритмы для решения задач, основываясь на их производительности при масштабировании. При разработке программ часто возникает вопрос: как быстро алгоритм выполнит задачу на больших...
9 месяцев назад