Обновить
32K+

Клиентская оптимизация *

Делаем сайты удобнее и приятнее

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

Резиновый десктопный адаптив: как сделать большие экраны одинаковыми

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

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

Читать далее

Статусы присутствия в 3CX – используем UC правильно

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

Веб-клиент 3CX – это интерфейс пользователя / оператора колл-центра 3CX, который в последнее время получает множество улучшений. Но в этой статье мы хотим рассказать про различные статусы присутствия пользователя, которые устанавливаются в веб-клиенте. Используют ли ваши сотрудники эти статусы эффективно?

Далее

Как сделать программу на Go быстрее на 42%, изменив один символ

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

Если вы прочитали заголовок и подумали «ну, ты, наверно, сделал сначала что-то глупое», то вы правы! Но что такое программирование, как не упражнения в глупых ошибках? Поиск глупых ошибок — это и есть самое большое удовольствие!

Также стоит заранее сделать оговорку о бенчмаркинге: ускорение на 42% было замерено при выполнении программы с моими данными и на моём компьютере, поэтому относитесь к этому результату с долей скепсиса.

Что делает программа?


codeowners — это программа на Go, выводящая владельцев каждого из файлов в репозитории согласно набору правил, указанному в файле GitHub CODEOWNERS. Правило может гласить, что всеми файлами с расширением .go владеет команда @gophers, или что всеми файлами в папке docs/ владеет команда @docs.
Читать дальше →

Рассказ о том, как мы решили сделать свое приложение

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

Зачем свое ПО компании, которая занимается печатным оборудованием? При чем здесь аутсорсинг? Понимали ли вы, как много времени, денег и сил нужно на разработку?

Сейчас все расскажем!

Читать далее

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

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

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


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


Antora — генератор статических HTML сайтов из исходных AsciiDoc файлов. Antora бесплатная и имеет открытый исходный код.


Магия

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

Taichi и 100-кратное ускорение Python-кода

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

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

Если вы когда-либо попадали в одну из следующих ситуация — тогда эта статья, определённо, написана для вас.

Читать далее

Как мы зарелизили новую корзину и победили проблему разваливающихся заказов

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

Привет! Меня зовут Катя Антипова, я старший продакт в М.Видео-Эльдорадо. Сегодня я расскажу вам о том, как мы обновляли корзину в мобильном приложении и на сайте М.Видео и решали одну их сильных «головных болей» наших клиентов.

Читать далее

Вредные советы для React-разработчиков

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

Недавно британские ученые открыли, что на свете бывают непослушные разработчики, которые все делают наоборот. Им дают полезный совет: «Не подключай целую библиотеку ради одной функции», — они берут и подключают. Им говорят: «Будь внимателен на код-ревью», — они тут же начинают апрувить все подряд. Ученые придумали, что таким разработчикам нужно давать не полезные, а вредные советы. Они все сделают наоборот, и получится как раз правильно.

Читать далее

«Байки по зуму»: история компании Buyk, запустившей фудтех-революцию в США

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

Запущенный в оборот российскими предпринимателями сервис экспресс-доставки продуктов Buyk за несколько месяцев приобрёл большую популярность в Америке. Не смотря на высокие темпы роста спустя полгода существования компания объявила о банкротстве в связи с экономическими обстоятельствами в мире. 

Никита Черкасский, ex-process operations manager Buyk, поделился интересными подробностями создания и развития данной компании и конструирования бизнеса в США по российским технологиям, а также личным опытом стремительного карьерного роста. 

Экспресс-доставка продуктов привычна для россиян: качественный сервис предлагают сразу несколько крупных компаний, конкуренция растет стремительно. По экспертным прогнозам, объем глобального рынка доставки еды к 2027 году достигнет $300 млрд. Рынок США, в отличие от европейского, не консолидирован, поэтому решение основателей фудтех-гиганта «Самокат» развивать бизнес в Америке было своевременным.

На «Самокате» в США

В 2018 году, с появлением сервиса доставки продуктов «Самокат», в России стартовал бум быстрой доставки продуктов питания. В это время  я, будучи студентом 3 курса, начинаю изучать электронную коммерцию, что вскоре привело меня к управлению каналом eCommerce во второй федеральной розничной сети магазинов формата дрогери «Улыбка радуги».

От доставщика до ex-process operations manager 

Дела шли в гору, мы заключили успешное партнерство с Alibaba Group и выстраивали продажи, но однажды вечером, я прочел новость: «“Самокат” едет в США». Подумал, что обязательно нужно попробовать – и вот, спустя уже месяц доставлял первые заказы, катаясь на велосипеде по Москве с фирменным розовым рюкзаком за спиной. Я прошел ускоренный курс внедрения – от курьера до супервайзера, в течение двух месяцев изучая каждую деталь рабочего процесса: прием товара, сборка заказа, доставка, инвентаризация и другие модули работы даркстора. Освоив все операционные процессы, я присоединился к процессу запуска Buyk на американском рынке.

Читать далее

Устранение утечек памяти с помощью профилирования

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

Если система работает длительное время, объём свободной памяти может уменьшаться, что может приводить к отказу некоторых сервисов. Это типичная проблема утечки памяти, которую обычно сложно спрогнозировать и выявить. Удобными инструментами для решения подобных проблем являются профайлеры кучи. Они отслеживают распределение памяти и помогают разобраться, что находится в куче программы, а также найти утечки памяти.

В этой статье мы расскажем об использовании профайлеров кучи, а также объясним, как спроектированы и реализованы популярные профайлеры кучи, например, профайлер кучи Go, gperftools, jemalloc и Bytehound.
Читать дальше →

Что делать, если Вашему бизнесу нужна автоматизация?

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

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

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

Читать далее

Как создать Star Rating виджет на React.js и оптимизировать его

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

В этой статье я хочу затронуть еще одну задачу, с которой вы можете столкнуться на собеседовании на позицию Front-End — создание Star Rating виджета.

За последние пять месяцев у меня было 15 онсайт собеседований, а также офферы от Google, Roku, Microsoft и других компаний.

Вы должны уточнить требования и реализовать этот виджет в течение ~ 45–50 минут.

Читать далее

Создаем слайдер с изображением и текстом на React.js с нуля и оптимизируем

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

В этой статье я хочу затронуть задачу, с которой вы можете столкнуться на собеседовании на позицию Front-End — создание Image Slider.

За последние 5 месяцев у меня было 15 онсайт собеседований, а также офферы от Google, Roku, Microsoft и других. (Больше информации можно прочитать в моем Telegram-канале)

Вы должны реализовать этот виджет за ~45–50 минут и рассказать об оптимизации. Эту информацию я постараюсь рассказать здесь. Основная цель состоит не в том, чтобы реализовать Image Slider с большим количеством функционала, а в том, чтобы показать, как реализовать и оптимизировать.

Читать далее

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

OpenLiteSpeed быстрый. Но не всегда

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

Привет, Хабр! Меня зовут Алексей, сегодня расскажу, как делал нагрузочное тестирование nginx, Apache и OpenLiteSpeed (он же OLS) и какой из серверов быстрее. 

Поводом для теста стало добавление OLS в наш продукт — ISPmanager. Это панель для управления веб-серверами и сайтами. Поддержка Apache и nginx у нас была давно, а вот OLS — в новинку. Добавить его в ISPmanager очень просили наши пользователи. Разработчики говорят, что OLS супербыстрый сервер, да и независимые замеры подтверждают. Но мы решили проверить всё сами. Оказалось, сервер действительно производительный, но всё же не всегда обгоняет конкурентов. Подробности под катом. 

Читать далее

Раздувание кода стало астрономическим

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

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

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

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

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →

Оптимизация загрузки js бандла использующего icon pack’и

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

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

Мое приложение состоящее из 2х элементов весит 722kb. Но почему?

Читать далее

«Яндекс.Такси» на железной дороге: почему это реально?

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

Краткий экскурс по уберизации от заместителя генерального директора ПГК по операционной эффективности и цифровому развитию Алексея Агапкина.

Читать далее

Азбука вкуса, Nuxt и наш тернистый путь к микрофронтам

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

Уже больше года мы в Азбуке вкуса мигрируем с jQuery на Nuxt. По мере роста, делали свою реализацию микрофронтов, чтобы хорошо организовать работу и решить ряд проблем.  

В процессе наступили на пару граблей, долго думали и наконец сделали.  

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

Узнать больше

Что такое мемоизация? Как и когда использовать мемоизацию в JavaScript и React

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

В данном переводе рассказывается о том, что такое мемоизация, зачем её использовать. Также представлены основные примеры на JavaScript и React, демонстрирующие работу мемоизации.

Развернуть

Как разработать фронтенд, чтобы не ночевать на заводе

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

Компания Datana занимается разработкой цифровых решений для оптимизации производственных процессов черной металлургии (подробнее в нашем блоге). Сейчас мы расскажем об опыте повышения стабильности и отказоустойчивости фронтендов наших систем или о том, как мы избавились от необходимости ночевать в цехе завода, чтобы вовремя нажать F5.

Читать далее