Proceduralismo e MVC

January 28th, 2008 § 0 comments

Continuando minhas reflexões sobre novas possibilidades em paradigmas de desenvolvimento Web, eu comecei a pensar um pouco mais sobre a questão de fragmentação conceitual e como isso é possivelmente o maior problema com os frameworks atuais.

Fragmentação conceitual, no sentido que eu estou usando aqui, é a tentativa de quebrar um determinado domínio de problema em trechos de código gerenciáveis ao invés de tentar tratar o problema com um todo e resolvê-lo em termos do processo que o mesmo representa.

Isso me levou a pensar que a maioria dos frameworks atuais, ao tentar resolver essa questão, adota um faceta mais procedural. Isso pode ser visto até mesmo na organização das URLs que a aplicação expõe. Geralmente são direcionadas a um determinado objeto dentro do programa, a um método específico e dentro de certos parâmetros fixos. Raramente é feita uma tentativa de coordenar o estado entre múltiplas requisições e múltiplos objetos. O resultado final é que a aplicação é uma coleção de métodos fragmentados–daí o conceito–que não tem muita relação entre si além de pertenceram a um escopo comum.

Pensar nesse aspecto deixou claro para mim o que eu considero o maior problema com as implementações REST atuais: elas não são realmente orientadas a recursos como entidades completas que obedecem a um determinado protocolo de acesso e modificação. Antes, a maioria delas é usada como forma de mapear transições independentes entre diferentes estados de uma aplicação (ou um domínio de problema) sob uma capa de recursos. Mesmo frameworks que não usam REST acabam sofrendo de um problema similar.

Um dos motivos pelos quais eu gosto tanto de Seaside vem da sua heresia em dizer que REST é algo fundamentado em uma visão arcaica da Web que não tem muito a ver com as possibilidades atuais. Seaside, ao deixar REST de lado, adota a visão processual de uma aplicação–em contrapartida à visão procedural. A aplicação é vista com um todo, tendo estados específicos que são manipulados através de representações igualmente específicas. Isso não quer dizer que Seaside esteja absolutamente correto no que faz. É uma evolução, mas não o estado final.

A ressurgência de MVC nos frameworks atuais talvez tenha a maior parcela de culpa nesse fechamento. O surgimento de controllers em aplicações Web como um endpoint REST talvez não seja a melhor alternativa. Da mesma forma, limitar modelos como recursos é algo tão fundamentalmente incorreto que eu fico imaginando de onde teria vindo essa interpretação incorreta do que é MVC e REST–e simultaneamente.

Para finalizar, eu devo repetir que o que estou postando aqui são considerações sobre o meu próprio trabalho e sobre o que está norteando meu pensamento nesse momento. Eu posso–e devo–estar errado em muitas considerações e gostaria do feedback de leitores interessados nos mesmos assuntos.

Leave a Reply

Your email address will not be published. Required fields are marked *

What's this?

You are currently reading Proceduralismo e MVC at Superfície Reflexiva.

meta