Pull to refresh
4
0.1
Send message

Хорошего кода не бывает

Reading time4 min
Views16K

Серьезно. Кода на который можно посмотреть и сказать "это сделано на отлично" почти не бывает – в основном один фарш из легаси, гвоздей, и иероглифов.

Это не пессимизм. Откройте почти любой коммерческий проект, где люди решают задачи, живут с тем что есть, проект уже прожил сравнительно долгую жизнь, а команда меняется (и это нормально).

Тема пойдет про причину, почему оно происходит, и почему не надо создавать себе иллюзий хорошего кода.

Серьезно
Total votes 18: ↑17 and ↓1+18
Comments41

CSS: системные цвета, шрифты и кое-что ещё

Reading time4 min
Views9.4K
Думаю, все мы, в целом, знакомы с таким способом описания CSS-цветов:

color: OldLace;
background: rebeccapurple;

Полагаю, их обычно называют «именованными цветами».



Но конкретные цвета, одни и те же в любой ситуации, к которым можно обращаться по именам, это — далеко не единственный вид особых CSS-цветов. Есть ещё одна разновидность подобных цветов. Их имена связаны с цветами уже не так однозначно. Речь идёт о так называемых «системных цветах». Джим Нильсен опубликовал потрясающий материал на эту тему. Вот, что он пишет:

Мне нужна возможность выразить следующее: «Эй, браузер! Используй для выпадающего списка тот же тёмный цвет (или тот же светлый цвет, если страница оформлена с помощью светлой темы), который ты применяешь для фонового цвета документа». Мне нужен доступ к чему-то наподобие переменной, которая указывает именно на тот «тёмный», который использует браузер.
Total votes 26: ↑26 and ↓0+26
Comments4

Как реализовать drag & drop используя RxJS

Reading time6 min
Views6.4K

Drag & drop - одна из функций, которая может быть очень полезна для пользователей нашего приложения. Кроме того, это отличный пример, показывающий, как RxJS можно использовать для простой реализации функционала перетаскивания. Давайте посмотрим, как мы можем это сделать.

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

Мы подумали об этом за вас, или Как влияют на нас конференции

Reading time12 min
Views3.1K

Глеб Михеев, глава ПК FrontendConf имеет максимально прямое отношение к фронтенду, занимаясь этим лет 15. Десятый год он работает в собственной компании техническим директором, но при этом продолжает активно фронтендить. Несмотря на свои менеджерские роли, у Глеба от 8 до 16 часов в неделю занимает кодинг, чтобы «не потерять нюх» на тенденции.

Сегодня, в преддверии FrontendConf 2021, мы поговорили с Глебом о том, как работает ПК над выбором докладов, как проходит подготовка (если вы захотите участвовать тоже) и что ПК выбрал для конференции в этом году.

Читать далее
Total votes 12: ↑9 and ↓3+10
Comments0

Easy canvas — простая js библиотека, которая невероятно упрощает работу с canvas html

Reading time3 min
Views9.5K

Ссылка на GitHub

Очень простая библиотека javascript, которая сильно упрощает работу с canvas html.

Очень простая библиотека javascript, которая сильно упрощает работу с canvas html.

Читать
Total votes 9: ↑9 and ↓0+9
Comments2

Все об SVG анимации

Reading time41 min
Views169K
В данной статье я хочу осветить тонкости работы с SVG-графикой, SVG анимацию (в том числе и path), проблемы и способы их решения, а также разнообразные подводные камни, коих в SVG огромное множество. Эту статью я позиционирую как подробное руководство.



Здесь не будет никаких плагинов, библиотек и прочего, речь пойдет только о чистом SVG.
Единственный инструмент, который я буду использовать, это Adobe Illustrator.
Получить сакральные знания
Total votes 39: ↑39 and ↓0+39
Comments21

Опыт работы над проектом на базе Vue3 в 2021 году

Reading time7 min
Views11K
Около полугода пришлось поработать над миграцией неработающего проекта на базе Vue 2 на проект Vue v.3.

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

Будет интересно разработчикам и менеджерам, планирующим перевод проектов на Vue3, чтобы оценить трудоёмкость такого перехода. (TLDR — для перехода на Vue 3 сейчас многие фреймворки уже имеют свои версии с поддержкой Vue3. Сам переход особых трудностей не представляет, благодаря поддержке старого Options API и совместимости компонентов на разных API. Но вполне возможно, что время разработки увеличится за счёт ручной доработки отдельных компонентов, для которых авторы не написали версии поддержки. Какая-то значительная часть таких пакетов NPM имеется и останется, но нет проблем основываться на нативных версиях пакетов или написать части своего проекта по-другому, без использования старых пакетов. Активно поддерживаемые пакеты часто уже мигрировали и проблем не создают. Эту неопределённость каждого своего проекта необходимо вначале оценить и уметь писать компоненты.)
Читать дальше →
Total votes 10: ↑10 and ↓0+10
Comments5

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

Reading time7 min
Views39K

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

Именно поэтому правительство страны решилось на проведение крупнейшего в мире эксперимента по сокращению рабочей недели. Его авторы посчитали проект успешным, и теперь этот опыт могут перенять и другие страны. К слову, это далеко не первый эксперимент, проводились подобные тесты “четырехдневки” и раньше, хотя и не на уровне целого государства. Давайте посмотрим, где еще реализовались подобные проекты и насколько они были успешными.
Читать дальше →
Total votes 48: ↑46 and ↓2+58
Comments90

Что такое пользовательская история?

Reading time4 min
Views11K

Так вот, пользовательские истории! Несомненно, это один из основных столпов agile(гибкой)-разработки и необходимый инструмент для продакт-менеджера.

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

Но что такое пользовательская история?

Чтобы ответить на этот вопрос, давайте разделим это понятие на части:

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

Говорят, программист — ненастоящий! Или «живьём брать самозванцев!»

Reading time17 min
Views8.8K

Привет Хабр!

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

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

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

Под катом много всего интересного! Поехали!

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

Оптимизация веб-графики в 2021 году

Reading time9 min
Views22K
Изображения, используемые на веб-страницах, привлекают пользователей, пользователи довольно-таки охотно щёлкают по ним мышью. Изображения делают веб-страницы лучше во всём кроме скорости работы страниц. Изображения — это огромные куски байтов, которые обычно являются теми частями сайтов, которые загружаются медленнее всего. В этом материале я собрал всё, что нужно знать в 2021 году об улучшении скорости работы веб-страниц через оптимизацию работы с изображениями.



Изображения обычно имеют большие размеры. Даже очень большие. В большинстве случаев CSS- и JavaScript-ресурсы, необходимые для обеспечения работоспособности страниц — это мелочь в сравнении с тем объёмом данных, который нужно передать по сети для загрузки изображений, используемых на страницах. «Медленные» изображения могут повредить показателям Core Web Vitals сайта, могут оказать воздействие на SEO и потребовать дополнительных затрат на трафик. Изображения — это обычно тот самый ресурс сайта, который оказывает решающее воздействие на показатель Largest Contentful Paint (LCP) и на задержки загрузки сайта. Они способны увеличить показатель Cumulative Layout Shift (CLS). Если вы не знакомы с этими показателями производительности сайтов — почитайте о них в Definitive Guide to Measuring Web Performance.

Здесь мы поговорим о подборе наиболее подходящего формата изображений, об оптимизации их размеров в пикселях и качества, а так же о встраивании изображений в веб-страницы и о ленивой загрузке изображений.
Читать дальше →
Total votes 35: ↑31 and ↓4+36
Comments27

Книга «JavaScript с нуля»

Reading time6 min
Views21K
imageПривет, Хаброжители! JavaScript еще никогда не был так прост! Вы узнаете все возможности языка программирования без общих фраз и неясных терминов. Подробные примеры, иллюстрации и схемы будут понятны даже новичку. Легкая подача информации и живой юмор автора превратят нудное заучивание в занимательную практику по написанию кода. Дойдя до последней главы, вы настолько прокачаете свои навыки, что сможете решить практически любую задачу, будь то простое перемещение элементов на странице или даже собственная браузерная игра.

Вот небольшой список того, что вы узнаете:

  • Как организовать код с помощью переменных.
  • Как функции делают ваш код повторно используемым.
  • Как работать с циклами и условиями.
  • Что такое глобальная и локальная области видимости.
  • Что такое замыкания.
  • Как правильно писать комментарии.
  • Основные типы объектов, с которыми вы столкнетесь в JavaScript.
  • Как работать с текстом и выполнять стандартные операции со строками.
  • Как использовать массивы для обработки списков.
  • Как создавать собственные объекты.

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

CSS, JavaScript и блокировка парсинга веб-страниц

Reading time5 min
Views16K
Недавно мне попался материал, посвящённый проблеме загрузки CSS-файлов, которая замедляет обработку материалов страниц. Я читал ту статью, стремясь научиться чему-то новому, но мне показалось, что то, о чём там говорилось, не вполне соответствует истине. Поэтому я провёл собственное исследование этой темы и поэкспериментировал с загрузкой CSS и JavaScript.


Читать дальше →
Total votes 29: ↑26 and ↓3+33
Comments9

Модульный PHP монолит: рецепт приготовления

Reading time10 min
Views21K

Статья написана по мотивам моего доклада на митапе. В нем я рассказываю историю того, как мы взяли и не распилили монолит на микросервисы, и что сделали вместо этого.

На тот момент наша команда работала над приложением, начало которому было положено еще в 2009 году не искушенными в архитектуре студентами. К 2018 это уже был типичный big ball of mud (большой ком грязи), или, этакий «монолит-копролит», как выразился один наш коллега. Думаю, многим знакомо.

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

Ускоряем загрузку веб-страниц: тестируем 4 стратегии оптимизации изображений

Reading time10 min
Views9.1K


Статистика не устаёт повторять нам про устойчивую корреляцию между падением скорости загрузки страниц сайта и ростом частоты отказов со снижением конверсии. Я не открою Америку, если скажу, что работу сайта замедляет «раздутая» полезная нагрузка (с плохо оптимизированными изображениями и избыточным HTML-кодом). Это заставляет сервер выполнять лишнюю работу. Огромный пласт такой работы связан с проблемами оптимизации изображений. 

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

Не очень эффективными я считаю стратегии, которые опираются на тезис о том, что изображения — это статический контент (в течение статьи я ещё разовью эту мысль и приведу аргументы). Сейчас на мобильные устройства приходится большая доля интернет-трафика, но есть проблема: эти устройства имеют различные размеры, разрешения экрана, операционные системы и прикладное ПО (например, браузеры). Каким образом сделать так, чтобы веб-страница быстро (!)и корректно загружалась на любой платформе и выглядела при этом одинаково?
Читать дальше →
Total votes 19: ↑18 and ↓1+27
Comments1

Швейцарский нож отладки JavaScript

Reading time4 min
Views19K


Кажется, что все в начале пути разработчика отлаживали код при помощи console.log(). Я уверен, что и сейчас среди читателей найдётся человек, который сможет отладить код любой сложности при помощи вывода информации в консоль.

Признаюсь честно, я и сам достаточно долго просто выводил что-то в консоль, пытаясь понять, что пошло не так. Я понимал, что использовать breakpoint быстрее и продуктивнее, даёт больше возможностей, ну и в целом выглядит солиднее, но по-прежнему пользовался консолью.
Читать дальше →
Total votes 27: ↑24 and ↓3+34
Comments17

Чему я научился, прожарив 200 лендингов за 12 месяцев

Reading time10 min
Views14K


200 стартапов


За последние двенадцать месяцев я прожарил лендинги (посадочные страницы проектов) 200 стартапов. Лендинги инди-проектов, лендинги сейлапов, финансируемых венчурным капиталом, и лендинги прибыльных корпораций, лендинги из различных отраслей и для разной аудиторий. В среднем 25 минут прожарки — это больше 3,5 полных дней прожарки страниц для увеличения конверсии.

Что такое прожарка


Каждая прожарка — это персонализированный 20-минутный видео-обзор лендинга, где я определял исправления, которые позволят превратить больше посетителей в клиентов.
Total votes 31: ↑21 and ↓10+16
Comments11

Какие CSS-генераторы можно использовать в 2021 году

Reading time2 min
Views36K
image

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

Схема работы таких генераторов проста: достаточно ввести через простой визуальный интерфейс нужные вам параметры и на выходе получить готовые CSS-стили. Далее полученный код нужно скопировать и добавить в свой проект.

Известный full-stack разработчик Марко Денич предлагает свою подборку лучших CSS-генераторов. Возможно, о каких-то из них вы не знали, и, познакомившись с ними сейчас, начнёте использовать в работе.
Читать дальше →
Total votes 39: ↑39 and ↓0+39
Comments9

Король разработки

Reading time15 min
Views211K


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

Полбеды, если он просто шутит, вроде, «разработка приносит мне столько бабок, что поработаю два часа и найму трех нищих врачей стричь мне лужайку». Хуже, когда говорит серьезно: «Ты зря стал писать код. Вся ирония этой индустрии в том, что став хорошим разработчиком, ты обретаешь навыки, которые приводят тебя к выводу, что разработчиком быть плохо».

Недавно у него дела пошли в гору, и там где нормальные люди радуются и расцветают, этот парень, кажется, совсем съехал с катушек. Мы с ним как следует выпили, и он рассказал мне много искреннего дерьма, которое, честно, я бы хотел расслышать обратно.
Читать дальше →
Total votes 375: ↑315 and ↓60+255
Comments667

Идеальная вакансия для разработчика

Reading time5 min
Views16K

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

Читать далее
Total votes 21: ↑19 and ↓2+25
Comments16

Information

Rating
3,964-th
Registered
Activity