(3 курс ФИИТ) Паттерны проектирования приложений: практика

Задание:

Если у покупателя есть две рабочих карты (например, весёлая и ламповая), используется только с одна с большей скидкой.

На ваш выбор. Точно аннулируется карта из серии ламповая — интегральная.

Да, забыла сказать. В дисплейных классах установлена MS Visual Studio 2013 с теперь уже старым C#. Поэтому, если дома вы используете Visual Studio 2015 с C# 6.0 и вовсю эксплуатируете новые возможности, в дисплейном классе проект не соберётся, как это ни прискорбно. А собрать его нужно.

Второе, по поводу размещения кода проекта в репозитории. Убедитесь, что в репозитории нет бинарных файлов, но есть все необходимые файлы для сборки: файл решения, файлы проектов, файлы исходных кодов. Сделайте клон репозитория и убедитесь, что .sln-файл благополучно загружает всё, что нужно.

Магазин инициализируется «с нуля». Система не знает ни одного покупателя со скидочной картой.

То есть, это значит, что в этот момент, мы “открываем” магазин и не подразумеваем дальнейшее выключение программы?

А также вопрос, как лучше следить за текущей датой? Вызывать функцию, вроде NextDay()?

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

Да, вроде того. Можно считать, что каждые две покупки — это один день, например. Кто-то добавил в интерфейс команду установки даты.

Вообще, я тут подумала: за моделирование дней буду ставить бонусные баллы.

Работу с датой тоже описывать в вики?

Да, кратенько.

Редактор UML-диаграмм ограничивается двумя предложенными программами, или можно что-то другое использовать?

Можно, конечно. Только не забывайте на диаграмме указывать параметры методов и типы.

в 201 аудитории 2015 студия)

1 лайк

Внезапно! Вот так сюрприз…

А еще Win10 и пробный период.

Как надо реагировать на ошибки пользователя в демонстрационном интерфейсе? Например, если надо ввести 1 или 2, а в текстовом файле на этой строке 10, то что необходимо делать?

Сообщение об ошибке выводить. Всё то же, что и в интерактивном режиме, в общем.

Несколько организационных замечаний.

  1. Работать в репозитории нужно постоянно и с первых шагов разработки, а не заливать туда уже готовый проект. Тренируйтесь, пока проект персональный, со следующего занятия начинаем работать в команде.

  2. Определитесь с командами и отметьте их в гугл-таблице до следующего занятия.

И несколько замечаний по первому проекту и его продолжению.

  1. Прежде чем возвращаться к работе над проектом, выполните лабораторную #2. Внимательно читайте задание: нужно записать вопросы и ответы на вики и послать мне http-адрес этой вики-страницы. Убедитесь, что вы расшарили репозиторий по адресу julbel@sfedu.ru.

  2. В задании сказано, что демо-режим запускается, если имя файла передано как аргумент командной строки. Если у вас не так — исправьте это. Задание может кому-то не нравиться, кто-то считает, что удобнее делать иначе, но задание есть задание.
    Убедитесь, что программа не ломается, если указано имя не существующего файла: нужно просто выводить сообщение, но не «падать». Проверьте также, что происходит, если в имени есть недопустимые символы (например, * или \). И не забудьте, что хотя при работе с файлом может вылететь исключение и это надо обрабатывать, для проверки существования файла всё-таки есть File.Exists.

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

  4. Обработка имени пользователя. В хорошей системе не имеет значения, вводите вы «Petrov», «petrov» или «petROV». Обычно имена-фамилии автоматически приводят к одному виду (например, все буквы — в один регистр), и уже в таком виде хранят в базе.

У вас в гугло-таблице 3.9 дубликаты.

Ой, что-то там вообще бардак :frowning:

Может без списков будем? По-моему идея с ними немного провалилась.

Подозреваю, что кто-то решил просортировать список по фамилиям :blush:

1 лайк

Ничего-ничего. Вот мне даже кто-то помог порядок навести.

А ну-ка, третий курс, го в slack!

1 лайк