Pull to refresh
6
0
Игорь @peacecoder85

Backend Engineer

Send message

Эти сложные map & slice в GO

Level of difficultyMedium
Reading time3 min
Views4.6K

В этой статье я хочу погрузиться в то, как работают некоторые структуры (далее ниже) в ГО. Хотя я и работаю с ГО уже 3й год, все равно есть вещи, в которые интересно погружаться. Хочу отметить, что я не буду погружаться прям сильно в реализацию того как устроены map и slice, скорее на столько, что бы понимать как они ведут себя и почему. Такое часто могут спрашивать на собеседованиях или это может писать более качественный и безопасный код.

Итак на сколько мы знаем (я надеюсь, что и вы читаете статью уже со знанием ГО) в ГО можно разделить типы переменных глобально на 2 группы

Читать далее

Одиночество СЕО: чем больше росла компания, тем чаще я оставался один на один с проблемами

Level of difficultyEasy
Reading time3 min
Views5.1K

Одиночество CEO — это реальность, которую переживают почти все, кто стоит во главе растущего бизнеса.

Я  несколько раз проходил через это и в статье делюсь своим опытом и выводами:

— Чем  больше бизнес, тем меньше рядом людей, с кем можно говорить открыто.

— Как понять, когда это становится проблемой.

— Как справляться с этим: от медитаций до смены круга общения.

Если ты руководишь компанией, посмотри, есть ли что-то знакомое? 

Читать далее

Волки на собеседовании: как не дать себя обмануть и не упустить талант

Level of difficultyEasy
Reading time4 min
Views34K

Рынок найма поменялся. Стало плотнее, агрессивнее и одновременно... гибче. Люди научились продавать себя лучше. А кто-то - слишком хорошо. Так появляются волки.

Кто такие волки? Это кандидаты, которые накручивают себе опыт, приукрашивают скиллы и порой вообще выдают чужие заслуги за свои. Они не обязательно плохие - часто это способ адаптации к суровому рынку. Но если ты ищешь человека под конкретную задачу и вам нужно добрать компетенций со стороны - важно понимать, кого ты на самом деле берёшь.

В этой статье разберём, как отличить реальный опыт от накрученного, какие ловушки могут быть в процессе собеседования и как не запороть найм из-за одной легенды.

Читать далее

Flutter 3.32 — Что нового во Flutter?

Level of difficultyMedium
Reading time15 min
Views4.6K

Добро пожаловать во Flutter 3.32! Этот релиз наполнен функциями, призванными ускорить вашу разработку и улучшить ваши приложения. Приготовьтесь к горячей перезагрузке (hot reload) для веба, потрясающим "сквирклам" (squircles) в стиле Cupertino для нативной точности и мощным новым интеграциям с искусственным интеллектом через Firebase. С 1024 коммитами от 156 уникальных участников, включая 39 новичков, Flutter 3.32 является свидетельством невероятной работы нашего сообщества. Давайте посмотрим, что нового!

Читать далее

Dart 3.8 — что нового в Dart?

Level of difficultyMedium
Reading time4 min
Views2.6K

Этот релиз приносит обновления форматера, null-aware элементы для коллекций, новые возможности кросс-платформенной разработки, лучший способ находить трендовые пакеты на pub.dev, доступность горячей перезагрузки (hot reload) для веба и многое другое! Мы также надеемся, что найдутся разработчики, заинтересованные в участии в нашей программе раннего доступа к FFigen и JNIgen.

Читать далее

Эволюция программирования: как парадигмы украли нашу свободу

Level of difficultyEasy
Reading time11 min
Views9.6K

Представьте: вы — инженер-программист из 60-х. Ваш код — это дикие прерии, где goto прыгает через функции как ковбой через барную стойку, а память — ваше личное ранчо. Вас внезапно переносят в 2023 год. Вас окружают фразы вроде «SOLID», «иммутабельность», «реактивные потоки». Вы пытаетесь написать пару строк на Python, но слышите: «Стоп. Мутировать переменные? В 2023-то? Это же грех!».

Что случилось с нашей свободой?

За последние 70 лет программирование из искусства постепенно превращалось в ремесло со своими жёсткими требованиями и правилами. Мы больше не взламываем реальность — мы строим мосты по ГОСТу.

Читать далее

7 качеств, которые вам нужны, чтобы стать креативным программистом

Level of difficultyEasy
Reading time11 min
Views13K

Привет! Меня зовут Газимагомед, я разработчик в PaaS-направлении Авито. Я прочитал книгу Ваутера Грунефелда «Креативный программист» и в этой статье рассказываю о своих впечатлениях. В тексте я сделал сжатый разбор всех глав книги, разобрал семь рекомендуемых автором качеств креативного программиста и провел параллели с собственным опытом.

Читать далее

Go отлаживать на проде, избавляться от хардкода и переходить на Ginkgo/Gomega: доклады для гоферов

Reading time2 min
Views2.6K

Что делать, если сервис на проде внезапно лег, а куда копать — непонятно. Знакомая ситуация? Запускать отладчик ой как страшно, но иногда это единственное решение. Как подготовиться и избежать фиаско? Несколько полезных советов дал ведущий инженер в платформе. А еще в нашей подборке — хардкор без хардкода на платформенном сервисе с CEL в конфиге и осознанный, но безболезненный переход на Ginko/Gomega для смелых Go-тестировщиков.

Читать далее

Дженерики в Go

Level of difficultyEasy
Reading time10 min
Views4.7K

Это первая часть статьи, посвященной дженерикам в Go, из четырех.

Одна из последних и наиболее интересных фич в Golang — поддержка дженериков. Эта серия туториалов будет посвящена тому, что это такое, какую пользу приносит, когда их стоит использовать и как они меняют процесс написания приложений на Golang. Начнем же!

Читать далее

Сколько памяти нужно в 2024 году для выполнения миллиона конкурентных задач?

Level of difficultyEasy
Reading time5 min
Views15K

Помните сравнение потребления памяти для асинхронного программирования на популярных языках 2023 года?

Мне стало любопытно, как поменялась ситуация за один год на примере самых новых версий языков.

Давайте снова проведём бенчмарки и изучим результаты!

Читать далее

Антипаттерны Go: чего нельзя делать и почему

Level of difficultyEasy
Reading time8 min
Views8.7K

Привет, Хабр! Go часто называют «языком простоты»: мол, нет лишних фич, легко стартовать, запустил горутину — и вперед! Но в реальности эта «простота» — палка о двух концах. Я собрал самые распространенные (на мой взгляд) антипаттерны в Go, которые приводят к дедлокам, паникам и километрам непонятного кода.

Читать далее

К слову об именах переменных в Go

Level of difficultyEasy
Reading time4 min
Views5.7K

Субботним утречком, решил поговорить, кое о чем действительно важном. Управление памятью, сборщик мусора - это все недостойная обсуждения фигня, имена переменных вот это действительно стоящая тема. Не вижу, почему бы трем благородным донам, ее не обсудить.

Для тех кто пишет на go давно, изложенное ниже может показаться очевидным, но буду рад вашим комментам (панамку за некоторую сумбурность изложения приготовил)

Одной из ключевых особенностей Go является ориентация на читаемость и краткость кода. Это проявляется как в конструкциях языка, так и в стилевых рекомендациях, принятых сообществом и разработчиками языка.

Короткие имена переменных — важная часть этой философии. В отличие от языков, где длинные и описательные имена переменных могут быть нормой (например, PHP или Java), Go поощряет использование коротких имен, особенно в случаях, когда их смысл легко понять из контекста. 

Читать далее

Механика горутин и каналов в Golang: разбор с примерами

Level of difficultyEasy
Reading time10 min
Views6.2K

Статья объясняет горутины и каналы в Go с наглядными визуализациями, показывая, как они работают и взаимодействуют для конкурентности.

Читать далее

Интерактивный тур по Go 1.24

Level of difficultyMedium
Reading time23 min
Views6.4K

Релиз Go 1.24 принесёт ряд важных обновлений, которые сделают разработку удобнее и эффективнее. В этом обзоре мы разберём ключевые изменения: поддержку слабых указателей, улучшенные финализаторы, новый механизм управления доступом к файловой системе, а также значительные оптимизации map, включая переход на Swiss Tables. Кроме того, появилось больше инструментов для тестирования и бенчмаркинга, новые криптографические возможности и усовершенствования работы с JSON.

Читать далее

Базовая архитектура сервиса на GO

Level of difficultyEasy
Reading time11 min
Views16K

В этой статье я делюсь своим опытом проектирования и реализации сервисов. Мы разберем, как организовать код в слои, чтобы он был поддерживаемым, тестируемым и гибким.

Читать далее

Обсуждаем изменения в Go 1.24, мьютексы и пакет unsafe — открытие сезона митапов для гоферов в Москве

Reading time2 min
Views1.7K

С приходом весны из-под сугробов снова начинают прорастать полезные митапы. На первой в сезоне Go-сходке от YADRO предлагаем присоединиться к обсуждению изменений Go 1.24. Эксперты из AvitoTech, Yandex и YADRO подискутируют, как обновления повлияют на код разработчиков. Также вы узнаете, как обеспечить высокопроизводительную конкурентность в Go и с умом применять пакет unsafe. 

Офлайн-участников ждет демозона с оборудованием для ЦОД и телеком-операторов, технические интерактивы и подарки. Регистрация открыта!

Читать далее

Глубокий разбор новых указателей в Go 1.24: слабые указатели и их реализация

Level of difficultyEasy
Reading time13 min
Views6.8K

Go 1.24 привнес в язык новый тип указателей – слабые указатели (weak pointers). В этой статье разберёмся, что они из себя представляют, как устроены внутри компилятора и runtime, а также как их использовать для оптимизации кода. Мы подробно изучим внутреннее устройство новых указателей, примеры их применения (например, для создания самоочищающихся кешей) и посмотрим, как они работают под капотом с точки зрения управления памятью и производительности.

Читать далее

Планировщик Go — самый подробный гайд простым языком

Level of difficultyMedium
Reading time27 min
Views51K

Давайте спроектируем с нуля планировщик Go — начнём с самой простой и понятной наивной реализации, а затем шаг за шагом будем разбираться, какие изъяны в ней есть, и придумывать как их решать, постепенно усложняя общую модель.

Это один из лучших способов понять сложную систему или концепцию — пройти путь её поэтапного проектирования. Система сложна, осознать её очень непросто, но мы разобьём её на простые шаги, понять которые очень легко. После этого пазл сам собой сложится в голове, и общая картина системы будет для вас такой же простой и очевидной.

Приступить к проектированию

Как я начал учить Go и правда ли он похож на Python. Мой личный опыт

Level of difficultyEasy
Reading time5 min
Views21K

Всем привет! Меня зовут Иван, я программирую на Python и недавно решил освоить новый ЯП. Долго думал, какой выбрать. В итоге решил довериться утверждению, что Python во многом похож на Go — на нем и остановился.

Ниже поделюсь личным опытом изучения языка — и да, я еще продолжаю его осваивать. Расскажу, какие встретил различия между Python и Go в типах данных, преобразовании типов данных, подходах к обработке ошибок. А еще обсудим, какой ЯП быстрее и можно ли импортировать и выполнить код Go в Python. Надеюсь, этот пост будет интересен тем, кто тоже собирается освоить второй ЯП. Ну, let’s Go!

Читать далее

Как оптимизировать код на Go? Раскладываем по полочкам

Level of difficultyMedium
Reading time8 min
Views5.5K

Привет, Хабр! Меня зовут Дмитрий Гурьянов, я руковожу командой Manuls в VK HR Tek (система ведения кадрового электронного документооборота). Сегодня расскажу о нюансах оптимизации на разных уровнях исполнения кода на Go.

Я хотел бы рассмотреть оптимизацию большого количества не самого сложного кода — веб-приложений, информационных систем и так далее. Часто по требованиям бизнеса приходится писать много нового кода, и редко бывает возможность вернуться назад и улучшить старые функции, поскольку постоянно появляются новые задачи.

Предлагаю разделить все возможные действия по оптимизации на группы по двум критериям: что мы оптимизируем и каким образом оптимизируем.

Читать далее

Information

Rating
7,691-st
Location
Одесса, Одесская обл., Украина
Date of birth
Registered
Activity

Specialization

Backend Developer
Senior
From 4,000 $