Pull to refresh
0
0
Шарапов Вячеслав @MrAnger

PHP Backend разработчик

Send message

Go vs PHP: делимся материалами Lamoda Tech
PHP/Go
Meetup

Reading time2 min
Views5K

Потребность в Golang-разработчиках растет с каждым годом, и наша компания не исключение. Мы постоянно ищем специалистов, а особенно рады тем, кто знает два языка — и Go, и PHP. И готовы переучивать со старой доброй «пыхи» и растить новых гоферов.

Две недели назад мы собрались в Lamoda Home, чтобы выяснить, существуют ли преимущества Go перед PHP. Серьезный спор проходил сразу на двух площадках: в зале и в трансляции митапа. Сегодня делимся материалами мероприятия. Ищите себя на фото, если были в этот день с нами!

Читать далее
Total votes 11: ↑6 and ↓5+2
Comments5

Переход с WebStorm на Cursor (VS Code)

Level of difficultyMedium
Reading time7 min
Views11K

Думаю, многие в курсе, что JetBrains остановили продажи своих продуктов на территории России, но стоит отдать должное оставили бессрочные лицензии на ту версию продукта, что использовалась на тот момент. Не круто конечно, но долгое время меня этот момент не волновал. Да, не самое свежее ПО, но и платить не нужно. Однако недавно на одном из проектов мне было нужно перейти на Vite и Vitest. И в этот момент я осознал, как для меня важно запускать тесты из IDE. Оказалось, что моя версия WebStorm не поддерживает Vitest.

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

Как вы, наверное, поняли, сегодня будет рассказ о том, как я сменил религию IDE, совершив переход с WebStorm на Cursor (VS Code).

Читать далее
Total votes 10: ↑6 and ↓4+5
Comments15

Подготовка к техническому собеседованию Senior/Team Lead backend

Level of difficultyMedium
Reading time3 min
Views19K

Недавно появились мысли походить на собеседования чем я успешно занялся. Если конкретно - смотрел лидовскую/сеньерскую позиции на Python и Golang(но статья может пригодиться backend разработчикам в целом). Не ставлю целью статьи объять все не объятное и дать какие-то гарантии. Я лишь зафиксирую данные для себя на будущее.

Вообще ходить на собеседования неплохой навык - в моем случае удается неплохо прокачать технические скилы и узнать запросы рынка на текущий момент(ведь может случиться так, что твои навыки перестанут быть актуальными).

Сразу сделаю пометку, что некоторые навыки/ресурсы специфичны(по типу нарешивания Leetcode), но отталкиваемся от текущих реалий рынка.

Читать далее
Total votes 22: ↑21 and ↓1+22
Comments13

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

Level of difficultyEasy
Reading time15 min
Views9.1K

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

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

Бэкэнд для начинающих или типовые ошибки бэкэндера

Level of difficultyEasy
Reading time12 min
Views20K

Всем привет! Я Олег, fullstack‑разработчик в компании Тензор, тимлид небольшой команды.

Одна из моих обязанностей в роли тимлида это code review. За годы работы я видел многое и выделил для себя типовые ошибки, с которыми сталкиваются начинающие backend‑разработчики. Сегодня хочу рассказать о некоторых из них.

Читать далее
Total votes 53: ↑52 and ↓1+61
Comments11

Как мы делаем канареечный деплой в PaaS

Level of difficultyMedium
Reading time7 min
Views2.6K

Всем привет, меня зовут Антон Малафеев, я руководитель группы инженеров IT‑инфраструктуры в СберМаркете. Моя команда вот уже больше 3-х лет занимается разработкой деплоя для PaaS и сопутствующих инструментов.

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

Но сначала немного цифр. Ниже на рисунке — наша статистика использования канареечного деплоя. На момент написания статьи у нас в проде 200+ сервисов, 5300 подов PaaS, ежемесячно мы делаем 2 тысячи деплоев в продакшн и 11 тысяч деплоев в стейдж, которые проходят через канарейку.

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

Как составить хорошее резюме и продать себя дорого

Level of difficultyMedium
Reading time6 min
Views19K

Как создать эффективное резюме и сопроводительное письмо для успешного поиска работы в IT сфере?

Обсудим важность правильного форматирования и структурирования резюме, а также на что обращают внимание работодатели. Раскроем советы по написанию сопроводительного письма, обсудим его структуру и способы выделить свои профессиональные навыки.

Читать далее
Total votes 17: ↑6 and ↓11-2
Comments10

Сравнение технологий WebSockets, Server-Sent-Events, Long-Polling, WebRTC и WebTransport

Reading time16 min
Views11K

При работе с современными веб-приложениями реального времени незаменима возможность отправлять события с сервера на клиент. Именно этой необходимостью продиктовано то, что за годы работы было изобретено несколько методов для этой цели, каждый с собственным набором достоинств и недостатков. Первоначально единственным вариантом был длинный опрос. Затем в качестве альтернативы появились веб-сокеты — более надёжное решение для двунаправленной коммуникации. Вслед за веб-сокетами появились события, отправляемые сервером (SSE), более простой метод, обеспечивающий однонаправленную связь от сервера к клиенту. Забегая вперёд, сейчас разрабатывается ещё и протокол WebTransport, который может тем более изменить ландшафт этой области, обеспечивая более эффективный и гибкий подход, располагающий к масштабированию. В некоторых нишевых случаях можно присмотреться и к технологии WebRTC, предназначенной для работы с событиями в направлении сервер-клиент.

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

Читать далее
Total votes 24: ↑22 and ↓2+27
Comments4

Неожиданные последствия запуска PostgreSQL в Docker: замедление запросов в 100 раз

Level of difficultyMedium
Reading time4 min
Views42K

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

Читать далее
Total votes 95: ↑84 and ↓11+93
Comments57

Привычка быть SOLIDным разработчиком

Level of difficultyMedium
Reading time20 min
Views15K

Привет, Хабр! Меня зовут Грант, я уже 5 лет занимаюсь backend-разработкой в SimbirSoft, а с 2021 года возглавляю Backend-отдел компании в Краснодаре. В последние несколько лет неоднократно замечаю, что на входном интервью соискатели часто путают принципы разработки. Поэтому в этой статье решил разобрать, как проще их понимать, какие связи между ними прослеживаются, стоит ли учить все или что-то можно пропустить. А еще попробую раскрыть некоторые особенности, какие секреты скрывают популярные принципы разработки.

Погрузиться 👀
Total votes 15: ↑12 and ↓3+11
Comments5

Профилирование со сверхсветовой скоростью: теория и практика. Часть 1

Reading time13 min
Views10K
Привет! Из заголовка вы уже поняли, о чём я собираюсь рассказать. Тут будет много хардкора:
мы обсудим Java, С, С++, ассемблер, немного Linux, немного ядра операционной системы. А ещё разберём практический кейс, поэтому статья будет в трёх больших частях (достаточно объёмных).



В первой мы попробуем выжать всё возможное из существующих профилировщиков.
Во второй части сделаем собственный маленький профилировщик, а в третьей посмотрим, как же профилировать то, что профилировать не принято, потому что существующие инструменты не очень для этого подходят. Если готовы пройти этот путь — жду вас под катом :)
Читать дальше →
Total votes 29: ↑29 and ↓0+29
Comments3

Оптимизация работы с PostgreSQL в Go: от 50 до 5000 RPS

Reading time14 min
Views28K

Привет, меня зовут Иван, и я делаю Авито Доставку. Когда пользователь покупает товар с доставкой, мы показываем ему список отделений служб доставки с ценами. Цена доставки может меняться от отделения к отделению. Мы смотрим на область карты, где покупатель ищет товар и информацию по объявлению, например, координаты продавца, вес и размеры товара. И на выходе показываем человеку список отделений с адресами и ценой доставки в каждое из них.


В ходе разработки калькулятора цены доставки возникла такая задача: есть структура базы данных PostgreSQL и запрос к ней от сервиса на Go. Нужно заставить всё это работать достаточно быстро. В итоге нам удалось поднять пропускную способность сервиса с 50 до 5000 RPS и выявить пару нюансов при общении сервиса с базой. Об этом и пойдёт рассказ.


Читать дальше →
Total votes 44: ↑39 and ↓5+42
Comments44

Как я зарабатывал $10,000 в месяц на серверах ARK: Survival Evolved

Level of difficultyEasy
Reading time16 min
Views89K

Я — ведущий гейм дизайнер с опытом разработки крупных, хардкорных проектов в жанрах от MMORPG и CRPG до мобильной MOBA. Почти три года мы с лучшим другом продюсировали, дизайнили, разрабатывали и занимались живым оперированием своих серверов по игре ARK: Survival Evolved. За это время мы неплохо заработали (в среднем проект приносил $6000-12000 gross ежемесячно). Конечно же, мы столкнулись с тонной сложностей и челленджей, и выучили много уроков. В этой статье я хочу не только рассказать о нашем приключении, но и поделиться выученными уроками. Оперирование кастомных серверов огромных франшиз типа Roblox, Fortnite или Minecraft и других игр похожа на разработку игр в классическом понимании, но имеет под собой свою специфику. Этот опыт будет полезен не только моддерам, но и разработчикам и продюсерам игр. 

ARK: Survival Evolved — ММО экшен от 1 и 3-го лица с крафтом, строительством и динозаврами. На динозаврах в игре можно охотиться, можно приручать, ездить на них, разводить и воевать с другими племенами в игре, и это основная фишка, привлекающая игроков. Но настоящая основная особенность игры в том, что карты — собственно, ковчеги, объединены в кластеры, внутри которых игроки могут беспрепятственно путешествовать между карт, превращая мир игры в настоящее ММО — в отличие от большинства остальных подобных игр. Это гениальная игра, о которой невозможно рассказать в двух словах, и она доводит своих игроков до настоящей аддикции, и те проводят в ней тысячи и десятки тысяч часов.

Читать далее
Total votes 108: ↑102 and ↓6+114
Comments44

Как я пишу HTTP-сервисы спустя 13 лет работы с Go

Level of difficultyMedium
Reading time18 min
Views25K

Примерно шесть лет назад я написал пост о том, как пишу HTTP-сервисы на Go, и сегодня я снова хочу рассказать, как пишу HTTP-сервисы.

Тот пост оказался довольно популярным и вызвал обсуждения, повлиявшие на то, как я делаю это сегодня. И спустя годы ведения подкаста Go Time, обсуждения Go в X/Twitter и поддержки подобного кода я решил, что настало время обновить информацию.

(Если вы педант и скажете, что Go не совсем 13 лет, то я отвечу, что начал писать HTTP-сервисы на Go версии .r59.)

В этом посте рассматривается широкий спектр тем, связанных с созданием сервисов на Go

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

Заблуждения джунов о том, кто такие сеньоры

Level of difficultyEasy
Reading time7 min
Views34K

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

Вспоминаю время, когда я ещё плохо владел терминалом. У меня возникли какие-то проблемы с дистрибутивом Linux. Что-то не монтировалось правильно или появлялись ошибки разрешений для файлов, в которых я не мог разобраться самостоятельно, поэтому попросил помощи у одного из сеньор-разработчиков. Величественность и грация, с которой он обращался с Vim и его командами, вдохновляла, это запомнилось мне навсегда. А ещё я захотел стать таким же, как он: быстрым, эффективным, всезнающим гуру. Реальность оказалась гораздо более приземлённой, но и в каком-то смысле приносящей бóльшую отдачу.

Читать далее
Total votes 67: ↑62 and ↓5+69
Comments40

Эволюция системы разработки на SQL

Level of difficultyEasy
Reading time9 min
Views5.6K

Мы — SQL команда Срочного рынка Московской Биржи, занимаемся разработкой и сопровождением бэкофиса торгово-клиринговой системы Spectra с момента ее возникновения. Срочный рынок Московской Биржи — это более 500 фьючерсных и 30000 опционных инструментов, несколько миллионов сделок в день.

Торгово-клиринговая система Срочного рынка (ТКС Spectra) изначально строилась на основе MS SQL, и за пару десятков лет прошла сложный путь от нескольких серверов БД до огромной системы с сервис-ориентированной архитектурой. Долгое время вся бизнес-логика системы разрабатывалась в программном слое на серверах MS SQL: и матчинг заявок, и расчет обеспечения, и управление клиентами были реализованы на T-SQL.

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

В этой статье мы хотим рассказать об эволюции нашей системы разработки на SQL.

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

Вопросы по SQL, которые часто задают на собеседовании. Часть 1

Reading time14 min
Views58K

SQL (Structured Query Language) – это язык программирования, используемый для управления реляционными базами данных. В этой статье я собрал вопросы по SQL, с которыми вы можете столкнуться на собеседовании. Их часто задают для проверки общих знаний и навыков.

Читать далее
Total votes 29: ↑25 and ↓4+22
Comments24

Вопросы по SQL, которые часто задают на собеседовании. Часть 2

Reading time16 min
Views14K

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

Часть 1 серии вопросов для интервью по SQL

Читать далее
Total votes 12: ↑7 and ↓5+4
Comments9

Жесткие факты о софт скилах

Level of difficultyEasy
Reading time6 min
Views41K

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

Читать далее
Total votes 25: ↑19 and ↓6+18
Comments0

Как прогнозировать время выполнения задач

Level of difficultyHard
Reading time20 min
Views36K

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

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

Читать далее
Total votes 63: ↑61 and ↓2+66
Comments57
1

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Web Developer
Middle
From 220,000 ₽
Git
Linux
Docker
PostgreSQL
PHP
Laravel
RabbitMQ
Apache Kafka
REST
MySQL