Обновить
512K+

Веб-разработка *

Делаем веб лучше

384,55
Рейтинг
Сначала показывать
Порог рейтинга
Уровень сложности

Экстремально уменьшаем размер NPM пакета

Время на прочтение21 мин
Охват и читатели8.7K

Однажды я захотел создать небольшую NPM библиотеку по всем “best practices” - с покрытием тестами, написанием документации, ведением нормального версионирования и changelog'а и т.п. Даже написал пару статей, которые в деталях описали, какие вопросы решает библиотека и как её использовать. И одной из интересных для меня меня задач при создании библиотеки была задача по максимальному уменьшению размера выходного NPM пакета - того, что в конечном итоге в теории будет использовать другой программист. И в этой статье я бы хотел описать, к каким методам я прибегал для того, чтобы достигнуть желанной цели.

Читать далее

Взлет и падение Vuetify. Некролог

Время на прочтение8 мин
Охват и читатели25K

Vuetify - один из самых популярных Material Design фреймворков для Vue, которому недавно исполнилось 6 лет. И 6 января 2023 года его основатель заявил, что проект Vuetify перестал окупаться и он ищет работу. Отсюда - некролог в названии статьи.

Статья состоит из шести небольших частей, в которых мы пробежимся от первой версии до третьей, посередине разобрав, как фреймворк обновлялся до Vue 3, будем вместе смотреть за поведением основателя движка, а также тем, как можно справиться с переходом на Vue 3, пожалуй, хуже, чем кто-либо еще, включая команду Nuxt.

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

Погнали!

Это ужасно бесит — подборка косяков, постоянно встречающихся от сайта к сайту, от приложения к приложению

Время на прочтение5 мин
Охват и читатели38K

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

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

Читать далее

Популяризация JSON-RPC (часть 1)

Время на прочтение8 мин
Охват и читатели58K

Для передачи данных по сети есть хорошо зарекомендовавшие себя стандарты - например, SOAP, gRPC, AMQP, REST, GraphQL.

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

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

Читать далее

Изучаем Python за 6 месяцев. Подробный план обучения

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели436K

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

Когда я начал изучать питон, у меня возникло несколько вопросов.

Читать далее

Оптимизация графики для небольших сайтов: quetzli, webp, avif

Время на прочтение7 мин
Охват и читатели7.3K

Как мы оптимизировали показ изображений на сайте GrinDin.ru.

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

Читать далее

Удобный прогноз северного сияния: в цветах и графиках

Время на прочтение10 мин
Охват и читатели18K

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

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

Читать далее

Почему вам стоит использовать Styled Components

Время на прочтение7 мин
Охват и читатели21K

Привет Хабр! Недавно мне попался на рефакторинг один сайт написанный одним студентом. Он был реализован не лучшим образом и уже давно следовало бы его исправить. И вот наконец у меня выдалось свободное время на рефакторинг. Сайт был написан на Next.js, для написания стилей использовались SCSS Modules. А так как я на своих проектах уже давно использую Styled Components тут же в глаза бросился дискомфорт от использования обычного SCSS. И в этой статье я вам расскажу что же это за дискомфорт и как же Styled Components позволяет от него избавиться.

Читать далее

Как из браузера открыть папку в проводнике Windows

Время на прочтение2 мин
Охват и читатели38K
Представьте, что у вас возникла необходимость прямо с веб-страницы заказа в вашей CRM-системе открывать папку с файлами, которые к этому заказу относятся. Но не просто отображать содержимое папки, а прямо на компьютере открывать проводник с этой папкой.

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

Вы можете резонно предположить, что есть протокол file:// (я позволю себе использовать здесь и далее слово протокол, хотя правильнее, конечно, схема URI), который позволяет браузерам открывать локальные файлы, но с ним также есть две проблемы:

1) он не может отобразить список файлов в папке;
2) такие ссылки нельзя открывать с внешних (не локальных) веб-страниц.

Чтобы решить данную проблему, мы будем использовать свой протокол с собственным обработчиком. Метод будет работать в Windows и потребует некоторых (очень простых) действий на компьютере.
Читать дальше →

История про Growth hacking на практике

Время на прочтение3 мин
Охват и читатели2K

Всем привет! Меня зовут Андрей Никишин, я бэкенд-разработчик hh.ru в команде “Карьерные сервисы”. Существует распространенное мнение, что hh — это просто сайт с вакансиями и резюме, но это совсем не так.  У нас есть множество сервисов: от досуга и развлечений до построения карьеры. И количество сервисов постоянно растет — и никогда не узнаешь заранее, какой из них выстрелит, а какой улетит в пустоту. Или узнаешь? В этой статье поделюсь кулстори, как мы нагроусхачили на новый сервис, и что из этого вышло. 

Читать далее

Субъективные итоги года в мире Python

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

Привет, я Михаил Корнеев, вместе с Григорием Петровым и другими ребятами из сообщества мы ведем подкаст о Python на русском. В прошлую пятницу мы собрались в онлайне обсудить, что запомнилось в уходящем году.  

Это — текстовая выжимка из выпуска. 

Читать далее

Изучение TypeScript — полное руководство для начинающих. Часть 4 — Литералы и дженерики

Время на прочтение5 мин
Охват и читатели23K

Привет! В новой части руководства будут рассмотрены такие важные понятия, как литералы и дженерики. Итак, приступим.

Предыдущие части:
Часть 1 - Введение и примитивы
Часть 2 - Ссылочные типы данных
Часть 3 - Классы и интерфейсы
Часть 5 - Строгий режим и сужение типов

Читать далее

Развертывание ASP.NET Core MVC приложения на Ubuntu 20.04 на VPS. Установка SSL

Время на прочтение6 мин
Охват и читатели33K

Недавно мне понадобилось развернуть ASP.NET приложение на VPS. Во время развертывания я встретился с некоторыми подводными камнями и, чтобы другие могли их избежать, решил изложить все в туториале.

В этой статье я по шагам, на примере своего ASP.NET приложения, рассказал как:

1. Развернуть ASP.NET приложение на VPS
2. Установить SSL сертификат
3. Установить и настроить MS SQL

Это все на Ubuntu 20.04.

Читать далее ->

Ближайшие события

Разрешение и «Полу-пиксель»

Время на прочтение4 мин
Охват и читатели4.5K

Изучив оба стандарта: IBM VGA и EXIF, написав пару публикаций по теме, у меня все равно ушло два дня, чтобы понять, откуда берется «полу-пиксель». И речь не о рендеринге сложных форм типа литер шрифта или иконок, а о стандартных ректанглах формата 100x100. Который по логике должен масштабироваться хорошо. Однако.

Читать далее

Cтандартизированные методики исследования UX

Время на прочтение6 мин
Охват и читатели2.9K

Несмотря на разнообразие подходов к UX (статья 1, статья 2, статья 3), в научной и практической среде за последние два десятилетия сформировались стандартизированные методики изучения пользовательского опыта. Объединяет их то, что все они основаны на теоретических предпосылках, разработанных в рамках относительно новой дисциплины Human-Computer Interaction (HCI). При этом четко прослеживается тенденция на расширение факторов, входящих в UX. Сегодня я расскажу о трех самых распространенных опросниках: AttrakDiff, UEQ и meCUE. 

Читать далее

React + TypeScript: необходимый минимум

Время на прочтение11 мин
Охват и читатели94K


Привет, друзья!


Представляю вашему вниманию перевод этой замечательной статьи.


Многие React-разработчики спрашивают себя: надо ли мне учить TypeScript? Еще как надо!


Преимущества изучения TS могут быть сведены к следующему:


  • ваши шансы получить более высокооплачиваемую работу сильно увеличатся;
  • в вашем коде будет намного меньше багов, его будет легче читать и поддерживать;
  • рефакторить код и обновлять зависимости станет гораздо проще.

Эта статья представляет собой минимальное введение по использованию TS в React.


Антигероем нашей истории будет Пэт — очень неприятный технический директор.

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

Как составить Customer Journey Map и почему не надо игнорировать этот инструмент

Время на прочтение3 мин
Охват и читатели5K

Customer Journey Map (CJM) или карта пути пользователя — это один из способов найти новые гипотезы по увеличению количества заявок и продаж. Это маркетинговый инструмент, который можно использовать в разработке на этапе прототипирования. В статье подробно о CJM и о том, как он помогает создавать продукты.

Читать далее

Сколько нужно времени, чтобы переписать объявление?

Время на прочтение10 мин
Охват и читатели2.3K

Привет! Меня зовут Илья Никитин, я по-прежнему фронтенд-разработчик в Авито, работаю в кластере BuyerX. В прошлом году я писал о том, как сложно было перевести кнопки контактов на странице объявления с Twig-шаблонизатора на React. Мы переживали, получится ли перезапуск и станет ли он последним. В итоге A/B-тест мы не раскатили, но перезапуск действительно был последним, мы учли все ошибки и пошли дальше. За прошедший год мы полностью переписали страницу объявления. Рассказываю, как это было и с какими трудностями нам пришлось столкнуться.

Читать далее

Big State Managers Benchmark

Время на прочтение9 мин
Охват и читатели13K

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

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

Что ж, давайте возьмём их всех и столкнём лбами друг с другом и с суровой реальностью, чтобы узнать кто же на самом деле тут батя!

Мне больше 18 и я готов к последствиям

Как я написал свою поисковую систему для быстрого поиска личной информации

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели11K

Предыстория

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

Что касается поиска по названию файла, то количество символов, указанных в названии ограниченно и слова при поиске должны быть в строго определенной последовательности. Тем более, если система индексирует другие, не нужные для поиска файла (системные файлы, файлы проектов), то поиск выдает много "мусора".

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

Более того по содержанию можно искать только текстовые файлы.

Структура содержания информации

Структура папок представляется собой в виде дерева. Мне это не нравится, потому что каждая папка может содержать только определенные файлы, если не учитывать копирование и ссылки.

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

Усложняется ещё все и тем, что я не помню, есть ли там вообще яблоки, и если есть, то хранятся ли они в отделе фрукты или там продаются.

Читать далее