Сообщение Re: Впросы новичка от 24.04.2016 12:31
Изменено 24.04.2016 12:37 AndrewVK
Здравствуйте, LaptevVV, Вы писали:
LVV>Решил я тут намедни Дотнет с Додиезом и прочими ВПЭФами освоить.
LVV>Пенсионер жеж — для собственного удовольствия...
LVV>Задачку себе выбрал: система психологического тестирования.
LVV>Потом студентам буду показывать процесс эволюционного развития системы и на паттерны показывать.
LVV>Чтобы одновременно не заморачиваться всем сразу, отложил работу с базой на попозже, и проектирование оконного интерфейса — тоже.
LVV>Тут просится паттерн прокси на место DB.
LVV>Основная часть сейчас — написать собственно тестилку.
LVV>Практически все тесты обрабатываются однотипно.
LVV>Поэтому первое, что автоматом сделал — паттерн Шаблонный метод.
LVV>Хотя Боб Мартин еще советует посмотреть в сторону Стратегии. Посмотрим. Пока неясны выгоды того и другого.
LVV>Шаблонный метод — очень понятный паттерн и в данном случае применяется просто в лоб.
LVV>У каждого теста есть набор вопросов.
LVV>И тестов этих много — ну, штук 200-300. Тут просится Фабрика — это понятно.
LVV>При писанине возникли некоторые вопросы к знатокам.
LVV>1. Список тестов.
LVV>Его легко сделать в виде обычного текстового файла.
LVV>Это чтобы можно было туда добавлять новые.
LVV>За каждой строкой "стоит" тест (объект в программе) и он имеет список своих вопросов.
LVV>Можно этот список вопросов запихать в файл и связать его имя со строкой в списке тестов.
LVV>Например:
LVV>1. Тест Кеттела = Q0001
LVV>2. Тест Айзенка = Q0002
LVV>Вот этот список тестов — в ресурсы запихать, или оставить как чисто простой текстовый файл?
LVV>Есть ли смысл в использовании ресурсов в данном случае?
LVV>Это ж тоже изучать в данном случае — Студия дофига кода генерит для ресурсов.
LVV>2. А когда тест выбран для работы, метод Initialization() просто читает в List<string> из соответствующего файла.
LVV>Или просто в лоб в коде присвоить имя файла?
LVV>В связи с этим: пока не совсем понятно, когда использовать свойства.
LVV>Вот например, для имени файла с вопросами использовать поле или свойство?
LVV>3. Нет опыта использования интерфейсов.
LVV>Когда использовать классы, когда интерфейсы (ну, кроме понятных случаев множественного наследования).
LVV>Боб Мартин паттерн Стратегия описывает как второй вариант решения одной и той же задачи.
LVV>И как раз описывает стратегию с помощью интерфейса.
LVV>А потом разные стратегии у него реализуются разными классами.
Вообще тут роли напрашиваются. Админ который будет добавлять в систему преподов. Преподы, которые будет добавлять тесты и студентов, ну студенты конечно. А так это как-то "сферично" и "ваккуумно".
LVV>Решил я тут намедни Дотнет с Додиезом и прочими ВПЭФами освоить.
LVV>Пенсионер жеж — для собственного удовольствия...
LVV>Задачку себе выбрал: система психологического тестирования.
LVV>Потом студентам буду показывать процесс эволюционного развития системы и на паттерны показывать.
LVV>Чтобы одновременно не заморачиваться всем сразу, отложил работу с базой на попозже, и проектирование оконного интерфейса — тоже.
LVV>Тут просится паттерн прокси на место DB.
LVV>Основная часть сейчас — написать собственно тестилку.
LVV>Практически все тесты обрабатываются однотипно.
LVV>Поэтому первое, что автоматом сделал — паттерн Шаблонный метод.
LVV>Хотя Боб Мартин еще советует посмотреть в сторону Стратегии. Посмотрим. Пока неясны выгоды того и другого.
LVV>Шаблонный метод — очень понятный паттерн и в данном случае применяется просто в лоб.
LVV>У каждого теста есть набор вопросов.
LVV>И тестов этих много — ну, штук 200-300. Тут просится Фабрика — это понятно.
LVV>При писанине возникли некоторые вопросы к знатокам.
LVV>1. Список тестов.
LVV>Его легко сделать в виде обычного текстового файла.
LVV>Это чтобы можно было туда добавлять новые.
LVV>За каждой строкой "стоит" тест (объект в программе) и он имеет список своих вопросов.
LVV>Можно этот список вопросов запихать в файл и связать его имя со строкой в списке тестов.
LVV>Например:
LVV>1. Тест Кеттела = Q0001
LVV>2. Тест Айзенка = Q0002
LVV>Вот этот список тестов — в ресурсы запихать, или оставить как чисто простой текстовый файл?
LVV>Есть ли смысл в использовании ресурсов в данном случае?
LVV>Это ж тоже изучать в данном случае — Студия дофига кода генерит для ресурсов.
LVV>2. А когда тест выбран для работы, метод Initialization() просто читает в List<string> из соответствующего файла.
LVV>Или просто в лоб в коде присвоить имя файла?
LVV>В связи с этим: пока не совсем понятно, когда использовать свойства.
LVV>Вот например, для имени файла с вопросами использовать поле или свойство?
LVV>3. Нет опыта использования интерфейсов.
LVV>Когда использовать классы, когда интерфейсы (ну, кроме понятных случаев множественного наследования).
LVV>Боб Мартин паттерн Стратегия описывает как второй вариант решения одной и той же задачи.
LVV>И как раз описывает стратегию с помощью интерфейса.
LVV>А потом разные стратегии у него реализуются разными классами.
Вообще тут роли напрашиваются. Админ который будет добавлять в систему преподов. Преподы, которые будет добавлять тесты и студентов, ну студенты конечно. А так это как-то "сферично" и "ваккуумно".
Re: Впросы новичка
Здравствуйте, LaptevVV, Вы писали:
LVV>3. Нет опыта использования интерфейсов.
LVV>Когда использовать классы, когда интерфейсы (ну, кроме понятных случаев множественного наследования).
LVV>Боб Мартин паттерн Стратегия описывает как второй вариант решения одной и той же задачи.
LVV>И как раз описывает стратегию с помощью интерфейса.
LVV>А потом разные стратегии у него реализуются разными классами.
Вообще тут роли напрашиваются. Админ который будет добавлять в систему преподов. Преподы, которые будет добавлять тесты и студентов, ну студенты конечно. А так это как-то "сферично" и "ваккуумно".
LVV>3. Нет опыта использования интерфейсов.
LVV>Когда использовать классы, когда интерфейсы (ну, кроме понятных случаев множественного наследования).
LVV>Боб Мартин паттерн Стратегия описывает как второй вариант решения одной и той же задачи.
LVV>И как раз описывает стратегию с помощью интерфейса.
LVV>А потом разные стратегии у него реализуются разными классами.
Вообще тут роли напрашиваются. Админ который будет добавлять в систему преподов. Преподы, которые будет добавлять тесты и студентов, ну студенты конечно. А так это как-то "сферично" и "ваккуумно".