Pull to refresh
3
0
Евгений Добрянский @essome

Software Architect

Send message

Как правильно верстать в 2022 году. Часть 1

Reading time11 min
Views88K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее
Total votes 48: ↑46 and ↓2+44
Comments42

SMS PVA: лёгкий способ обойти идентификацию по номеру телефона

Reading time8 min
Views22K

При регистрации пользователей многие онлайн-платформы требует идентификации с помощью SMS-кода. Код отправляется на указанный номер, а затем его нужно ввести для завершения регистрации. Считается, что это позволяет отфильтровать троллей, мошенников и преступников. Однако, как показало наше исследование SMS PVA: An Underground Service Enabling Threat Actors to Register Bulk Fake Accounts, такой способ идентификации уже не может считаться надёжным. В этом посте расскажем, почему наши эксперты пришли к такому выводу, и приведём рекомендации для повышения безопасности. 

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

7 многообещающих расширений VS Code 2021 года

Reading time4 min
Views15K

К старту курса по Fullstack-разработке на Python делимся подборкой расширений Visual Studio Code, среди которых вы найдёте генератор документации для кода JavaScript на базе ИИ и лёгкий, простой клиент REST API. За подробностями приглашаем под кат.

Читать далее
Total votes 22: ↑18 and ↓4+14
Comments5

Рекомендации по работе с TypeScript

Reading time2 min
Views9.3K

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

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

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments6

Тултипы (tooltips). Что это такое и как их проектировать

Reading time5 min
Views37K

Тултип, от английского tooltip. Это такая короткая всплывающая подсказка, появляющаяся при наведении курсора на элемент. Или при фокусировании на элементе с помощью клавиатуры. Или при длительном разглядывании элемента, если вы в шлеме виртуальной реальности с трекингом глаз.

Привет, меня зовут Егор Камелев. Я занимаюсь проектированием интерфейсов с 2006 года. Сегодня хочу поделиться чек-листом вопросов, связанных с проектированием тултипов.

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

Неважно, худой ты или толстый. Главное, что не жирный

Reading time11 min
Views32K

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

Читать далее
Total votes 75: ↑69 and ↓6+63
Comments77

Разработка приложения на Flutter с нуля до релиза: Идея + Базовая инфраструктура

Reading time11 min
Views31K

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

Если долго мучаться...
Total votes 25: ↑25 and ↓0+25
Comments5

Анимации в библиотеке компонентов: виды анимаций, UX/UI паттерны, подходы в Angular с dependency injection

Reading time6 min
Views4.9K

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

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

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

Установка Kubernetes на домашнем сервере с помощью K3s

Reading time23 min
Views26K

Но зачем


Знаю, о чем вы думаете — Kubernetes? На домашнем сервере? Кто может быть настолько сумасшедшим? Что ж, раньше я согласился бы, однако недавно кое-что изменило мое мнение.


Я начал работать в небольшом стартапе, в котором нет DevOps разработчиков со знанием Kubernetes (в дальнейшем K8s), и даже будучи старым ненавистником K8s из-за его громоздкости, был вынужден признать, что мне не хватает его программного подхода к деплойментам и доступу к подам. Также должен признать, что азарт от укрощения настолько навороченного зверя давно будоражит меня. И вообще, K8s захватывает мир — так что лишние знания не навредят.

Читать дальше →
Total votes 13: ↑12 and ↓1+11
Comments9

Angular Libs как монорепозиторий: начало, настройка, работа с assets

Reading time18 min
Views5K

Всем привет! Меня зовут Илья и я хочу рассказать вам как можно подробнее про Angular Libs. В частности, то, как можно использовать его в качестве монорепозитория для сборки нескольких приложений с tree-shaking и переиспользуемостью различных модулей в разных библиотеках и частях системы.

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

Доступность в Angular c помощью CDK A11y на реальных кейсах с FocusTrap и FocusMonitor

Reading time4 min
Views2.6K

Мы привыкли слышать, что Angular это фреймворк, который решает массу задач из коробки: свой cli, встроенная сборка приложений, автоматическая миграция на новые версии с помощью schematic, работа с http, DI, реактивные формы, работа с состоянием - все это удобные инструменты для разработчика. Обычно я сравниваю его с коробкой автомат, сел и сосредоточенно поехал по дороге, без отвлечений на коробку передач.

Но в мире веба мы всегда должны думать о пользователях. И один из разделов, который заботиться о них называется веб доступность (Accessibility, A11y в англоязычной среде). И тут Angular позаботился о нас и дал мощнейших инструмент из коробки под названием CDK a11y. Предлагаю ознакомится с концепцией доступности и изучить применение этого инструмента в Angular.

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

Вся правда о Hi-Res: что скрывают аудиоформаты высокого разрешения

Reading time5 min
Views43K

Одно из самых интересных событий, которые произошли в мире аудио за последние годы — небывалый рост популярности форматов высокого разрешения (Hi-Res). Среди причин появления в своё время новых форматов — неудовлетворённость качеством звучания CD, ведь на заре эпохи компакт-дисков все звукозаписывающие лейблы спешили переиздать свой аналоговый каталог на цифровом носителе, мало заботясь о качестве: хотя бы плюс-минус привлекательное и лишённое всевозможных щелчков и прочих шероховатостей звучание уже казалось победой.

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

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

Почему я написал плагин Ataman и как он может изменить вашу работу с IDE от JetBrains

Reading time5 min
Views14K

Ataman – это мой плагин для IDE-шек на базе Intellij. Единственное его предназначение – сделать возможным использование leader key биндингов в моём основном рабочем инструменте – Android Studio.

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

А ну, удиви
Total votes 33: ↑32 and ↓1+31
Comments39

Как писать на HTML Canvas удобно, или как изобрести очередной renderer на Angular

Reading time5 min
Views6.8K

Разработка на canvas с контекстом 2D обычно не предполагает никаких сложностей. Для начала необходимо изучить пару десятков встроенных методов WEB API CanvasRenderingContext2D, прочитать рекомендации по оптимизации, вспомнить школьный курс геометрии. И на этих базовых вещах можно уже строить неплохие приложения на canvas.

Как один из вариантов начала разработки на canvas: из примитивов фигур строят элементы, затем их объединяют в функцию, эти функции складывают в готовый элемент, объединяют их в слой, ну и в конце уже отдают в функцию рендера. Все еще звучит довольно неплохо и с этим можно даже жить, если использовать чистые функции, и придерживаться везде этого подхода. Но не всегда этого удается, всегда есть соблазн выхватить что-либо из контекста. Для примера приведу код из source-map-vizualization замечательный инструмент, сделанный на canvas. Только чтобы понять весь код и привнести какие либо исправления, я думаю придется посидеть не один час.

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

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

Reading time3 min
Views6.6K

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

Читать далее
Total votes 26: ↑25 and ↓1+24
Comments2

В моём офисном фургоне шесть каналов в интернет, а скоро будет семь

Reading time4 min
Views25K


Если работаешь на удалёнке, то нужен чертовски хороший интернет. Тем более когда твой офис в фургоне, который колесит по всей Австралии. Но лично в своём фургоне я настроил самую надёжную связь на континенте. Даже в городских офисах ни у кого нет такой избыточности каналов.
Много фотографий
Total votes 36: ↑35 and ↓1+34
Comments48

Типичные ошибки архитектора, или Как перестать бояться и полюбить RFC

Reading time8 min
Views24K

Всем привет! С вами Женя, разработчик Dodo Engineering и один из ведущих подкаста «Читаем вместе». Он посвящен IT-книгам. В каждом сезоне мы планируем читать и разбирать одну книгу. Уже подходит к концу первый сезон, который мы посвятили книге Fundamentals of Software Architecture. Она написана архитекторами для архитекторов, но разработчикам, особенно тем, которые интересуются, как создавать работающие системы, тоже может быть очень интересна и полезна.

Глава про архитектурные решения сильно нас зацепила, потому что в своей работе мы напрямую столкнулись с описанными в ней проблемами. 

Не можете найти концов, почему было принято то или иное решение? Рассказываете коллегам по сто раз одно и то же? Обсуждения в мессенджерах превращаются в срачи на десятки сообщений?

Знакомо? Нам тоже. Но мы смогли победить эти проблемы.

Под катом выжимка из главы и нашего выпуска, а также практический опыт Dodo Engineering, как правильно оформлять и хранить архитектурные решения.

Читать далее
Total votes 38: ↑37 and ↓1+36
Comments5

Что готовит нам Angular? Заметки из changelog, новый синтаксис шаблонов, Ivy

Reading time4 min
Views5.7K

В этой статье приведу заметки к релизу Angular 13. Рассмотрим предложения по шаблонам которую будут рассматривать в Angular Team в ближайшем митинге.

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

Версионирование API или единая кодовая база для всех версий

Reading time13 min
Views34K

За 21 год существования в SuperJob разработали три версии реализации API для интеграций с бэкендом. Во время разработки последней они решили пересмотреть подход к версионированию. Сейчас в актуальной реализации порядка 379 эндпойнтов, более 900 моделей сущностей и 11 поддерживаемых мажорных версий. Когда проект развивается, вместе с ним меняются и требования к API, а значит неизбежно нарушение обратной совместимости.

Опытом решения этой проблемы поделился Антон Золотилин из SuperJob. Вы увидите самые распространенные решения проблемы версионирования web-API и подход, который реализовал у себя SuperJob. А в качестве бонуса узнаете, как это решение помогает значительно сократить рост затрат на тестирование версий с помощью Impact-анализа.

Читать далее
Total votes 44: ↑42 and ↓2+40
Comments13

Актуальный App store review guidelines на русском языке

Reading time1 min
Views4.7K

Изучая тему мобильной разработки, не стал ограничиваться только переводом Apple Human Interface Guidelines for iOS на русский язык.

Решил перевести и App store rewiev guidelines. Ранее на хабре уже публиковался перевод этого руководства, но по прошествии семи лет, думаю, обновление перевода будет не лишним.

Если увидите, что в каких-то местах текст переведен некорректно или плохо, и у вас есть идея о более правильном варианте, прошу написать на почту hamvestor@gmail.com, указав в теме письма "App store RG - перевод".

Перевод размещен здесь: App Store Review Guidelines (Google Docs).

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

Information

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