Программирование
Все лабораторные должны быть выполнены на helios.
Возможно, требования будут меняться и/или пополняться с течением времени,
так что перед тем, как делать лабораnорную, лучше зайти и проверить :)
ЛР5
- Давайте использовать сторонние библиотеки для парсинга xml/json, а не изобретать собственный кирпич. Если у Вас в варианте csv, пожалуйста, замените его на Yaml.
- User-friendly prompt на старте программы ('Type help if you don't know', например)
- User-friendly prompt для каждой команды (как в bash)
- Для add/update: ввод поля enum заглавными буквами, строчными буквами, порядковым номером
- Для add/update: если пользовательский ввод неверен, то не заканчиваем выполнение команды, а ждем, пока пользователь не введет правильно.
- Для add/update: хорошо бы сообщать пользователю, какого типа данных значение ему вводить и какие на него есть ограничения.
- При неправильном пути до файла в переменных окружения -- запускаемся и пишем в коллекцию, а при попытке сделать save не делаем и сообщаем об ошибке
- save/load c несуществующим файлом -- создаем себе этот файл и при необходимости пишем в пустой файл
- save/load с файлом без прав доступа -- запускаемся с пустой коллекцией и сообщением о том, что файл пустой. При попытке сохранить не сохраняем и сообщаем об ошибке
- Не забываем про рекурсию в скрипте. Захардкодить количество вложенностей -- не решение!
- execute_script не должен сообщать о неверной команде в случае, если ему подается пустая строка
- add внутри скрипта продолжает считывать поля также внутри скрипта, а не возвращается в консоль
- Обработка выхода по комбинации Ctrl-C и Ctrl-D. При этом необходимо производить запись в файл (конечно, если он доступен)!
- Команда update сначала проверяет, что id есть, и только ПОТОМ запрашивает данные для замены
- Не забываем про человекочитаемые сообщения в случае, если коллекция пуста
ЛР6
- Реализовано взаимодействие одновременно с несколькими клиентами
- Команда update сначала проверяет, что id есть, и только ПОТОМ запрашивает данные для замены
- Между клиентом и сервером пересылаются не строки, а сериализованные сообщения с осмысленными полями
- execute_script отправляет на сервер не название файла (подразумеваем, что файлы живут на клиенте и сервер про них ничего не знает), а список команд
ЛР7
- Не забываем про logout без необходимости перезапуска клиентского приложения
- При выводе show показываем также id и id или имя создателя
ЛР8
- To be done...