Всем привет) Есть вопрос к более опытным товарищам. Есть допустим класс модели ContractForm, для отправки данных через api на другой сервер. То есть на другом проекте есть таблица contract, я из своего приложения должен собрать массивы данных (контрактов) и отправить их туда курлом.
На своем проекте создаю схожу сущность, ContractForm extends Model implements FormInterface. Тут указываю набор свойств, такой же как у модели на другом сервере и рулсы аналогичные тем, чтобы все было без ошибок. Теперь мне надо от сущности существующей на моем сервере Strategy перейти к сущности Contract. То есть у меня есть набор стратегий, в которых есть свойства использующиеся в контрактах, например win_coef, bet_amount, win_amount и так далее и мне нужно на основе этих стратегий создавать кучу контрактов и используя заданные свойства вычислять другие еще свойства, например expense_amount = bet_amount.
У меня есть несколько мыслей
1 Использовать ContractHelper для генерации контрактов на основе стратегий. Реализуем метод preparedContractsFromStrategies($strategies), передавать туда стратегии, перебирать их циклом, и на основе каждой создавать ContractForm (сетить нужные свойства), а потом вызывать метод calculateContract, чтобы на основе установленных свойств произвести расчеты контракта. Сохранять полученные контракты в коллекцию и возвращать.
2. Все это реализовать в рамках модели ContractForm. Но как в рамках этой модели все красиво реализовать?
Что лучше?
Пару вопросов об архитектуре (хелперы)
- Sereja3578
- Сообщения: 204
- Зарегистрирован: 2016.09.21, 11:15
- Контактная информация:
Re: Пару вопросов об архитектуре (хелперы)
то, с какой ноги ты встаешь утром, это не архитектура. способ прибивать к стенке полку - не архитектура. любить сладкий чай - не архитектура.
Re: Пару вопросов об архитектуре (хелперы)
1. Сделай любым удобным способом. Добейся, чтобы работало.
2. Посмотри критически, выяви слабые места.
3. Сделай рефакторинг слабых мест.
4. Повторяй 2 и 3, пока не будешь удовлетворён качеством.
Только ты сам сможешь увидеть, какие решение наиболее годятся в твоей ситуации. Поэтому, следуй этой простой инструкции и всё будет хорошо.
Слишком много размышлять над архитектурой бывает вредно. Бывает так, что проблема никак не осмысливается. Тогда лучше всего, сразу сделать, как получается. В 8 случаях из 10 тут же становится ясно, как это переписать.
2. Посмотри критически, выяви слабые места.
3. Сделай рефакторинг слабых мест.
4. Повторяй 2 и 3, пока не будешь удовлетворён качеством.
Только ты сам сможешь увидеть, какие решение наиболее годятся в твоей ситуации. Поэтому, следуй этой простой инструкции и всё будет хорошо.
Слишком много размышлять над архитектурой бывает вредно. Бывает так, что проблема никак не осмысливается. Тогда лучше всего, сразу сделать, как получается. В 8 случаях из 10 тут же становится ясно, как это переписать.