arrow

назад

ask

Вопрос

Коллеги-разработчики, часто ли в вашей практике встречались задачи, требующие нестандартных алгоритмических решений? Буду благодарен за примеры.

repost

349

input message

напишите коммент


6 комментов

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

0

ответить

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

0

ответить

Спасибо за подхват. В теории грамотно проработанная структура проекта, в моем понимании, не должна создавать ситуаций для обработки сложных структур, тем более на фронтенде. Но и такое бывает: можно встретить тройную вложенность цикла (из рассказов коллег) там, где можно обойтись одним

Признаюсь, в моей практике с какой-то нестандартной обработкой данных я встречался исключительно в задачах на LeetСode или на собеседовании, либо в разборе принципов работы фреймворков и анализа DOM-дерева и то не так стльно как зотелось бы.

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

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

Решение: используя предварительную фильтрацию на основе оценки вьюпорта, я задал максимальное количество точек для отрисовки. Подробнее:

1. Приходит массив. 2. Оцениваю вьюпорт. 3. Отфильтровываю точки в диапазоне. 4. Проверяю количество оставшихся. 5. Тут фильтр делится по-умному. 6. Если их всё равно больше положенного, 7. делю вьюпорт на 16 частей и группирую те части, где превышено допустимое значение по заданной константе. 8. В тех кусках, где точек мало, просто отрисовываю.

0

ответить

Плюс за оригинальность и иронию.

0

ответить

Так вы из тех айтишников, которые с реальным миром не сталкиваются.

0

ответить

Каюсь, очевидно не сталкивался.

0

ответить

еще контент автора

пост закреплён — пока закрепить можно только один пост

trash bin
перейти к нему не получится