Всем привет! Меня зовут Иван Сёмин, я руковожу несколькими командами разработки в компании Домклик. На данный момент в моём подчинении 28 человек, часть из которых приходила на junior-позицию. Хочу поделиться своим видением погружения новых сотрудников в процессы компании и коллектив, и рассказать о способах развития разработчиков до middle-уровня в крупных командах.
Рубрика «backend» - 3
Этапы погружения junior-разработчика
2022-03-29 в 8:00, admin, рубрики: backend, junior, Блог компании ДомКлик, Карьера в IT-индустрии, управление персоналом, Учебный процесс в ITРазработчик в стране DBA: как оптимизация запросов БД окончилась обнаружением «подводных камней» и багрепортом в MariaDB
2022-01-05 в 7:00, admin, рубрики: backend, mariadb, performance, php, sql, базы данных, Блог компании SuperJob, высокая нагрузка, высокая производительность, оптимизация запросов, ускорение сайтаЭта история про то, как искать виновника торможения запросов, если база и бэкенд переводят стрелки друг на друга; почему при обновлении базы не стоит раньше времени завершать нагрузочное тестирование; а также о том, что не всегда во встроенных инструментах оказываются те, что упомянуты в документации.
Ну а начиналось все очень мирно: мы хотели немного подтянуть сайт под обновленные требования Google.
Приёмы ускорения кода на JS и других языках: подборка от разработчика поиска Яндекса
2021-08-03 в 8:01, admin, рубрики: backend, javascript, web-разработка, Блог компании Яндекс, быстрый код, высокая производительность, практические советы, Программирование, Разработка веб-сайтовНекоторые из приёмов будут полезны и тем, кто пишет на других языках. Все способы разделены на группы по убыванию специфичности: от наиболее общих до конкретных. Почти все примеры кода взяты из реальных проектов, из реального продакшена.
- Организационные
Культура разработки performance-first
Бюджет скорости
Performance mantras - Те, что можно использовать независимо от языка и его реализации
Смена языка или фреймворка
Смена алгоритма
Оптимизация алгоритма
Вынос инвариантов на уровень выше
Boolean short circuit
Досрочный выход из цикла
Предвычисление - Для языков/фреймворков, в которых нет ленивых вычислений и приёма copy-on-write
Shortcut fusion
Ленивое вычисление
Copy-on-write
Оверинжиниринг - Зависящие от железа
Разворачивание мелких циклов
Предсказание ветвлений (Branch prediction)
Доступ к памяти: направление итерации
Доступ к памяти: [i][j] vs [j][i] - Для языков со сборкой мусора
Мутабельность
Zero memory allocation или GC-free - Специфичные для JavaScript
Антипаттерн: накопление строк в массиве
Антипаттерн: Lodash _.defaults
Idle Until Urgent
Даунгрейд кода: ES6 → ES5 - Примеры из код-ревью
NEST.JS. Работа с ошибками. Мысли и рецепты
2021-03-14 в 7:21, admin, рубрики: backend, exceptions, javascript, NEST, nest.js, nestjs, Node, node.js, node.js фреймворки, nodejs, обработка ошибок, ПрограммированиеХоливар...
Одни умные люди говорят: "эксепшены - это зло, используйте монады!", другие кричат: "коды ошибок ещё никто не отменял!", а третьи включают механизм исключений в языки программирования.. Однако, у большинства статей, который попадались мне на глаза, есть (при всём уважении к авторам!) два проблемных момента:
-
Некоторая... академичность. Разобрано много и интересно, но заканчивается всё стандартным: "ваш выбор зависит от вашей ситуации".
-
Абсолютно отсутствуют упоминания о бюджете. Никто же не будет спорить, что теоретически мерседес лучше, чем восьмёрка по всем показателям кроме.. цены.
Как я сделал веб-фреймворк без MVC — Pipe Framework
2021-02-23 в 11:03, admin, рубрики: api, backend, etl, extractor, loader, microframework, pipe, python, python3, transformer, werkzeug, Разработка веб-сайтовПроработав фулстек разработчиком около 10 лет, я заметил одну странность.
Я ни разу не встретил не MVC веб-фреймворк. Да, периодически встречались вариации, однако общая структура всегда сохранялась:
- Codeigniter — мой первый фреймворк, MVC
- Kohana — MVC
- Laravel — MVC
- Django — создатели слегка подменили термины, назвав контроллер View, а View Template'ом, но суть не изменилась
- Flask — микрофреймворк, по итогу все равно приходящий к MVC паттерну
Конечно, с моим мнением можно поспорить, можно продолжить перечислять, однако суть не в этом.
Чаты на вебсокетах, когда на бэкенде WAMP. Теперь про Android
2021-01-13 в 18:01, admin, рубрики: android, backend, java, kotlin, wamp, андройд, Блог компании FunCorp, бэкенд, клиент-сервер, мобильная разработка, протокол, разработка мобильных приложений, Разработка под android, чат, чатыМой коллега уже писалЧитать полностью »
Как я умный аквариум делал (backend)
2020-09-27 в 8:21, admin, рубрики: api, backend, micropython, nodeMCU, python, Разработка под Arduino
Пролог
Работая программистом в одной из больших и успешных компаний Москвы, я не переставал совершенствовать свои навыки программирования и проходил различные курсы на платформе Udemy.
Конечно просто смотря курс и повторяя все за автором было скучновато, да и были моменты которые я не понимал ввиду своей некомпетентности на тот момент. Нужно делать свои проекты, основываясь на том, что дает автор курса — подумал я, и был конечно же прав. Только настоящие трудности и их разрешение дает вам бесценный опыт, это и есть настоящая обучение.
Обучался я в основном web программированию, поскольку и работал на том же направлении. Охватывал Full-stack
разработку, поскольку решил, что нужно разбираться как в серверной части, так и во фронтовой. Учил JavaScript
и различные фреймворки для бека это были Express
, Appolo GraphQL
(поскольку на работе был именно такой стек, да и в целом хотелось попробовать что-то отличное от REST
подхода), на фронте это был все тот же Apollo GQL
и Vue
.
Архитектура современных корпоративных Node.js-приложений
2020-08-11 в 10:55, admin, рубрики: architecture, backend, javascript, node.js, ssr, Блог компании Яндекс, Блог компании Яндекс.Деньги, Разработка веб-сайтовОх, не зря в названии намёк на нетленку Фаулера. И когда фронтенд-приложения успели стать настолько сложными, что мы начали рассуждать о высоких материях? Node.js… фронтенд… погодите, но Нода же на сервере, это бэкенд, а там ребята и так всё знают!
Давайте по порядку. И сразу небольшой дисклеймер: статья написана по мотивам моего выступления на Я.Субботнике Pro для фронтенд-разработчиков. Если вы занимаетесь бэкендом, то, возможно, ничего нового для себя не откроете. Здесь я попробую обобщить свой опыт фронтендера в крупном энтерпрайзе, объяснить, почему и как мы используем Node.js.
Читать полностью »
Практическое руководство по разработке бэкенд-сервиса на Python
2020-04-29 в 9:39, admin, рубрики: aiohttp, Ansible, backend, docker, github actions, postgresql, pytest, python, rest api, sqlalchemy, Анализ и проектирование систем, Блог компании Яндекс, гайд, Программирование, Тестирование веб-сервисовПривет, меня зовут Александр Васин, я бэкенд-разработчик в Едадиле. Идея этого материала началась с того, что я хотел разобрать вступительное задание (Я.Диск) в Школу бэкенд-разработки Яндекса. Я начал описывать все тонкости выбора тех или иных технологий, методику тестирования… Получался совсем не разбор, а очень подробный гайд по тому, как писать бэкенды на Python. От первоначальной идеи остались только требования к сервису, на примере которых удобно разбирать инструменты и технологии. В итоге я очнулся на сотне тысяч символов. Ровно столько потребовалось, чтобы рассмотреть всё в мельчайших подробностях. Итак, программа на следующие 100 килобайт: как строить бэкенд сервиса, начиная от выбора инструментов и заканчивая деплоем.
TL;DR: Вот репка на GitHub с приложением, а кто любит (настоящие) лонгриды — прошу под кат.
Читать полностью »