Собственно задался вопросом по организации кода, меня интересует несколько моментов, которые я хочу уточнить на примере.
Я занимаюсь проектом в сфере сетевого маркетинга. И у меня была задача написать активацию пользователя. Есть сделать план активации, то это будет выглядеть вот так:
- меняем флаг activate в таблице users
- получаем структуру вышестоящих спонсоров пользователя
- к примеру делаем выплаты вышестоящим по линейному маркетингу
- добавляем текущего пользователя в бинарную структуру
- получаем вышестоящих пользователей по бинару и выдаем им баллы
- проверяем вышестоящих спонсоров на получение нового ранга
- и тп.
Тоесть суть а том, что активация достаточно жирная и зависит от доброй половины всех компонентов приложения.
Я читал книги по программированию, но без практики это ничего не стоит и я не совсем понял некоторые моменты. К примеру у меня есть общий класс активации:
// начинается класс с пачки неймспейсов нужных библиотек с различных модулей и компонентов
// я сделал основную функцию для акцивации
public function run($userId) {
// тут мы проверяем идентификатор пользователя, открываем транзакцию ...
// проверяем активный он или нет
// собираем его линию вышестоящих спонсоров и тп.
# теперь начинаю с этого момента у меня есть подозрения на "это работает, но это могло бы работать лучше"
// Действия, которые будут совершены с текущим пользователем
$this->processActivateUser();
// Действия, которые будут совершены с вышестоящими спонсорами
$this->processSponsors();
// Лидерский бонус
$this->processLeaderBonus();
// Действия связанные с бинарной структурой
$this->processBinary();
}
private function processActivateUser() {
}
private function processSponsors() {
}
private function processBinary() {
}
private function processLeaderBonus() {
}
Тоесть основной мой вопрос по поводу вот этой вот линейности, правильно ли это так писать код или возможно что-то где-то можно сделать лучше ? Поделитесь пожалуйста советом и объясните правильно ли использовать такой подход?