Pull to refresh
5
0
Михаил Деркач @skeevy

Frontend Developer

Send message

Разбираемся с FSD — самой надёжной архитектурой для фронтенда

Reading time7 min
Views53K
image

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

Вот почему в этой статье мы хотим рассказать вам об архитектуре FSD (Feature-Sliced Design, дословно «послойное проектирование фич»), одной из самых современных, надёжных и спроектированной специально для фронтенд-проектов. Она подходит почти для любых бизнес-условий, позволяет решать повседневные проблемы и интуитивно понятна разработчикам-новичкам.

В данной статье мы разберём основы этого подхода и сообщим вам необходимый минимум знаний, позволяющий с ней работать. Конечно же, в конце статьи мы добавим ссылку на оригинальную документацию. Довольно слов, начнём!
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments11

Выявление техдолга и оценка его процентов

Reading time12 min
Views8.1K

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

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

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

Level of difficultyEasy
Reading time6 min
Views29K

Привет, Хабр! Я разработал помощника по поиску жилья HomeBro, который помог десяткам тысяч людей найти новый дом. Расскажу, с чем я облажался, а с чем – нет.

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

Читать далее
Total votes 59: ↑56 and ↓3+63
Comments61

Запуск автотестов Cypress в Docker контейнерах с использованием различных Docker образов

Level of difficultyEasy
Reading time15 min
Views6.5K

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

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

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

Надеюсь, что статья будет полезна для понимания основ использования контейнеризации в тестировании с помощью Cypress.

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

Тимлид — быть, а не казаться

Reading time7 min
Views23K

Привет! Меня зовут Филипп Кондрашов, я руковожу разработкой DS-решений в бигдата билайн. Как-нибудь расскажу вам, как наша команда строит лучшие модели скоринга. 

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

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

С чем поможет материал из статьи:

Освободиться от вертикальных взаимоотношений

Найти общий язык с менеджментом

Управлять командой во времена хаоса и гармонии

Не сойти с ума

Читать далее
Total votes 19: ↑16 and ↓3+19
Comments6

Почему увольняют самых опытных? Потому что они слишком умные. Тейлоризм 21-го века

Level of difficultyEasy
Reading time8 min
Views146K


Опытный и талантливый сотрудник — носитель знаний и опыта. На него полагаются коллеги, он выполняет в десять раз больше работы, чем джун. Казалось бы, руководство должно молиться на такого разработчика. Но нет, к нему не испытывают особой благодарности и зачастую рады от него избавиться. Почему так происходит?
Читать дальше →
Total votes 180: ↑146 and ↓34+151
Comments318

AbortController: Варианты применения для эффективного управления асинхронными операциями

Level of difficultyMedium
Reading time5 min
Views17K

В современных веб-приложениях асинхронные операции играют ключевую роль. Однако управление ими может быть сложным, особенно когда нужно отменить задачи, уже отправленные на выполнение. До появления AbortController разработчики прибегали к различным костылям, таким как создание глобальных переменных, которые отслеживали состояние запроса или использование оберток над XMLHttpRequest.

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

Fx — мощная JavaScript альтернатива jq для JSON

Level of difficultyEasy
Reading time4 min
Views5.6K

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

Появился FX - неинтерактивная, основанная на JavaScript альтернатива JQ, которая обещает стать переломным моментом. В этой статье блога вы окунетесь в мир FX и узнаете, как его можно использовать для упрощения задач обработки JSON.

Читать далее
Total votes 12: ↑8 and ↓4+4
Comments8

Архитектор в ИТ — он как философ. Все вопросы и решения может подвергнуть сомнению

Level of difficultyMedium
Reading time8 min
Views5.8K

Уважаемые читатели, эта статья будет для вас полезна, если:

Вы являетесь действующим архитектором ИТ и вам необходима дискуссия с коллегами о роли архитектора;

Вы хотите стать архитектором, но еще не осознали, кто это;

С вами рядом работает архитектор, и вы не понимаете, чем он занимается;

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

И в целом если вы интересующийся современными веяниями ИТ, а именно архитектура является популярным запросом от работодателей в виду растущих масштабов автоматизации.

Читать далее
Total votes 8: ↑4 and ↓4+3
Comments19

Как мы быстро создавали задачи в Jira по ГОСТовому ТЗ и почему это облегчило работу с госзаказчиком

Reading time11 min
Views3.7K

Михаил Михайлец, руководитель группы аналитиков направления облачных решений Лиги Цифровой Экономики, рассказал, как его команда попробовала быстро подготовить задачи по классическому ТЗ (ГОСТ 19) в Jira при работе с государственным заказчиком и что из этого получилось.

Пожалуй, большинству известно, что ГОСТ предусматривает водопадную модель разработки ПО. До недавнего времени она была зафиксирована в постановлении Правительства Российской Федерации от 6 июля 2015 г. № 676 «О требованиях к порядку создания, развития, ввода в эксплуатацию, эксплуатации и вывода из эксплуатации государственных информационных систем и дальнейшего хранения содержащейся в их базах данных информации».

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

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

Читать далее
Total votes 4: ↑3 and ↓1+3
Comments2

Встраиваем JS- скрипты в PDF для социальной инженерии — пошаговое руководство

Reading time7 min
Views15K

Введение

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

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

Мы, Маргарита Белоусова, аналитик аналитического центра и Анастасия Прядко, специалист по анализу защищенности компании УЦСБ написали пошаговую инструкцию, как сделать фишинговый документ: детали и примеры кода. Кроме того, мы кратко рассмотрели структуру PDF-файла, как и куда в него внедрять JavaScript, а также способы маскировки факта внедрения скрипта. Наш опыт пригодится безопасникам, системным администраторам и всем, кто связан с ИБ.

Структура PDF

Организация данных в памяти

PDF способен на большее, чем просто отображать текст. Он может также включать в себя изображения и другие мультимедийные элементы, может быть защищён паролем, выполнять JavaScript и многое другое. Вне зависимости от версии структура PDF документа неизменна:

Читать далее
Total votes 15: ↑14 and ↓1+15
Comments7

Топ-5 когнитивных искажений при планировании в IT

Reading time13 min
Views37K

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

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

Читать далее
Total votes 75: ↑74 and ↓1+95
Comments44

Как мы быстро запустили мобильное приложение и споткнулись о свой успех

Level of difficultyMedium
Reading time13 min
Views7K

Привет, Хабр! Мы крупная производственная компания с 50К+ сотрудников, и в 2019 году поняли, что нам нужно мобильное приложение. Срок реализации 5 месяцев. Какой стек вы бы выбрали при такой скорости? Мы выбрали нативные Kotlin и Swift. Поначалу запилили всего 6 сервисов (новости, зарплатный лист, отпуска, блоги, регистрацию опасностей, выдачу СИЗ), и даже при том, что нанесли минимальную пользу, приложение очень зашло, количество пользователей начало расти лавинообразно. И тут мы поняли, что серверная часть на node.js + PostgreSQL создана без всякой мысли о развитии и масштабировании, решала исключительно локальные задачи. Все было на неоптимальной монолитной архитектуре, развивать и поддерживать которую просто нельзя.

Расскажу, как мы решили проблему.

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments11

Большие данные мертвы. Это нужно принять

Level of difficultyMedium
Reading time17 min
Views73K

Уже более десяти лет тот факт, что люди с трудом извлекают из своих данных полезную информацию, сбрасывают на чересчур большой размер этих данных. «Объем собираемой информации слишком велик для ваших хилых систем», — такой нам ставили диагноз. А лекарство, соответственно, заключалось в том, чтобы купить какую‑нибудь новую причудливую технологию, которая сможет работать в больших масштабах. Конечно, после того, как целевая группа по Big Data покупала новые инструменты и мигрировала с устаревших систем, компании снова обнаруживали, что у них по‑прежнему возникают проблемы с пониманием своих данных.

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

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

А дальше будет и того интереснее.

Читать далее
Total votes 115: ↑110 and ↓5+140
Comments76

7 интересных API на JavaScript для создания веб-сайтов, о которых вы (скорее всего) не знали

Level of difficultyEasy
Reading time3 min
Views25K

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

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

Давайте взглянем на некоторые полезные веб-API, которые могут помочь вам поднять ваш сайт до небес! (ну или около того)

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

Планировщик задач: не замораживаем вкладку при открытии страницы

Reading time21 min
Views5.8K

Современные сайты — это сложные проекты, требующие много времени на обработку JavaScript. А современные пользователи — это требовательные люди, готовые убежать к конкуренту при ощущении «что-то сайт подтормаживает». Такое ощущение у пользователя может вызываться большим Total Blocking Time, когда он подолгу не может взаимодействовать со страницей.

Что в такой ситуации делать? На нашей конференции HolyJS Виктор Хомяков из Яндекса рассказал о том, как там делали инициализацию скриптов на странице поиска более дружественной к человеку и не блокирующей UI. А также о том, как и вам уменьшить TBT, не ухудшая другие показатели.

Доклад понравился зрителям, поэтому теперь для Хабра мы сделали текстовую версию. Далее повествование идёт от лица Виктора.

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

Как создать внутреннюю базу знаний для большой IT-компании. Из хаоса в гиперспейсы

Level of difficultyMedium
Reading time7 min
Views27K

Когда на вопрос «Что за фича?»‎ сказали: «Посмотри в Confluence!»‎

Привет! Меня зовут Таня Дудо, я менеджер продуктовых знаний в Selectel. В тексте расскажу, как решили создать внутреннюю базу знаний о продуктах и процессах для более 800 человек. Опишу, как к этому пришли, кропотливо выуживали важную доку из массива данных и придумали решение — гиперспейсы.

Мы развиваем базу знаний на Confluence, но подходы и решения, описанные в тексте, могут быть полезны в работе с другими площадками. Мемы и уроки из опыта — под катом.
Читать дальше →
Total votes 55: ↑53 and ↓2+69
Comments15

Технотекст 2022: шорт-листы по номинациям

Reading time16 min
Views33K

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

Победителей объявим до 14 апреля. Критерии оценки, списки судей и подборки статей по номинациям — в этом посте.

Читать далее
Total votes 96: ↑92 and ↓4+138
Comments28

Конспект книги «Создание микросервисов»

Reading time13 min
Views18K

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

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments1

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
From 450,000 ₽
JavaScript
React
TypeScript
Webpack
MobX