Слайд 2Техническое задание
1/9
Цель работы: разработка приложения которое на основе исходного кода написанного в
ООП стиле формирует дополнительный слой классов-билдеров которые отвечают за инициализацию объектов предоставляя для внешнего пользователя интерфейс в стиле Fluent API.
Объект исследования: использование Fluent API для упрощения использования решений написанных в ООП стиле.
Предмет исследования: использование автоматический сгенерированных классов формирующих интерфейс в стиле Fluent API для упрощения использования решений написанных в ООП стиле.
Задачи:
Изучить теоретические основы и существующие лучшие практики по проектированию Fluent API
Изучить способы и существующие решения для чтения и представления исходного кода в памяти приложения.
Выбрать оптимальный способ хранения информации об классах исходного кода и его зависимостях.
Написать алгоритм преобразующий данные о классах исходного кода в данные о будущих классах-билдерах, отвечающих за формирование прослойки предоставляющий интерфейс в стиле Fluent API.
Изучить способы и существующие программные решения для генерации кода.
Реализовать весь алгоритм для языке С# на стеке .NET Framework.
Слайд 3Иллюстрация двух подходов
2/9
Слайд 5Моделирование связей классов с помощью графов
4/9
Слайд 6Более сложный случай использования Fluent API
5/9
Слайд 7Преобразование графов связей классов в граф классов-билдеров
6/9
Слайд 8Список источников с которых можно начать
8/9
Дистель Р. Теория графов - Новосибирск: Издательство института математики, 2002.
- 336 с.
Кристофидес Н. Теория графов. Алгоритмический подход. – М.: Мир, 1977 – 433 c.
Кормен, Ч.И. Лейзерсон, Р.Л. Алгоритмы. Построение и анализ – М.: Издательский дом «Вильямс», 2013 – 944 с.
Ф.Харари. Теория графов. – М.: Мир, 1973 – 300 с.
Седжвик Р. Фундаментальные алгоритмы на C++. Алгоритмы на графах. – М.: ДиаСофтЮП, 2002– 496 с.
Фаулер М. Предметно-ориентированные языки программирования - М: Вильямс, Диалектика / Вильямс 2017. - 578 c.
Слайд 9Заключение
9/9
Очерчена глобальная проблема и выбран способ ее решения.
Очерчен круг теоретических сведений которые
необходимо изучить что бы эффективно реализовать решение.
Выбран стек технологий на которых будет базироваться решение.