Pull to refresh
0
0
Роман @Alfinity

Front End Engineer

Send message

Как понять, что перед вами плохой разработчик

Reading time12 min
Views181K

Мало просто сменить свою сферу работы на IT, желательно еще и стать хорошим разработчиком. Бывший тимлид и консультант Александр Усков рассказывает, как понять, что перед вами плохой разработчик и что с ним вообще можно делать

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

Читать далее

Как мы устранили страшное легаси незаметно для пользователей

Reading time8 min
Views8.8K

Мы разрабатываем ati.su, это площадка где грузоотправитель находит грузоперевозчика. Между собой они общаются заявками. Заявка — это карточка с множеством полей. Так мы её и зовём — «Карточка груза». Поиск таких заявок по сложным фильтрам — то, зачем к нам приходят сотни тысяч пользователей.

Эта статья о том, как мы с нуля переписали карточку груза и этого почти никто не заметил. И это хорошо, так и было задумано.

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

Читать далее

Оформляем README-файл профиля на GitHub

Reading time14 min
Views263K

Летом 2020 года GitHub позволила пользователям создавать персональные README-файлы и с их помощью кастомизировать свои профили. Сама платформа при создании подобного файла предлагает уже готовый шаблон, в который можно вписать свои данные. Но о какой кастомизации может идти речь, если у всех будут одинаково оформленные профили? За почти два года сообщество придумало множество различных способов выделиться и особенно оформить свою страницу на GitHub.

Читать далее

Путь разработчика от исполнителя до тимлида

Reading time10 min
Views14K

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

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

Читать далее

Как мы избавились от 80% своего кода, повысив скорость разработки и уменьшив количество ошибок

Reading time12 min
Views64K


Оптимизация кода и развитие микросервисной архитектуры занимает значительную часть жизни команды разработчиков МВидео-Эльдорадо. Тем любопытней изучить опыт коллег за рубежом. Предлагаем вашему вниманию очередной пост на тему: «А как там у них».
Читать дальше →

Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring

Reading time11 min
Views108K
Это последняя статья из серии статей про REST API:


В этой статье вы познакомитесь с рекомендациями по REST API и с примерами разработки из Java и Spring Web Services.

При разработке хорошего REST API важно иметь хорошие микросервисы.
Как вы разрабатываете свой REST API? Каковы лучшие практики?


Читать дальше →

SonarQube и IntelliJ IDEA: правильная интеграция

Reading time7 min
Views46K

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


На данный момент этот инструмент плотно вошёл в нашу жизнь, следя за единым стилем кода и уберегая от самых разных видов ошибок. Поиск ошибок происходит при сборке на CI или перед принятием pull request в версионное хранилище. Все найденные ошибки отображаются в Web-интерфейсе, где можно изучать их и управлять ими.


Однако беда в том, что удобный Web-интерфейс не означает удобство по устранению найденных замечаний в коде проекта. Для того, чтобы внести исправление, приходится сначала смотреть, в каком именно файле это замечание обнаружено, потом открывать этот файл и только затем вносить исправление. Также это приводит к тому, что разработчик узнает о проблеме с очень большим отставанием (иногда анализ в SonarQube может занимать десятки минут), что не способствует поддержанию чистоты кода.


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

Осторожно, много скриншотов

Управление риском ИТ

Reading time13 min
Views33K

Приветствую!

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

В данном материале мне бы хотелось рассказать Вам об основах управления риском ИТ.

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

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

Читать далее

Как научиться писать статьи (для Хабра и не только)

Reading time14 min
Views33K

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

Что может быть проще! Берёшь бумагу и ручку, или пишущую машинку, или что там у вас нынче в моде, и пишешь статью.

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

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

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

Как оптимизировать размер бандла SPA и ускорить загрузку приложения в несколько раз

Reading time11 min
Views20K

Меня зовут Михаил Сахнюк и я разрабатываю фронтенд уже более шести лет. Сейчас я фронтенд разработчик в Miro. 

В статье рассмотрим:

как оптимизировать веб-приложение и ускорить его загрузку;

почему это важно;

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

преимущества работы с загружаемыми модулями в приложениях.

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

Статья — конспект моего доклада на конференции Mergeconf 2021 в Иннополисе. 

Читать далее

Добавляем Refresh Token

Reading time4 min
Views153K


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

Читать дальше →

Половой отбор с точки зрения программиста

Reading time5 min
Views16K

Когда я был молодым наивным юношей, из полезных материалов был разве что труд Протопопова "Трактат о любви, как ее понимает жуткий зануда". Сейчас материалов куда больше - везде можно прочитать про "баланс значимости", "френдзону", даны названия разным явлениям, например, "завиноватить" итд.

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

Читать далее

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

Reading time5 min
Views20K

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

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

Читать далее

Делаем доступ к базе данных MongoDB защищенным

Reading time14 min
Views17K

MongoDB — одна из самых популярных баз данных с открытым исходным кодом. К сожалению, как следствие мы имеем огромное количество неправильно настроенных и незащищенных разверток MongoDB по всему миру. Только за последние пару лет мы стали свидетелями нескольких крупных взломов, обнаживших уязвимости тысяч баз данных MongoDB в сети, что сделало их легкой добычей для злоумышленников.

Однако все может быть по-другому. Есть множество мер, которые вы можете предпринять для обеспечения безопасности ваших данных в MongoDB — от защиты периметра сети до включения Strict-Transport-Security, чтобы использовать такие фичи, как расширенное управление пользователями в MongoDB и систему контроля доступа на основе ролей (Role-Based Access Control — RBAC).

В этой статье мы рассмотрим некоторые из наиболее популярных способов защиты кластера MongoDB.

Читать далее

Небинарный *ngIf

Reading time3 min
Views7.2K

Вам когда-нибудь хотелось отобразить состояние загрузки, пока ngIf ждет ответа от async-пайпа? Или, может, вы мечтали передать в ngFor шаблон для пустого массива? Возможно, вы бросили это, потому что вам не хотелось реализовывать базовую логику этих директив самому. На самом деле в этом нет нужды! Один и тот же селектор может подцепить несколько директив, что позволяет расширить функциональность встроенных директив дополнительной логикой.

Читать далее

Ленивая подгрузка библиотек из CDN в Angular

Reading time4 min
Views5.1K

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

Давайте

OnPush — ваш новый Default

Reading time6 min
Views29K

В Angular есть два режима change detection: Default и OnPush. В этой статье мы разберем, как можно спокойно использовать OnPush всегда без лишнего труда и почему стоит начать это делать.

Поехали!

Используем DI в Angular по максимуму — концепция частных провайдеров

Reading time7 min
Views37K
В Angular очень мощный механизм Dependency Injection. Он позволяет передавать по вашему приложению любые данные, преобразовывать и переопределять их в нужных частях.

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

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

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


Три шага по подготовке к собеседованию на должность Скрам-мастера

Reading time6 min
Views5.1K


Два года назад я попала в крупную ИТ-компанию на старте Agile-трансформации. Обычно под такой формулировкой подразумевается один из следующих вариантов:
Читать дальше →

Создаем текстовый редактор на React.js

Reading time17 min
Views44K

Привет! Меня зовут Данила, и я фронтенд-разработчик в KTS.

Однажды в одном из своих проектов мне потребовалось реализовать кастомный текстовый редактор на React.js. Задача показалась мне довольно интересной, и я решил рассказать о своем опыте. В статье я поэтапно покажу, как можно создать текстовый редактор с базовыми функциями.

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

Читать далее

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity

Specialization

Frontend Developer
Senior
JavaScript
Git
React
TypeScript
Angular
CSS
HTML
SCSS
Web development
Node.js