Как стать автором
Обновить
3
0
Евгений Добрянский @essome

Software Architect

Отправить сообщение

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

Время на прочтение11 мин
Количество просмотров91K

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

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

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

Читать далее
Всего голосов 41: ↑39 и ↓2+44
Комментарии42

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

Время на прочтение8 мин
Количество просмотров23K

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

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии13

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

Время на прочтение4 мин
Количество просмотров16K

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

Читать далее
Всего голосов 21: ↑17 и ↓4+14
Комментарии5

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

Время на прочтение2 мин
Количество просмотров9.5K

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

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

Читать далее
Всего голосов 9: ↑8 и ↓1+10
Комментарии6

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

Время на прочтение5 мин
Количество просмотров46K

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

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

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии1

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

Время на прочтение11 мин
Количество просмотров33K

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

Читать далее
Всего голосов 58: ↑52 и ↓6+63
Комментарии77

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

Время на прочтение11 мин
Количество просмотров33K

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

Если долго мучаться...
Всего голосов 25: ↑25 и ↓0+25
Комментарии5

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

Время на прочтение6 мин
Количество просмотров5K

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

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

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии4

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

Время на прочтение23 мин
Количество просмотров28K

Но зачем


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


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

Читать дальше →
Всего голосов 12: ↑11 и ↓1+11
Комментарии9

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

Время на прочтение18 мин
Количество просмотров5.2K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

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

Время на прочтение4 мин
Количество просмотров2.8K

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

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

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии2

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

Время на прочтение5 мин
Количество просмотров47K

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

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

Читать далее
Всего голосов 14: ↑13 и ↓1+17
Комментарии54

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

Время на прочтение5 мин
Количество просмотров14K

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

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

А ну, удиви
Всего голосов 29: ↑28 и ↓1+31
Комментарии39

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

Время на прочтение5 мин
Количество просмотров7.2K

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

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

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии3

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

Время на прочтение3 мин
Количество просмотров7K

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

Читать далее
Всего голосов 24: ↑23 и ↓1+24
Комментарии2

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

Время на прочтение4 мин
Количество просмотров25K


Если работаешь на удалёнке, то нужен чертовски хороший интернет. Тем более когда твой офис в фургоне, который колесит по всей Австралии. Но лично в своём фургоне я настроил самую надёжную связь на континенте. Даже в городских офисах ни у кого нет такой избыточности каналов.
Много фотографий
Всего голосов 26: ↑25 и ↓1+34
Комментарии48

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

Время на прочтение8 мин
Количество просмотров29K

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

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

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

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

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

Читать далее
Всего голосов 32: ↑31 и ↓1+36
Комментарии5

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

Время на прочтение4 мин
Количество просмотров5.9K

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

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии3

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

Время на прочтение13 мин
Количество просмотров38K

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

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

Читать далее
Всего голосов 33: ↑31 и ↓2+40
Комментарии13

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

Время на прочтение1 мин
Количество просмотров5.1K

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

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

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

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

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии5

Информация

В рейтинге
Не участвует
Откуда
Ивано-Франковск, Ивано-Франковская обл., Украина
Дата рождения
Зарегистрирован
Активность