Завжди на вершині ієрархії класів. Фаро топ!
# Команда "Pharo Top Team" **Гасло:** Завжди на вершині ієрархії класів. Фаро топ! ## Опис завдання (Варіант № 1) Спроектуйте класи, вказані нижче. У кожному з них визначте метод виведення в потік, методи порівняння, виконання арифметичних дій. Оголошення цих класів розташуйте у окремому пакеті. Інформацію про екземпляри класів задайте в Playground, прочитайте з клавіатури або з файлу. Функціонал класів перевірте за допомогою модульних тестів. 1. **Сутність «працівник»** характеризується такими даними: прізвище, стаж, оплата за годину та мінімальна кількість годин, які він має відпрацювати за тиждень. * **Працівник-програміст** додатково пам’ятає кількість насправді відпрацьованих годин. Його зарплата зменшується на 25%, якщо відпрацьовано менше за норму. * **Працівник-керівник** працює 40 годин на тиждень, має певну кількість підлеглих, отримує 1% надбавки за кожного з них. Оголосіть класи, що моделюють описані сутності. Екземпляри цих класів вміють повідомляти прізвище, стаж, зарплату за тиждень. Порівнюють працівників за величиною заробітної плати. 2. Створіть п’ять різних працівників та занесіть їх у контейнер. Забезпечте можливість вводити в режимі діалогу інформацію про нового працівника і долучати його до колекції інших. Надрукуйте всі елементи контейнера. Знайдіть найоплачуванішого працівника. Чи це програміст? Продемонструйте використання арифметичних операторів. Створіть дві нові колекції, що містять окремо керівників, і окремо програмістів. 3. Продемонструйте зберігання створених об’єктів до файлу (до різних файлів у різних форматах), до бази даних (наявність бази можна імітувати в пам’яті) та завантаження їх з файлу, з бази. --- ## Розподіл обов'язків у команді **1.Марія Нідзельська** *Відповідає за архітектурний фундамент та налаштування.* * Створення та налаштування GitHub-репозиторію. * Створення базового пакета команди та класу `Worker`. * Реалізація базового розрахунку зарплати, геттерів/сеттерів. * Реалізація методів виведення в потік (`printOn:`), операторів порівняння (`<`, `>`, `=`) та арифметичних дій. * Написання модульних тестів для базового класу (`WorkerTest`). * Ведення документації (README, координація гілок). **2.Вікторія Огороднік* *Відповідає за класи-спадкоємці та роботу з колекціями.* * Створення класів `Programmer` та `Manager` (успадкування від `Worker`). * Реалізація специфічної логіки розрахунку зарплати (штрафи для програмістів, бонуси для менеджерів). * Написання модульних тестів `ProgrammerTest` та `ManagerTest`. * Розробка методів для пошуку найоплачуванішого працівника та створення нових відфільтрованих колекцій. **3.Роман Магдич** *Відповідає за взаємодію з користувачем та файлову систему.* * Створення класу `WorkerPlayground` для демонстрації роботи. * Реалізація інтерактивного вводу даних про нових працівників у режимі діалогу (через UI-засоби Pharo). * Реалізація збереження колекції працівників у файл (наприклад, у форматі STON) та завантаження з файлу. * Імітація роботи з базою даних у пам'яті. * Зведення всього коду разом у вигляді методів-прикладів для фінальної здачі. --- ## Журнал робочого процесу *13.10.2026 - Ініціалізація проєкту та налаштування зв'язку Pharo з GitHub через Iceberg. 13.10.2026 -Застосування стратегії гілкування: розробка архітектурного фундаменту (клас Worker, змінні, геттери/сеттери, розрахунок зарплати, метод printOn: та методи порівняння) виконувалася у спеціальній гілці feature/worker-class з подальшим створенням Pull Request для командного рев'ю.