Применение порождающих паттернов, решение задач, связанных с созданием сущностей или групп похожих сущностей.
- Реализовать объектную модель “конфигуратора” персонального компьютера и существующих вариантов комплектующих.
- Реализовать механизмы
- валидации готовой сборки
- формирования заказа для отдела продаж
- оповещений о проблемах несовместимости, отказа от гарантийных обязательств, замечаний/комментариев.
- Покрыть полученное решение модульными тестами
Интернет магазину по продаже компьютерных комплектующих понадобился инструмент для подбора и создания готового системного блока. Необходимо реализовать «Конфигуратор», для того чтобы собрать из имеющегося набора деталей компьютеры для дальнейшей передачи заказов в отдел продаж. Основным требованием заказчика является возможность подбора совместимых комплектующих для осуществления продаж покупателям.
Сборка компьютера является сложным и чётко организованным процессом, состоящим из нескольких этапов, таких как подбор оборудования и проверка совместимости. Рядовой покупатель может не обладать знаниями о всех тонкостях процесса сборки ПК, поэтому необходимо удостоверится в том что комплектующие имеют физическую совместимость, всем компонентам достаточно энергопотребления и доступные шины/слоты удовлетворяют требованиям различных компонентов перед тем отправить такую сборку в отдел продаж для дальнейшей реализации.
Так же, существуют случаи когда покупатель просто хочет подобрать готовую систему и заменить лишь пару компонентов (например более мощную видеокарту), поэтому необходимо предусмотреть возможность запуска “конфигуратора” на базе какой-либо платформы (к примеру Amd Ryzen последнего поколения или Intel i7 на базе чипсета X99 и т.п.).
Обязательные комплектующие отмечены звездочкой*
Это главная плата компьютера, соединяющая все компоненты системного блока в одно логическое целое. Её открытая архитектура позволяет собрать систему самому. Любой модуль, будь то процессор, оперативная память или видеокарта, имеет соответствующий только ему разъём, куда подаётся необходимое электропитание.
В зависимости от используемой платы и её чипсета вводятся ограничения на совместимость с другими частями, такими как процессор (в виду различий по сокету) и оперативная память (слоты под разные версии шины имеют различное количество контактов на печатной плате).
Атрибуты:
-
Сокет процессора
-
Кол-во распаянных на плате PCI-E линий
-
Кол-во распаянных на плате SATA портов
-
Чипсет (доступные частоты памяти, поддержка XMP)
-
Поддерживаемый стандарт DDR
-
Кол-во столов под ОЗУ
-
Форм-фактор
-
BIOS (Тип, Версия)
CPU – это «мозг» компьютера. Он состоит из нескольких миллионов транзисторов, сгруппированных в ядра. Каждое ядро ЦП способно обрабатывать отдельную задачу, поэтому их количество и тактовая частота непосредственно влияют на общую производительность. Важно понимать, что не каждый процессор, можно установить в конкретную материнскую плату, даже если сокет совпадает и есть физическая возможность разместить процессор на материнской плате, производитель/вендор может не поддерживать более новые версии вышедшие для конкретной платформы (см. таблицу совместимости в качестве примера). Данная проверка реализуется внутри встроенного компонента называемым BIOS. Это набор микропрограмм, реализующих низкоуровневые API для работы с аппаратным обеспечением компьютера, если процессор не поддерживает тот API который использует BIOS на материнской плате, то такой вариант сборки ПК не запустится.
Атрибуты:
-
Частота ядер
-
Кол-во ядер
-
Сокет
-
Наличие встроенного видеоядра
-
Поддерживаемые частоты памяти
-
Тепловыделение (TDP)
-
Потребляемая мощность (в ватт)
BIOS - Basic Input/Output System.
Именно этот компонент занимается тем что применяет настройки и согласует частоты на которых будут работать все компоненты компьютера.
Известно, что не каждый процессор запустится на материнской плате, даже при условии совместимости сокета. Покупая процессор и материнскую плату новички, смотрят на поддержку чипсета и совместимость сокета, это правильно, но не гарантирует, что такая "связка" запустится. Это потому, что, выпуская материнскую плату, например, в 2022 году производитель не знает о процессоре, выпущенном в 2023 году. Конечно это устраняется путем корректирования БИОС, но тут важно учесть, что для обновления BIOS компьютер должен работать, а потому важно еще на этапе покупки процессора быть уверенным, что БИОС поддерживает выбранную модель процессора. Набор микропрограмм материнских плат отличаются по "прошивке". Поэтому еще на этапе сборки важно знать с какими процессорами совместима купленная материнская плата.
Атрибуты:
-
Тип
-
Версия
-
Список поддерживаемых процессоров
Система охлаждения компьютера — набор средств для отвода тепла от нагревающихся в процессе работы компьютерных компонентов. Данные системы обладают конкретными пиковыми величинами максимально возможной рассеиваемой массе тепла. В случаях, когда на достаточно производительный процессор устанавливается слабая система охлаждения могут происходить сбои в работе, но при этом, такой вариант сборки необходимо разрешить к продаже, добавив соответствующий комментарий об отказе ответственности от гарантийных обязательств, т.к. покупатель может эксплуатировать данную систему (не смотря на нарушения рекомендаций об эксплуатации).
Атрибуты:
-
Габариты
-
Поддерживаемые сокеты
-
Максимально рассеиваемая масса тепла (TDP)
ОЗУ выполняет функцию временного хранителя данных, которые нужны для работы процессора в конкретный момент времени. Ключевые показатели «оперативки» выражаются скоростью приёма/передачи информации и объёмом хранимых данных. Чем они выше тем эффективнее работа CPU. При этом, нужно понимать, что “быстрая” память может работать в не до конца совместимых с ней материнских платах, на более медленных частотах, но не наоборот. Если есть проблемы с совместимостью материнская плата самостоятельно подберет из списка доступных ближайшую рабочую частоту. Так работает DRAM по стандартам JEDEC. Также на планках памяти устанавливается микросхема с прошивкой. Производитель вписывает в нее несколько профилей в виде «частота/тайминги», из которых компьютер выбирает подходящий режим для стабильной работы системы. Но от базовых стандартов его отличают максимальные рабочие настройки. Если JEDEC ограничивает характеристики микросхем на уровне технологии DDR, то XMP — это частный случай для каждой модели, за который отвечает только производитель этого комплекта.
Атрибуты:
-
Количество доступного размера памяти
-
Поддерживаемые пары частот JEDEC и вольтажа
-
Доступные XMP/DOСP(A-XMP) профили
-
Форм-фактор
-
Версия стандарта DDR
-
Потребляемая мощность (в ватт)
XMP — аббревиатура от Extreme Memory Profiles. Это технология, разработанная Intel специально для быстрого разгона оперативной памяти. У AMD есть аналогичная технология — DOCP (Direct Overclock Profile)
Профиль содержит характеристики которые можно применить к конкретному модулю памяти для модификации его характеристик и блокировки непосредственно тех значений, которые заданы в профиле, не смотря на поддерживаемые пары JEDEC.
💡 При покупке памяти, совместимой с XMP, необходимы также материнская плата, совместимая с XMP, и центральный процессор, который поддерживает указанные скорости.Атрибуты:
-
Тайминги (ex. 18-18-36-54)
-
Вольтаж
-
Частота
** - Обязательный компонент при невыполнении конкретных условий.
Графический адаптер выводит изображение на монитор компьютера. Данное устройство обязательно в сборках где процессор не имеет встроенного видеоядра, т.к. без возможности вывода изображения покупатель не сможет пользоваться компьютером.
Атрибуты:
-
Высота и ширина видеокарты
-
Количество видеопамяти
-
Версия PCI-E
-
Частота чипа
-
Потребляемая мощность (в ватт)
Это твердотельное устройство хранения информации. Быстродействие у SSD-накопителя значительно выше чем у жёсткого диска, поэтому его целесообразно использовать для систем в высоком ценовом сегменте.
Атрибуты:
-
Вариант подключения (PCI-E / Sata)
-
Ёмкость в Гб
-
Максимальная скорость работы
-
Потребляемая мощность (в ватт)
HDD – это устройство хранения информация. Скорость вращения дисков «винчестера» непосредственно влияет на комфорт пользователя от работы с ОС. Низкий уровень шума, высокая отказоустойчивость и оптимальное соотношение цена/объём определили HDD как устройство для сохранения важной информации.
Атрибуты:
-
Ёмкость в Гб
-
Cкорость вращения шпинделя
-
Потребляемая мощность (в ватт)
** Сборка должна содержать как минимум один из видов накопителя, иначе покупатель не сможет установить операционную систему.
Корпус системного блока служит местом установки блока питания ПК, его рабочих модулей, материнской планы и прочих вспомогательных компонентов. Основным свойством является размеры. Необходимо проверять что выбранная покупателем материнская плата с установленным куллером помещается внутрь и боковая крышка может закрываться без соприкосновений с тепловыми трубками системы охлаждения процессора.
Атрибуты:
-
Максимальная длина и ширина видеокарты
-
Поддерживаемые форм-факторы материнских плат
-
Габариты
В некоторой степени блок питания выполняет функции стабилизации и защиты от незначительных помех питающего напряжения. Мощность, отдаваемая в нагрузку БП, зависит от мощности компьютерной системы и варьируется в пределах от 300 (офисные платформы малых форм-факторов) до пары тысяч Вт (наиболее высокопроизводительные рабочие станции, серверы или мощные игровые машины). В случаях, когда покупатель устанавливает блок с недостаточной мощностью, необходимо считать такую сборку невалидной. Также, производители комплектующих часто завышают показатели потребляемого количества мощности, поэтому при несоблюдении рекомендуемых мощностей, можно оповещать об этом покупателя и отпускать такую сборку в отдел продаж.
Атрибуты:
- Пиковая нагрузка (в ватт)
Wi-Fi адаптеры представляют собой специальные устройства, которые используются для подсоединения к беспроводной сети. Этот компонент является опциональным, но, при попытке его добавления в компьютер, материнская плата которого, уже имеет встроенный Wi-Fi модуль, необходимо считать такую сборку не валидной, в виду конфликта сетевого оборудования.
Атрибуты:
-
Версия стандарта WiFi
-
Наличие встроенного модуля Bluetooth
-
Версия PCI-e
-
Потребляемая мощность
- Реализован контракт для работы с “конструктором”
- Реализованы все бизнес правила проверяющие совместимость оборудования в процессе создания сборки
- Реализована возможность изменения компонентов ранее созданной сборки.
- Unit-тесты
- Создание новых компонентов
- с нуля (например выпуск новой видеокарты, ранее не существовавшей в природе)
- на базе уже имеющихся (например новая материнская плата с обновленным BIOS)
- Регистрация новых компонентов в репозитории существующих на рынке комплектующих
- Возможность создания сборки ПК с использованием имеющейся компонентной базы
- Формирование чек-листа для проверки совместимости комплектующих между собой поэтапно
- Поддержать установку строгого порядка установки комплектующих
- Попытка установки комплектующих до установки всех предварительных требований - исключительная ситуация.
- Запуск проверок и получение результата сборки { Успешность результата, замечания/комментарии, отказ от гарантийных обязательств }
- Формирование чек-листа для проверки совместимости комплектующих между собой поэтапно
- Возможность создания сборки ПК на базе предыдущей сборки
- Попытка сборки из точно совместимого комплектующего должна проходить без отказе от гарантийных обязательств и ошибок
- Попытка сборки из совместимого комплектующего с заявленным потреблением больше чем максимально доступное, но достаточного для запуска системы должно проходить с предупреждением.
- Попытка сборки с совместимым кулером, но с недостаточной мощностью рассеивания тепла производимого процессом должна проходить с обязательным выставлением комментария при передаче заказа в отдел продаж.
- Попытка сборки несовместимого комплектующего в различных вариациях должна заканчиваться неудачей с указанием чётких причин.
Выбор конкретных значений для различных компонентов системы (частота оперативной памяти, название вендоров оборудования, сокеты и т.д.) отдаётся на откуп студенту, главное сохранить корректность значений согласно условиям лабораторной и здравому смыслу в реальном мире.
Если очень интересно то можно почитать ещё больше технических деталей про устройство материнской платы