Как лушче спроектировать максимально точную модель промышленного предприятия?
Предполагается, что модель работы промышленного предприятия будет максимально дотошной и будет генерировать огромное количество данных, которые потребуется не менее дотошно анализировать. Под дотошностью подразумевается зависимость работы предприятия от всех аспектов его существования (сотрудники, спрос, конкуренция, рынок ценных бумаг и пр.). Так же предполагается, что предприятие будет сбывать свою продукцию в розницу и оптом, самостоятельно, без посредников (грубо говоря, будет иметь собственные магазины). И самостоятельно осуществлять доставку сырья и продукции.
1. Какой паттерн проектирования лучше всего будет использовать для симуляции (я полагаю, что возможно, абстрактная фабрика будет уместна)?
2. Какие внешние модули лучше применить, чтобы не "изобретать велосипед"(на ум приходит только simpy) ?
3. Как лучше организовать работу с данными? Достаточно ли будет просто использовать CSV файлы, или лучше прикрутить базы данных?
4. Стоит ли прибегать к многопоточности?
Roman Kitaev, должен предупредить всех, кто пользуется паттерном птицефабрика: даже у свежих реализаций запах и шум довольно "яркие", а со временем этим запахом может пропитаться весь код.
Парень, ты в кучу смешал предметную область, конкретные реализации мелких деталей и инфраструктурный уровень. Это значит, что программировать подобное тебе рано.
Тебе нужно: изучить программирование на адекватном уровне с упором в ООП (чтобы не городить дичь типа «абстрактных фабрик»), изучить любой подходящий для ООП язык (Python, Java, Kotlin, C#), прочитать и понять дядю Эванса с его DDD, дядю Боба и Макконнелла. Параллельно изучить доступную на рынке инфраструктуру - базы данных, оркестрации и т.п. А уж потом проектировать садись.
Параллельно изучению обязательно практиковаться. Вот у тебя есть проект. Но его придётся переписать раза три, прежде чем он станет хорошим.
Есть системы типа SAP, кстати не самая сложная. Куча логики, куча легаси, куча всего.
Вот это я называю дотошностью.
А у вас просто курсовой проект.
Используйте БД, используйте многозадачность. Все это поможет