Pull to refresh
21
0
Eugene Leonovich @gen

rybakit

Send message

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

Level of difficultyEasy
Reading time15 min
Views6.7K

Дмитрием Королевым расскажет про распространённые ошибки при работе со слайсами, каналами и другими структурами в Go. Научимся предупреждать их и справлять на примерах.

Читать далее
Total votes 24: ↑24 and ↓0+27
Comments6

Что нужно знать, чтобы успешно пройти System Design Interview

Reading time16 min
Views33K

Для любого разработчика глубокое понимание основных принципов системного проектирования является необходимым условием для создания стабильных и масштабируемых программных систем, способных обеспечивать высокую производительность. Системное проектирование (System Design) включает разработку архитектуры и структуры программной системы, направленную на удовлетворение специфических требований и обеспечение требуемых показателей производительности.

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

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

Читать далее
Total votes 49: ↑47 and ↓2+56
Comments26

Дайджест полезных материалов из мира Golang за неделю (21.04.24 -28.04.24)

Level of difficultyEasy
Reading time2 min
Views2K

Подборка полезных материалов и находок из мира Go за неделю.

🛠 Инструменты недели: 

 • go-size-analyzer - инструмент для анализа размера зависимостей в скомпилированных бинарных файлах 

Go.

 • Go-mongox - пакет Go Mongo, поддерживающий операции по работе с документами и эффективным компоновщиком данных BSON с использованием различных типов данных.

 • Dendy - это эмулятор NES/Famicom, написанный на Go и названный в честь советского клона Famicom, который был у многих в детстве.

Аутентификация и OAuth с помощью Go - большой список полезных библиотеки для реализации схем аутентификации

 •The Gowebly CLI  - инструмент интерфейса командной строки, который упрощает создание Go приложений на серверной части.

📚 Что почитать:

Fuzzing-тестирование. Практическое применение

Бойлерплейт как инструмент стандартизации Go-проектов

Как добавить метаданные в изображение?

Пишем поиск семантически похожих текстов (или товаров) за полчаса на Go и Postgres (pgVector)

—  Шаблон backend сервера на Go

Использование миграций баз данных в Go

My weekly dev.to recommendations

—  What’s New in Go 1.22: cmp.Or

Golang in-memory key-value pair cache

Golang generator functions (Experimental in 1.22)

From Homemade HTTP Router to New ServeMux

(Part 5)Golang Framework Hands-on - KisFlow Stream Computing Framework-Function Scheduling

Go Program pattern 04:Map-Reduce

Live reload em Go com docker e compile daemon

Go program pattern 05 : Decorations

Смотреть
Total votes 11: ↑8 and ↓3+6
Comments0

Кручу-верчу, запутать хочу

Level of difficultyEasy
Reading time2 min
Views15K

Салют! В этой небольшой статье я попытался собрать необычные и малоизвестные трюки с перенаправлениями в bash, которые могут значительно упростить работу.

Читать далее
Total votes 59: ↑58 and ↓1+71
Comments16

Многопоточность и параллелизм в Go: Goroutines и каналы

Reading time15 min
Views10K


Язык программирования Go, разработанный с упором на простоту и эффективность, предлагает уникальный подход к реализации параллельных вычислений через Goroutines и каналы.

Goroutines, представляющие собой легковесные потоки выполнения, обеспечивают значительные преимущества по сравнению с традиционными потоками, используемыми во многих других языках программирования. Они позволяют создавать тысячи параллельных процессов без значительной нагрузки на системные ресурсы. Каналы в Go, предоставляя мощный механизм для безопасной коммуникации между Goroutines, дополнительно упрощают управление параллельными задачами и обмен данными.
Читать дальше →
Total votes 26: ↑22 and ↓4+20
Comments12

Мокаем сервисы с Mountebank и Go

Level of difficultyMedium
Reading time11 min
Views1.7K

Mountebank - это мощная платформа для тестирования API и mocking-a, предоставляющая пользователям функционал и инструменты для создания гибких, настраиваемых и надежных тестовых окружений. В этой статье автор рассмотрит настройку Mountebank на реальном примере.

Читать далее
Total votes 3: ↑3 and ↓0+3
Comments0

100 промптов для ChatGPT

Reading time10 min
Views44K

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

Читать далее
Total votes 26: ↑17 and ↓9+10
Comments23

Yet Another Easyjson. Как я не устаю делать велосипеды, а главное зачем

Level of difficultyMedium
Reading time16 min
Views3.6K

Я люблю время от времени взять и переделать что-нибудь уже готовое. Цель не в том, чтобы сделать что-то лучше или доказать свою гениальность – я просто ищу опыт. Как получить опыт в разработке сложного инструмента, если ты берешь уже готовые фреймворки и пакеты и просто собираешь из них свое решение? Да, это быстро и часто довольно эффективно, но получаешь ли ты ценный опыт, узнаешь ли о вероятных подводных камнях и начнешь ли ты лучше понимать язык на котором программируешь? Конечно нет.


Сразу скажу: велосипедостроение в коммерческой разработке — зло. Создавать что-то, что уже существует и было отлажено многократно – это бессмысленно. И учитывая время, необходимое для выхода на рынок (Time To Market), это еще и опасно. Кроме того, новый код — это новые ошибки. Именно поэтому часто проще взять готовое и дополнить его до нужного уровня при работе в реальных продуктовых проектах.


Тем не менее, я противоречу сам себе, опровергая то, что сказал ранее. Я разработал на языке GO свой собственный easyjson в рамках именно продуктовой разработки, за что мне бесконечно стыдно. Если кто-то скажет, что я потратил деньги бизнес-заказчика в угоду своим амбициям, я не буду с ним спорить, но у меня были определенные причины, а главное теперь у меня есть интересный опыт. Об этом опыте я и расскажу.



Читать дальше →
Total votes 14: ↑12 and ↓2+14
Comments2

Tarantool: как избавиться от «зоопарка технологий» с помощью потоков событий

Reading time14 min
Views5.1K


Каждый проект рано или поздно обрастает разными технологиями, часть из которых может выполнять схожие или даже одинаковые функции. Наряду с развитием продукта это несет и скрытые трудности, в первую очередь для команды, которая должна поддерживать и развивать весь «зоопарк». 

Меня зовут Иван Банников, я ведущий разработчик VK Tech. В этом материале я расскажу об основных предпосылках разрастания используемого стека, а также на примере IoT-платформы, которую мы поддерживали, поделюсь опытом избавления от «зоопарка технологий» в области обработки сообщений.
Читать дальше →
Total votes 37: ↑36 and ↓1+45
Comments0

Bash Auto Completion в Linux

Level of difficultyEasy
Reading time5 min
Views15K

Пользователи взаимодействуют с Linux при помощи многочисленных команд, вводимых в командной строке. Учитывая разнообразие этих команд и их параметров, не так просто запомнить все наизусть.

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

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

Читать далее
Total votes 29: ↑27 and ↓2+29
Comments6

Какой инопланетные астрономы увидели бы Землю

Reading time9 min
Views9.1K


Когда вы смотрите на какой-либо объект Вселенной, вы не видите его таким, какой он есть в момент наблюдения. Скорость света, несмотря на то, что это самая высокая скорость, с которой любой сигнал может распространяться по Вселенной, всё же конечна. Неважно, насколько близко или далеко находится объект — вы видите его только таким, каким он был определённое количество времени назад: в тот момент, когда наблюдаемый вам объект излучал (или отражал) свет. Тот факт, что свет должен преодолеть пространство от изучаемого объекта до наблюдателя, порождает пробел в знаниях об этом объекте, заполнить который можно только путём умозаключений.

Каждый наблюдатель во Вселенной, если только он не провёл большое количество времени, путешествуя со скоростью, близкой к скорости света (или не находился в чрезвычайно сильном гравитационном поле, например за горизонтом событий чёрной дыры), будет воспринимать «прямо сейчас» как один и тот же момент времени относительно Большого взрыва: с этого события прошло 13,8 миллиарда лет. Для близко расположенных объектов скорость света достаточно велика, чтобы разницей во времени между источником и наблюдателем в большинстве случаев можно было пренебречь. Но чем дальше мы смотрим, тем дальше назад во времени, и тем ближе к моменту Большого взрыва мы заглядываем.
Читать дальше →
Total votes 42: ↑38 and ↓4+49
Comments28

CLI инструменты, которые облегчат времяпровождение в терминале и сделают его приятнее

Reading time6 min
Views50K

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

В этом посте описан мой топ-25 обязательных инструментов CLI, на которые я привык полагаться. Если тут нет вашего любимого - дайте мне знать в комментариях :)

Читать далее
Total votes 100: ↑93 and ↓7+100
Comments83

Английский, которому меня не учили

Reading time14 min
Views74K

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

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

Я не раз в своей жизни слышал, что Английский чрезвычайно сложен. Подобные заявления фактически являются чит-кодом. Вы просто сдаётесь и перестаёте пытаться. А зря. В английском языке есть очень много полезных и понятных вещей. 

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

Okay, let's go...
Total votes 104: ↑102 and ↓2+131
Comments174

Под капотом у компилятора Go: добавление нового оператора в Go — часть 1

Reading time11 min
Views9.7K

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

Мы собираемся изменить компилятор Go, добавив новую (условно) языковую фичу, и собрать модифицированный компилятор, чтобы ее опробовать.

Читать далее
Total votes 17: ↑14 and ↓3+12
Comments2

5 неочевидных способов улучшить иностранный язык с помощью ChatGPT

Reading time5 min
Views37K

Кто-то просит нашумевшего чат-бота сгенерировать код, кто-то — написать песню в стиле The Queen. Ну а я — как лингво-коуч и гик — решила упороться и посмотреть, поможет ли система OpenAI прокачать иностранный язык. Спойлер: очень даже.

Протестировала на себе несколько способов → Выделила 5 самых годных → Снабдила комментариями, как извлечь максимум. Дочитайте до 5-го, это мой любимый 🙃

Читать далее
Total votes 51: ↑47 and ↓4+53
Comments22

Разбираемся с Docker: как создаются образы

Reading time13 min
Views45K

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

Читать далее
Total votes 29: ↑28 and ↓1+33
Comments3

Полезные ресурсы для погружения в Go: выбор сотрудников Selectel

Reading time4 min
Views17K

Попросили коллег порекомендовать ресурсы — подкасты, ютуб-каналы, книги, блоги и GitHub-репозитории — для изучения языка программирования Go. Сохраняйте подборку в закладки: пригодится и начинающим, и опытным специалистам. А также делитесь своими вариантами в комментариях.
Читать дальше →
Total votes 37: ↑36 and ↓1+44
Comments4

Как улучшить английский в документации

Reading time11 min
Views34K

Я работаю техническим писателем в компании documentat.io. Мы занимаемся заказной разработкой технической документации, в том числе на английском языке. Иногда я дорабатываю уже существующие документы или спецификации к API на английском. Как правило, такие документы написаны русскоязычными разработчиками, которые неплохо владеют английским. И всё же они часто допускают характерные грамматические, пунктуационные и стилистические ошибки.

Корень этих ошибок один — разные языковые механизмы. Нам бывает легко запутаться в употреблении временных форм, порядке слов или непонятно зачем придуманных артиклях. 

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

Читать далее
Total votes 81: ↑80 and ↓1+97
Comments27

Как выйти из тупняка и родить идею

Reading time7 min
Views18K

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

Читать далее
Total votes 39: ↑37 and ↓2+43
Comments10
1
23 ...

Information

Rating
Does not participate
Location
Нидерланды
Date of birth
Registered
Activity