LINUX.ORG.RU

Как правильно настроить dev и production среду?

 


0

1

Есть некий проект с довольно большими двумя базами данных. Mysqldump дампит быстро но вот разворачивание довольно долгое. Да есть решения но сейчас не о них.

Нужно настроить локальную среду разработки.

1. База должна быть развернута локально? Удаленно дикие тормоза.

2. Что делать если нужно тестить на свежих данных? Копия таблиц? А связи?

3. Как сделать срез данных или засунуть фейк данные для чужих программистов? (сторонние программисты не должны получить настоящие данные в целях безопасности)

4. Как поручать программистам отдельные блоки кода (модули, классы)? Это нормальная практика?

Где почитать про наилучшие практики? Краем уха слышал про докер но мне не хочется все усложнять.

Проект использует mysql, sphinx, php7, nginx, apache, java (sockets), postfix.



Последнее исправление: hctr (всего исправлений: 1)

1. База должна быть развернута локально? Удаленно дикие тормоза.

Да.

2. Что делать если нужно тестить на свежих данных? Копия таблиц? А связи?

Репликацию/миграцию никто не отменял. См. пункт ниже.

3. Как сделать срез данных или засунуть фейк данные для чужих программистов? (сторонние программисты не должны получить настоящие данные в целях безопасности)

Пишешь тесты и наполняешь такими данными – которые нужны для _конкретного_ теста. Зачем тебе нужно _тестировать на реальных данных_? Ты понимаешь, что у серьезного prod-а их столько, что они тупо на твоих рабочих машинах могут не поместиться.

4. Как поручать программистам отдельные блоки кода (модули, классы)? Это нормальная практика?

Зачем? У тебя есть _конкретная задача_ изменить что-то в конкретном классе?

Где почитать про наилучшие практики?

Читай всякую макулатуру а-ля Microsoft Secrets и прочие success stories, если нужно накопать всяких интересных практик «эффективных менеджеров». Но рабочий процесс от первого bug-fix до первого релиза ставится на раз два. Было бы желание. Ну и соответствующий стек, обеспечивающий годную коммуникацию сотрудников (очень важно).

znenyegvkby
()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от znenyegvkby

znenyegvkby, спасибо за ответ. Тестов нет, проект большое месиво из толстых контроллеров, вызовы к базе идут с контроллера через query builders. Кода много, много дублей.

hctr
() автор топика
Ответ на: комментарий от hctr

Тестов нет

Ну покрывать тестами можно постепенно. Я не совсем понимаю какая перед вами стоит задача? Если команда не большая – раздавайте юниты и интеграционки среди программистов по типу «кто что осилит». Или пусть сами выбирают из стека задач. Думаю вам просто нужно внедрить это, и если работа над проектом интенсивная – рано или поздно покроете большую часть кода.

проект большое месиво из толстых контроллеров, вызовы к базе идут с контроллера через query builders.

Тут как и с тестами – нужно решать постепенно. Но тогда необходима либо конкретная инициатива программиста(ов), либо придется ставить это в отдельные таски. Скажем – для выполнения taskN нужно редактировать метод methodNameA. В доп. условия ставите оптимизацию метода по выбору. Ну или отдельно таски на оптимизацию ставьте, если ресурсы компании позволяют, конечно.

P.S.: здесь главное не переборщить – если в ближайшем будущем планируется «все переписать на Go», то может и заморачиваться не стоит.

znenyegvkby
()

1. База должна быть развернута локально?

Да, это ведь не проблема.

2. Что делать если нужно тестить на свежих данных?

Не нужно тестить на свежих данных. Тестите на нужных данных. Сами создали, сами протестировали. Тестирование на реальных данных - отдельный процесс, который происходит около прода.

3. Как сделать срез данных

Если вам это нужно, значит вы не понимаете сути того, что исправляете. Если понимаете, то п.2.

4. Как поручать программистам отдельные блоки кода (модули, классы)? Это нормальная практика?

Это вопрос к вашим проектировщикам, ответственным за подсистемы. Практика нормальная, но я не видел какого-то однотипного решения, сложно что-то посоветовать.

anonymous
()
Ответ на: комментарий от hctr

Типичная ситуация. Физерса вам.

Я бы начал с автоматизации разворачивания тестовой среды (возможно, тут вам и пригодится тот самый docker), покрыл бы тестами основные кейсы, а затем приступил бы к коду.

anonymous
()
Ответ на: комментарий от anonymous

Да про Докер давно уже думаю но пока сложно все сразу осилить. Нужно постепенно.

Это вопрос к вашим проектировщикам, ответственным за подсистемы.

Проектировщик сейчас я)

hctr
() автор топика

В нашей конторе девелоперская база находится на отдельном сервере, который физически в нашем же офисе. Вполне хватает. Локальную развернуть можно, но никто этого не делает.

Miguel ★★★★★
()

Удаленно дикие тормоза

Удаленно бывают разные. Если оно в локалке тормозит - значит весь проект - быдлокод

TooPar
()
Ответ на: комментарий от TooPar

Нет, это из-за отдаленности сервера.

hctr
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.