Acorda pra Web!

Tecnologia que vai mudar nossas vidas, depois do café.

Meu framework não será MVC

Não totalmente, não esse falso MVC por aí. Em todos os frameworks pra web há um engano conceitual profundo: O View é o HTML.

Por definição, View é a parte da apresentação da aplicação, é a renderização para o usuário do Model. Trocando em miúdos, é aquela coisa que mostramos pro usuário.

Há 10 anos atrás, talvez colocar o HTML como View talvez fosse a melhor saída, mas hoje o HTML é definido como uma camada de informação, não de apresentação.  O HTML tem conteúdo, tem significado, é semântico.

Pensando por esse lado, o HTML está mais próximo do Model do que do View. Um site estático cheio de páginas HTML e um arquivo CSS pra todas também é um framework MVC, o Model é o HTML, o View é o CSS e o Controller é o sistema de arquivos do servidor.

Pode parecer extremamente sujo misturar bancos de dados com HTML, mas não é disso que estamos falando. É possível manter o HTML separado do banco de dados, como uma camada intermediária entre o Model e o View. É um pre-view post-model. Como se não bastasse, o HTML também é Controller, com formulários e links.

Ainda não descobri como resolver o problema do HTML, não posso simplesmente jogar a resposta do banco de dados na página e usar CSS nela. A solução ideal seria usar XSLT como camada intermediária entre o banco de dados e o HTML, mas ele é complicado demais para tornar o framework um facilitador. Imagino que no final, o HTML ficará como uma camada de Model-template.

4 Respostas para “Meu framework não será MVC”

  1. VitorGGA diz:

    Kra, q pizeru
    hhuuuhhu, você colocou o HTML em tanto lugar ai que no final das contas ainda não sakei nada huhuuhhu
    “Model é o HTML, o View é o CSS e o Controller é o sistema de arquivos do servidor”
    O problema disso é que o CSS não é tão personalizável assim (não para mim mero mortal).
    Você falou umas mil vezes em Model em HTML, sendo assim, o View, não sendo o CSS, seria o que?

  2. JulioGreff diz:

    O CSS é view, apresentação, embora discorde da sua visão do HTML no model. Talvez como um intermediário, mas não como model. Não sou muito entendido nesses bichos aí, mas creio que o HTML esteja mais perto do view do que do model…

  3. Diogo diz:

    Ainda posso comentar aqui?

    Uma ideia para o openIdeo,o HTML fica em view(mais do que em model), mas pertence a um pacote view-model da seguinte forma, como um MVC dentro do view:

    View
    - model (html)
    - view (parser+css)

    O parser “puxa” o html e usa o css.

    Lembrando que o view é TODA a camada de apresentação, O css ser o view implicaria em o css acessar o model para formar a interface. A quebra de padrão se da pq o model, html, chamaria o view, css, isso vai contra o padrão MVC.

    O que o usuario acessa é o HTML, por isso tem de ser view.

  4. DGmike diz:

    Ainda estou na dúvida, esse papo é muito cabeça. Mas, já ouviu falar em bbcode?
    substituir *texto* por [ strong ]texto[/strong]
    Ou outras marcações do genero como:

    # item
    # item

    por

    [li]item[/li]
    [li]item[/li]

    e assim por diante… Você pode usar algo como

    ==sessao==

    ==subsessao==

    ==subsubsessao==

    ==fimsubsessao==

    ==sessao==

    para iniciar um div que você quer que seja usado como div e com fechamento automático (ou não) assim você tem o texto como simples texto. O interessante é que você teria apenas texto.
    Outra sugestão seria você definir, como disse meu amigo Diogo mais acima de colocar o css embutido. O parser se encarregaria de colocá-lo no head do HTML.

Deixar um Comentário

XHTML: Você pode usar essas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>