Мы с важной новостью: с 28 февраля 2025 года сервис Хабр Фриланс прекратит свою работу.

Купить услуги можно до 28 февраля 2025, но пополнить баланс уже нельзя. Если на вашем счете остались средства, вы можете потратить их на небольшие услуги — служба поддержки готова поделиться бонусами, на случай, если средств немного не хватает.
R50 7b1decb06c37239c20f5ec50fb5df955
Android, rfid, windows

Shipment

Добавлено 01 июн 2021 в 10:07
Проект — клиент для выполнения основных складских операций: приём, отгрузка, внутренние задачи.
Принял проект от прошлого разработчика в плачевном состоянии, ничего не работало. Ну как принял: только архив с исходным кодом, без истории, без документации, без контроля версий. Качество кода, архитектура — на жидкую троечку. Я починил авторизацию, добавил выбор склада (система выросла с одного склада). С разработчиком бекенда пришли к ряду формальных соглашений по текущему API сервера, по его изменению, по его документированию. Я провёл ревизию всех запросов к серверу с помощью спец. ПО, выявили неясные углы в логике, в сценариях работ исполнителей на складе. API было скорректировано с целью исправления этой ситуации. Далее, по моему совету был составлен внушительный массив тестовых данных в БД на тестовом сервере. Запросы к серверу, приводящие к объёмным ответам были скорректированы, например, запрос "список всех паллет" был заменён на "запрос паллет содержащих два и более введённых пользователем символа из идентификатора паллеты" - пользователь сканирует штрихкод с паллеты — сразу получает её состояние в системе, без необходимости в загрузке всех паллет и выбора из него. Была внедрена постраничная загрузка списков. Каждый запрос был зафиксирован в документе "протокол взаимодействия терминала ТСД и Системы".
Код клиента я не стал переписывать целиком — только те места которые не работали / не отвечали требованиям. Параллельна мной была выполнена миграция с android support library на androidx. После этого я перевёл вёрстку на constraintlayout. Заказчик изначально не предъявлял особых требований к UI/UX, однако, видя мои очевидные правки(например: вынос нечастых функций, таких как добавление новой паллеты в отдельное меню, увеличение высот пунктов меню для однозначного выбора складским работником в перчатках) попросил внедрить управление клиентом с помощью спец. клавиш на Терминале Сбора Данных (фото прикрепляю). Такого устройства у меня не было в наличии и возможности для его передачи мне — тоже. Однако, такой функционал был мной реализован, что называется "дистанционно". Для фиксирования и разбора ошибок я внедрил логирование, включаемое пользователем на клиенте, что ускорило процесс отладки как серверной, так и клиентской части.
Сейчас мой складской клиент работает в три смены на двух складах (сколько используется ТСД - NDA), обеспечивая приём и отгрузку по ~1500 на каждом, плюс складские операции (такие, как перемещения).
Fc6a2c942e 2eabcfe59c