Как стать автором
Обновить
14.77

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

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

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

Как мы сокращали размер JSONʼа в SDUI

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.8K

Привет, хабрачитатели! Server-Driven UI (SDUI) — это подход, при котором сервер управляет отображением интерфейса на клиенте. Важное преимущество SDUI — возможность внедрять изменения без выпуска новых версий приложений. Но это же преимущество есть его недостаток, ведь передача всех данных по сети зависит от качества соединения и увеличивает объём данных. 

Качество связи мы не можем контролировать, а вот уменьшить количество передаваемой информации посредством сокращения JSON, — вполне.

Читать далее

Новости

Могут ли LLM писать более качественный код, если их об этом просто попросить?

Уровень сложностиСредний
Время на прочтение19 мин
Количество просмотров25K

В ноябре 2023 года, когда OpenAI добавила в ChatGPT возможность генерации изображений DALL-E 3 через веб-интерфейс ChatGPT, на короткое время возник мем: пользователи отправляли LLM базовое изображение и несколько раз просили «сделать его более X», где X могло быть чем угодно.
Примеры
Обычный парень становится всё более «бро».

Санта становится всё более «серьёзным».

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

А что будет, если я попробую похожий способ с кодом? Сгенерированный LLM код вряд ли будет мусорным (хоть это и возможно), поскольку он следует строгим правилам, и в отличие, например, от изображений, его качество можно измерить объективнее.

Если код в самом деле можно улучшить, просто при помощи интерактивного промтинга, попросив LLM «написать код получше» (хоть это и очень глупо), то это приведёт к огромному росту продуктивности. А если это так, то что произойдёт, если таких итераций с кодом будет слишком много? Каким станет эквивалент «космического» кода? Есть только один способ это выяснить!
Читать дальше →

Spring JPA и OOM: 5 способов спастись от кэш-ловушки Hibernate

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров639

Spring JPA + большие данные = OOM? Hibernate скрывает коварную ловушку, которая может перегрузить память и обрушить приложение. Разбираем причины, а главное – 5 эффективных способов избежать OOM, чтобы работать с миллионами записей без проблем! 🚀

Читать далее

Udim? Текстурные сеты? Texel Density? Что это и зачем оно? Разбор от А до Я

Уровень сложностиСложный
Время на прочтение20 мин
Количество просмотров2K

Сегодня я хочу поделиться с вами советами по использованию Udim, текстурных сетов, texel density, padding, mipmapping и других техник в различных ситуациях и при возникновении ошибок.

Этот материал создан автором самостоятельно, однако в него также включена информация, полученная из других источников.

Редактор и создатель идеи: Daniil Lipin (lipa_l1).
Благодарю за помощь в написании статьи замечательных художников высокого уровня: _Shelest_, Titan_Fair, Alexey Yarmola, nikiost, trasnik.
Отдельное спасибо:
Dmitriy Bogumil — за предоставление файлов/скринов модели монстра.
gRen — за предоставление скринов с ошибками запекания карт id на оружии.

Сайты, откуда была взята маленькая часть информации:
1) https://www.youtube.com/watch?v=55sGQLX7iho
2) https://www.artstation.com/artwork/Xg3reL
3) http://wiki.polycount.com/wiki/Edge_padding
4) https://dtf.ru/gamedev/202100-kak-uluchshit-kachestvo-tekstur-razbor-metodov-optimizacii-uv
5) https://en.wikipedia.org/wiki/File:Mipmap_Aliasing_Comparison.png
6) https://gtaforums.com/topic/750681-skygfx-ps2-xbox-and-mobile-graphics-for-pc/page/287/
7) https://vk.com/@anatolii994-teksel-prostoi-universalnyi-metod
8) https://www.artstation.com/artwork/x3B5YX

Буду признателен, если вы поможете мне исправить опечатки, а ещё, если есть вопросы, пишите, пожалуйста, на почту: lipindan2003@gmail.com, в телеграмм — @lipa_l1, в дискорд — @lipa_l1.

«Все материалы данного сайта являются объектами авторского права (в том числе дизайн). Запрещается копирование, распространение или любое иное использование информации и объектов без предварительного согласия правообладателя»

Читать далее

Истории

Разметка данных на заказ: как корректно оценить проект и защитить бизнес от рисков

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров634

Сорванные дедлайны, работа в выходные, недовольный клиент — знакомо? Если да, то вы, вероятно, сталкивались с некорректной оценкой проекта. В прошлой статье я рассказывал о риск-факторах в задачах разметки и сбора данных:

Читать далее

Порталы: как устроен расчёт видимости в Quake, часть 2

Уровень сложностиПростой
Время на прочтение16 мин
Количество просмотров2.1K

Часть 1

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

«Это просто задача отсечения»

Свет внезапно выключается. Вы сидите в огромном конференц-зале. Кто-то включает проектор. На экране сам Майкл Абраш! Похоже, это знаменитый доклад Quake Postmortem с GDC 1997.

Он говорит о порталах.

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

Читать далее

Кейс применения useMemo и useCallback в React для оптимизации рендеринга при изменении глобального состояния

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров8.5K

Я занимаюсь фронтенд разработкой на React последние 6 лет (в роли full-stack разработчика). Я знал и слышал, что существуют хуки useCallback и useMemo, которые нужны для оптимизации рендеринга. При этом про их использование я слышал только в теории или на собеседованиях.

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

Читать далее

Ред флаги заказчиков или почему отказывать клиентам – это нормально

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

За годы работы с клиентами я видела разное. Когда-то, на своей прошлой работе в госструктуре, была на стороне заказчика. Казалось бы, где ещё прокачать диктаторский талант, как не там? Но, знаете, у меня всё было как-то по-человечески: я уважала экспертов, была открыта к диалогу, решала задачи, а не играла в «кто тут главный». Но потом я стала предпринимателем и окунулась в мир, где адекватность — это что-то вроде редкой валюты. И вот тут я осознала, что не только исполнители бывают всратые, но и заказчики далеко не святые.

Так что, предприниматели, давайте называть вещи своими именами: говорить «нет» клиентам не только можно, но и нужно. Вот мой личный список ред флагов, которые я с годами чую за версту. Кстати, в комментах можно поговниться на исполнителей (ну или меня) и написать свои ред флаги, го!

Читать далее

Как я замучился с пресейлами и решил создать SaaS сервис себе в помощь

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.2K

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

Читать далее

Performance и оптимизация TypeScript-типов в больших проектах

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.4K

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

Читать далее

Взгляд с другой стороны на useMemo, useCallback и React.memo в React: когда их стоит использовать

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров5.7K

Оптимизация производительности React приложений — важная часть разработки, особенно когда речь идет о сложных интерфейсах. В основном разработчики лишь краем уха слышат о необходимости использования хуков useMemo, useCallback и React.memo для оптимизации кода. Но если бездумно использовать их, то можно даже навредить вашему приложению

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

Читать далее

Оптимизация React-приложений: Используем useTransition, useDeferredValue и useOptimistic для плавного UI

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров8.3K

Сделайте интерфейс React-приложения более отзывчивым и плавным с помощью хуков useTransition, useDeferredValue и useOptimistic. Управляйте приоритетами рендеринга, избегайте подвисаний при работе с большими данными и реализуйте оптимистичные обновления для мгновенной реакции интерфейса. Практические примеры и полезные советы ждут вас! 🚀

Читать далее

Деление беззнаковых 8-битных чисел

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров6.2K

Деление — достаточно затратная операция. Например, на CPU Cannon Lake задержки 32-битного деления находятся в интервале 10-15 тактов, а на Zen4 — 9-14 тактов. Задержки 32-битного умножения на обоих CPU составляют 3-4 такта.

Ни в одном из популярных ISA SIMD (SSE, AVX, AVX-512, ARM Neon, ARM SVE) нет целочисленного деления, оно есть только в RISC-V Vector Extension. Однако во всех этих ISA есть деление с плавающей запятой.

В этой статье мы представим два подхода к реализации SIMD-деления 8-битных беззнаковых чисел.

Читать далее

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

Раскрыто дело о тайных пациентах медицинских компаний

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.2K

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

Читать далее

Чек-лист по запуску нового сайта: что нужно учесть?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров3.8K

Запуск нового сайта — момент ответственный. Надо сделать 1000 и 1 дело. Чтобы вы не потерялись в дедлайнах и задачах, вот вам чек-лист. Подрядчикам он поможет структурировать все действия, а заказчикам — понять и проверить, все ли пожелания учла команда разработки.

Читать далее

WebMarkupMin: Обновления в ASP.NET Core-расширениях, вызванные выходом .NET 9 и не только

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.7K

Уже стало традицией, что выход очередной версии .NET становится поводом для выпуска новой версии WebMarkupMin. Обычно подобные выпуски WebMarkupMin сопровождаются обновлением расширений для ASP.NET Core и этот раз не стал исключением. Многие ожидали, что с появлением .NET 9 появится новый модуль WebMarkupMin.AspNetCore9, но этого не произошло. В этой статье я расскажу о причинах такого решения. Кроме того, в этот раз в ASP.NET Core-расширениях довольно много изменений, а поскольку для большинства разработчиков основным источником информации об этих расширениях является уже немного устаревшая статья Эндрю Лока «HTML minification using WebMarkupMin in ASP.NET Core», то я постараюсь разъяснить некоторые неочевидные моменты.

Читать далее

Правда или миф: почему в разработке не все так быстро, как кажется

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров2.9K

Клиент заказал разработку сайта.

Ожидание: все готово еще вчера.
Реальность: составление ТЗ, прототипирование, доработки, конфликты, снова доработки, и только потом результат.

Читать далее

Как избежать разочарования пользователя: от NPS к ценности

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров1.2K

Привет, Хабр! Это Глеб Михеев — член ПК, отвечающий за программу широко известной в узких фронтендерских кругах конференции FrontendConf, автор канала «Уставший техдир» и знатный амбассадор работы с джунами. Эту статью я написал по мотивам выпуска моего подкаста Фичи Катятся, где мы с Серёжей Паращенко, автором канала Product Cult, обсудили продуктовый подход. Предлагаю разобраться в теме разочарования. Что именно разочаровывает пользователей, и как это можно изменить. Поехали!

Читать далее

Как мы разработали и добавили «истории» в сервис для поиска работы за 3 месяца

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров329

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

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

При этом поиском подработки мы не ограничились. Мы ввели на платформу механики check-in и check-out, подобные тем, что есть у таксистов Яндекса. С их помощью человек мог регистрировать время выхода на работу, различные паузы, а также время завершения смены.

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

Читать далее

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

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.5K

Всем привет. В этом материале я расскажу как создавал беспслатный сервис оптимизации изображений FlashImg.ru

Читать далее
1
23 ...

Вклад авторов