Обновить
1
0

Пользователь

Отправить сообщение

Проверка готовности приложения к работе в реальном ненадежном мире. Часть 5

Время на прочтение4 мин
Охват и читатели900

Пятая и заключительная часть статьи, в которой Виталий Лихачёв, SRE в booking.com и спикер курса Слёрма «Golang-разработчик» рассказывает, о чём стоит подумать перед выкаткой сервиса в жестокий прод, где он может не справиться с нагрузкой или деградировать из-за резких всплесков при наплыве пользователей и по вечерам.

Статья состоит из 5 частей, которые выходят по очереди:

1. Надежность.

2. Масштабируемость/отказоустойчивость.

3. Resiliency/отказоустойчивость.

4. Безопасность. Процесс разработки. Процесс выкатки.

5. Наблюдаемость. Архитектура. Антипаттерны.

Читать далее

Паттерн Наблюдатель в Golang на котиках

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели1.7K

Привет, Хабр! Сегодня будем разбирать паттерн Наблюдатель на примере наших любимых пушистиков — котиков. Ведь кто, как не коты, могут быть идеальными субъектами и наблюдателями в нашем коде?

Читать далее

Уровни изоляции транзакций в PostgreSQL, MySQL, MSQL, Oracle с примерами на Go

Уровень сложностиСредний
Время на прочтение33 мин
Охват и читатели11K

В данной статье обсудим проблемы, возникающие при конкурентной работе с данными, а также инструменты для их решения – атомарные инструкции, явные и неявные блокировки и уровни изолированности транзакций, реализованные в OLTP СУБД PostgreSQL, MySQL, SQL Server, Oracle с примерами на Go. Поговорим о деталях их реализации в указанных СУБД. На примере PostgreSQL проведем benchmark-тестирование производительности уровней изоляции с использованием инструмента pgbench

Читать далее

SQL для Junior Data Engineers: примеры бизнес-задач

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели7.1K

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

Несмотря на то, что многие SQL-запросы могут казаться «аналитическими», на практике именно Data Engineers часто отвечают за их написание и оптимизацию. Ведь аналитикам и специалистам по продукту требуется быстрый и точный доступ к данным для их анализа, а это означает, что DE должны обеспечить доступ к нужным данным и помочь в создании запросов для обработки больших объемов информации.

В этой статье я привожу примеры SQL-запросов, которые соответствуют уровню владения языком, необходимому для Junior Data Engineer.

Читать далее

Погружение в интерфейсы Go

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели16K

Интерфейсы — одна из самых сложных тем для начинающих в Go. Я решил тщательно разобраться с этой темой и одновременно написать эту статью. После прочтения этой статьи вы сможете ответить на следующие вопросы:
Что такое интерфейс? Что такое значение интерфейса? Что такое пустой интерфейс? Почему nil-интерфейс не равен nil? Где разместить интерфейс? Какая структура интерфейса?

Читать далее

Golang + Redux

Время на прочтение4 мин
Охват и читатели859

Привет, Хабр!

Сегодня мы попробуем реализовать управление состоянием в Go‑приложениях с помощью паттерна Redux. Да‑да, Redux не только для JS.

Redux — это предсказуемый контейнер состояния для приложений. Он помогает управлять состоянием приложения централизованно, делая его более предсказуемым и удобным для отладки. В основном Redux ассоциируется с фронтендом на JavaScript, но принципы, лежащие в его основе, иногда могут подойти и для Go‑приложений.

Читать далее

Вопросы по мэпам (map) в Go

Время на прочтение5 мин
Охват и читатели2.9K

Пару недель назад я собрал в статейку несколько базовых вопросов по массивам и слайсам - и в комментариях было предложено "а теперь надо про мэпы". Хорошая мысль - мы пользуемся ими почти на "интуитивном" уровне и о некоторых нюансах не задумываемся. Довольно много статей посвящено сверхподробному изложению внутреннего устройства - это мы пропустим. А посмотрим на мэпы так сказать "снаружи", с точки зрения их использования. Для знатоков тут вряд ли будет что-то новенькое, а тем кто недавно в языке всё-таки может послужить небольшим "чек-листом" :)

Мы используем жаргонный термин "мэпа" (она же "мапа") вместо того чтобы писать по-английски "map" чисто ради того чтобы иметь возможность пользоваться свойственными русскому языку падежными окончаниями для большей связности текста.

Читать далее

Паттерны проектирования Go. Fan-in

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели2.4K

Доброго времени суток!

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

В этой статье хочется немного поговорить о паттернах, которые применяются в Go. Поэтому рассмотрим, так называемый, fan-in: попишем немного код и unit-тест.

Читать далее

Как писать качественные unit-тесты: процент покрытия, мутанты и работа с моками

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели5.4K

Привет, Хабр! Меня зовут Марина, я Backend-инженер в компании Авито. Сегодня я хочу поделиться собственными рекомендациями, к которым удалось прийти при работе над качеством тестового покрытия сервисов нашей команды.

Читать далее

Приложение на Go шаг за шагом. Часть первая: скелет, НТТР-сервер и конфигурация

Уровень сложностиПростой
Время на прочтение10 мин
Охват и читатели8.2K

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

Привет! Я Владислав Попов, автор курса «Go-разработчик с нуля» в Яндекс Практикуме. В серии статей я хочу помочь начинающим разработчикам упорядочить знания и написать приложение на Go с нуля: мы вместе пройдём каждый шаг и создадим API для получения информации о книгах и управления ими. 

Читать далее

Начинаем читать на английском — как сделать первый шаг и не забросить

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели13K

Думаю, мало кто станет спорить с тем, что знание английского языка — это один из важнейших навыков ИТ-специалиста. На начальных этапах становления ИТ-карьеры такой потребности может и не ощущаться, однако по мере роста начинаешь осознавать важность и необходимость этого навыка. Английский крайне необходим для чтения документации, новейших книг по актуальным технологиям (которые либо вовсе не переводят на русский, либо переводят со значительной задержкой, да еще часто с многочисленными опечатками и неточностями), для поиска ответов на технические вопросы и решения проблем (поиск google, stackoverflow, и пр.), для того же общения с ChatGPT и другими подобными системами, для расширения географии своей деятельности (общение с иностранными заказчиками или клиентами) либо для релокейта.

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

Читать далее

Рецензия на книгу “Основы проектирования баз данных (Database Design Solutions, 2nd Edition)”

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели5.2K

Сегодня мы расскажем о новой переводной книге по проектированию баз данных от автора Рода Стивенса «Основы проектирования баз данных. — 2-е изд» (Database Design Solutions, Second Edition). Это практическое руководство почти на 800 страниц по проектированию реляционных и нереляционных баз данных на разных аппаратных платформах и в кросс-платформенных окружениях. И да, речь в книге идет о формировании правильной структуры данных в БД под ваши задачи и проект, а не о разработке программной оболочки (СУБД).

Читать далее

Развлекаемся с итераторами в Go

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели4.8K

Релиз версии Go 1.23 добавил поддержку итераторов и пакет iter. Теперь можно перебирать константы, контейнеры (map, slice, array, string) и функции. Сначала создание итератора показалось мне неудобным, хотя в то же время его использование выглядело простым.

Моя проблема с подходом к итераторам в Go заключается в том, что их нельзя «связывать» так,как это можно делать в JavaScript:

Читать далее

Как подготовить CV, которое даст больше приглашений на интервью и задаст правильный тон коммуникации на собесе

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели6.3K

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

Почему так происходит и как заставить резюме не просто привлекать внимание, но и задавать нужный тон на самом собеседовании?

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

Читать далее

Английский для продакта: как я выучил язык для срочного поиска работы

Время на прочтение9 мин
Охват и читатели22K

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

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели129K

Привет, Хабр! Я не являюсь преподавателем английского языка, но, как и многие присутствующие, долгие годы хотел постигнуть его дебри. В школе я от всего сердца завидовал ребятам, которым он даётся налегке, без видимых трудностей. Я же зубрил, пытался понять, получал двойки… и люто ненавидел английский язык как школьный предмет. Мечтал владеть, но совсем не хотел учить. После школы и университета приступал к его изучению несколько раз, однако каждый мой всплеск быстро угасал.

Наконец случилось чудо. В одну из очередных попыток я нащупал способ, который позволил продолжать развиваться, делать успехи, осознавать их и разжигать мой огонь всё сильнее и сильнее. Сегодня мне сложно представить день, проведенный без английского языка. И мне не хочется говорить без “изучения”, поскольку не сказал бы, что я именно учу. Скорее — постепенно “прошиваюсь” английским, как это обычно происходит с новорожденным детьми, которые постепенно начинают говорить, слушая и наблюдая за своими родителями. В настоящее время мой словарный запас не такой большой: 9 — 12 тысяч слов (зависит от теста). Я свободно смотрю видео на Ютубе разнообразной тематики (видеоуроки, спорт, фитнес, музыка, путешествия, кулинария, обзоры и т.д.), читаю документацию, компьютерную и популярную литературу, публицистику.

Читать далее

Собиратель конфигураций на Go

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели2.5K

Начну с того, что я C#-разработчик, но Go мне очень нравится и один из проектов я решил для разнообразия и расширения знаний написать в связке Go + React.js + MongoDB. И тут я понял, что не могу найти библиотеку пакет для чтения единых настроек конфигурации из разных источников. Часть настроек была в .env, часть - в переменных окружения. Хотелось получить экземпляр одной структуры со всеми значениями, выполнив какую-то одну функцию. Возможно, плохо искал. Но, не найдя, решил написать своё. Тем более у меня уже был опыт работы над подобным open-source проектом, но для C#.

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

Посмотреть, чего он там нагородил

Написание функционального тестирования в Go

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели3.9K

Не все знают, как писать функциональные тесты. В этой статье будут библиотеки, фишки про функциональные тесты, а самое главное — попрактикуемся их писать на примере Rest API.

Читать далее

Применения Continuation-passing style в Go

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели3.6K

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

Читать далее

Погружение в параллелизм в Go

Время на прочтение10 мин
Охват и читатели6K

Привет, Хабр!

Эта статья является неким сборником многих статей про все, что связано с параллелизмом в Go, например: горутины, каналы, select и многое другое.

Я хотел углубиться в тему горутин с параллелизмом и, слушая на фоне "The Doors", поглощал информацию и выделял интересные мысли из статей

Надеюсь, Вы найдете для себя то, что искали.

Погрузиться в параллелизм

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность