Migrando de uma estrutura PHP para outra

10

Estou trabalhando com uma empresa da web que está chegando a um ponto em que provavelmente precisará repensar o produto como um V2 - devido a superação de alguns de seus fundamentos e princípios do V1 que foram incorporados a praticamente tudo, desde o modelo de dados até o interfaces de usuário. Por várias razões, essa evolução pode envolver uma migração do CakePHP (com o qual a V1 foi criada) para o Symfony ou Zend.

Gostaria de pedir algumas opiniões experientes sobre como as pessoas podem ter gerenciado uma transição como essa para um site que possui tráfego significativo e gera receita. Não quero abrir uma discussão sobre os prós e contras de diferentes estruturas PHP ou por que essa migração pode ser necessária. Em vez disso, eu ficaria muito interessado em saber se existem algumas alternativas práticas para construir um V2 do zero ao lado do V1 por alguns meses - e travar um tempo precioso de codificação durante esse período intenso. Um exemplo dessa alternativa pode ser a migração de um aplicativo em partes por um longo período de tempo.

Ficaria grato por qualquer opinião de pessoas que possam ter gerenciado ou envolvido em tais transições.

Desde já, obrigado.

Tom
fonte

Respostas:

2

Se esse é um aplicativo comercial que é da empresa da sua empresa, é melhor você ficar sem uma estrutura de terceiros completamente. Então, quando chegar a hora da v3, você não enfrentará esse mesmo problema novamente. E você nunca estará em uma situação em que precisará ajustar seu código em resposta a atualizações na estrutura. As estruturas são ótimas para colocar as coisas em funcionamento rapidamente, mas se isso é algo a) essencial para seus negócios eb) mantido a longo prazo, o valor da estrutura diminui.

GrandmasterB
fonte
11
Obrigado - Perspectiva útil, embora as estruturas facilitem a vida em relação a tantas coisas que é difícil aceitar a ideia de não usá-las. Eles também podem ser personalizados e nem sempre precisam ser atualizados, a menos que haja uma necessidade real de fazê-lo (por exemplo, vulnerabilidades de segurança, falta de suporte para o X, etc). Aceitar esta resposta, pois trata-se realmente de uma "solução", em vez de tentar explicar por que a alteração da estrutura pode ser necessária.
Tom
11
Esta resposta não é uma solução.
James
6

Aprenda o novo framework muito bem primeiro e verifique se ele atenderá às suas necessidades e se você realmente entenderá os paradigmas do novo framework. Você terá que jogar muito código, e tudo bem. O importante é que você esteja usando a nova estrutura da maneira como ela deveria ser usada, aproveitando ao máximo suas características e não sendo vinculado a formas de pensar a partir da sua estrutura antiga. Não tente usar o Zend "à maneira do CakePHP" *

Por exemplo, quando mudei para o uso do framework MVC de outros não-MVC, eu realmente não entendi como os modelos, visualizações e controladores deveriam funcionar, e escrevi um código terrível, porque não entendia o novo maneira de fazer as coisas. É melhor você seguir uma estrutura antiga inferior do que ter um aplicativo mal escrito em uma estrutura melhor.

* Eu também não estou familiarizado, então não sei como eles são semelhantes / comparáveis.

GSto
fonte
+1 paraDon't try to use Zend "the CakePHP way
Tim Post
você sabe que quando as pessoas dizem '+1', geralmente dão o +1 votando a resposta;)
GSto
Desculpe, soluço na internet. :) TCP sobre o pombo-correio aqui.
Tim Post
Obrigado pela resposta útil. Eu me envolvi com o Zend e com o CakePHP e, embora eu concorde com o seu comentário, por princípio não posso "aceitá-lo" quando não é uma experiência prática falando.
Tom
5

A primeira coisa a considerar é que reescrever um produto do zero é algo que você nunca deve fazer . Isso é particularmente verdade quando a versão atual já está lhe dando dinheiro. Basicamente, você passará 6 meses apenas para voltar para onde estava há 6 meses. Só que agora você tem mais bugs (ou pelo menos bugs diferentes ), reintroduziu bugs que já haviam sido corrigidos no código antigo, e você está seis meses atrás de onde poderia estar, se estivesse adicionando recursos à antiga base de código.

CakePHP, Zend e Symphony são basicamente os mesmos (ou seja, todos eles são estruturas no estilo MVC sobre PHP), então não tenho certeza de que vantagem você teria de mudar de um para o outro. Certamente existem diferenças no conjunto de recursos, mas será que valem a pena se atrasar o tempo todo? Pela quantidade de tempo que você gastaria reescrevendo do zero no Zend ou qualquer outra coisa, você poderia gastar a mesma quantidade de tempo adicionando os recursos necessários ao Cake?

Na minha opinião, seria melhor refatorar lentamente o código existente ao longo do tempo, em vez de começar completamente do zero com uma nova estrutura.

Claro, essa é só minha opinião. Eu sei que é tentador descartar códigos existentes (feios e antigos) e começar do zero, mas para produtos estabelecidos que já estão funcionando, geralmente há pouco a ganhar e muito a perder.

Dean Harding
fonte
Exatamente o que eu estava pensando. Não adianta reescrever aqui, porque não parece haver um caso forte de que seja uma decisão econômica.
EricBoersma