Vladimir "Dair" Lebedev-Schmidthof (dair_spb) wrote,
Vladimir "Dair" Lebedev-Schmidthof
dair_spb

через тернии к сдаче проекта

(Не-программистам не интересно)

Мне вот интересно, коллеги по цеху, это я один такой эээ... не знаю, какой, или так и надо?

Есть у меня на работе задача.
В разном порядке достукиваться до определенного сайта по определенному API.

Доступ к сайту может происходить:
1. Несекурно - без логинов/паролей.
2. Ограничено для приложения — внутри приложения захардкожен некий ключ, скрестив который с опциями приложения (едиными для семейства приложений) пользователю доступен тот или иной контент для скачивания.
3. Доступ к "личному хранилищу" контента -- тут и логин, и пароль. Из них делается ключ и по нему доступ.

Я долго думал, дня два, наверно.
Потом забабахал систему "операций" (ну, это, наверно, можно назвать "транзакцией"), каждая из которых может или завершиться успешно (true), или нет (false). Операций получилось несколько:
1. Скачать данные по урлу
2. Распарсить скачанные данные
3. Отфильтровать скачанные данные (всегда true, за исключением неправильного использования)
4. По опциям программы сформировать ключ для доступа к ограниченному контенту
5. По опциям программы, логину и паролю сформировать ключ для доступа к "личному хранилищу".
6. Из ключа сформировать урл для доступа (далее см.1)
и т.п.

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

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

Уже поздно переделывать попроще, уже почти всё готово, но мне интересно — я не перенаворотил?...
Tags: software development, work
Subscribe

  • Как бы так...

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

  • node.js, typescript, Visual Studio Code

    А нету ли у меня знакомых, умеющих в node.js и отладку command-lineового TypeScript в Visual Studio Code? Visual Studio Code не обязательно. У меня…

  • починить крышу гаража

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

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 5 comments