Mais conceito e menos drag-and-drop

Baum, galera?

Estava na hora de eu fazer mais um destes postzinhos simpáticos…O assunto da vez é: PODD – Programação Orientada a Drag-and-Drop.

Tal “metodologia” consiste basicamente em montar uma tela arrastando de uma paleta de componentes uma série de controles, como botões,  textboxes, dropdowns, grids e tantos outros até mais avançados. Com poucas linhas de código (ou simplesmente sem NENHUMA) é possível fazer um CRUD rapidamente e sua tela ainda possui busca, ordenação das colunas do grid e paginação.

Qual o problema nisso, vocês podem estar perguntando, uma vez que ganhamos velocidade no desenvolvimento?

Desenvolvedor ou “arrastador de controles”?

Então, qual o problema para você como um desenvolvedor de software?

O problema é que tal prática pode se tornar um vício e todo vício é prejudicial. Tá legal, você conhece um velhinho de 90 anos que bebe e fuma e tá inteirão, mas toda regra tem exceções! 🙂

Quais são as sequelas? Um programador que não sabe programar! Um programador que, quando precisar meter a mão na massa (ou melhor, no código) vai ficar perdido, vai sofrer! Um programador que não separa as responsabilidades do seu software, que não conhece nada de OO!

A PODD “evoluiu” para a Web, com o lançamento – falando de .NET – do ASP.NET WebForms há quase 1 década. E aí, passamos a ver desenvolvedores “web” que não trabalhavam com HTML!

Sei que muitas vezes a “arrastação” descontrolada também é motivada – ou exigida – pela empresa na qual você trabalha, que cobra a utilização de componentes de UI próprios (medo!) ou de terceiros (como os da Telerik ou da DevExpress) e pressiona para entregar “software” em prazos absurdos, porque, afinal, é “só arrastar tudo pra tela que está pronto”!

Mas você, como um desenvolvedor PROFISSIONAL, não deve se acomodar na PODD. Se você trabalha com desenvolvimento Web, não tenha medo de Javacript, CSS e HTML. Não se limite ao modo “design”. Vá pro código!

Sua empresa não te dá esse espaço? Desculpa esfarrapada. Quem tem que cuidar da sua carreira é VOCÊ! Estude em casa, mostre outros caminhos para sua empresa (ou troque de empresa).

Você quer ser um desenvolvedor de software ou um arrastador de controles? Você decide!

Smart UI

Bacana, você quer ser um desenvolvedor profissional mas ainda não entende qual o mal em se fazer uma aplicação de “forma rápida”, com wizards e tudo mais?

Bem, a PODD leva ao padrão – ou melhor, anti-padrão – chamado de Smart UI. Nele só existe UI e banco de dados. As regras de negócio da aplicação ficam esparramadas pela interface ou no banco de dados, em stored procedures, functions e triggers. Muitas vezes a mesma regra em mais de um lugar (DUPLICAÇÃO DE CÓDIGO!!!!).

Como isso pode ser bom?

Há aqueles que dão alguns argumentos favoráveis. O principal deles: a velocidade já citada anteriormente. Eu “retruco”: no começo pode ser lindo, mas com o passar dos anos, vai virar um caos.

Daí, podem querer argumentar de novo: “ah mas nós sabemos que esta aplicação é pequena e não vai mudar”. E aí, eu lhes pergunto: que aplicação não muda?? E que aplicação é pequena? Já ouvimos essas coisas inúmeras vezes e nunca é assim…

Conclusão

Cuidado com a PODD! Não vicie em arrastar controles. Entenda o que acontece no seu código. Se trabalha com Web, não fuja de HTML/Javascript/CSS. Estude princípios de orientação a objetos e separação em camadas para começar.

Não seja um mero “arrastador de controles”!

Até a próxima!

obs. 1: caso alguém esteja se questionando, PODD não é uma sigla “oficial” ok? Inventei enquanto escrevia este artigo.
obs. 2: este post segue a linha do Vamos acordar? e do Fazer software não é fácil nem “rapidinho” que postei há alguns meses.

Anúncios

3 comentários em “Mais conceito e menos drag-and-drop

  1. Esse é um assunto que gera um pouco de discussão, todavia, para mim isso é o que diferencia “um desenvolvedor” e “o desenvolvedor”.

    Muito bom Robson, parabéns.

  2. Conhecer e saber escrever código é de suma importância, mais deixar de usar suítes como DevExpress, Essencial Objects, etc … é reescrever a roda, além de não entregar softwares com interface e recursos exigidos atualmente.

    1. Olá, alguém!
      Concordo: reinventar a roda é PÉSSIMO.

      Agora, quanto ao uso desses componentes (de UI), deve-se usar o BOM SENSO.

      Alguns pontos a ponderar:
      – Se o motivo para usá-los é exclusivamente “deixar mais bonitinho” você pode ter o mesmo resultado utilizando HTML+CSS+Javascript, em uma app web.
      – Qual a performance? Muitos deles, em uma app web forms, geram um viewstate enorme, deixando páginas com mais de 1MB! Já vi app construida inteiramente com esses componentes que, na prática, ficou muito ruim de usar pela lentidão.
      – Tudo na base do drag-n-drop? O objetivo é simplesmente fazer mais rápido? Que “lixo” você está gerando por baixo? Dá pra manter isso (chamamos de Smart-UI: regras de apresentação, negócio e acesso a dados todos misturados no mesmo lugar)? É uma app “descartável”, tipo um hotsite que ficará alguns meses no ar? Ou algo mais complexo e que se espera que tenha um tempo de vida maior?

      Essas são só algumas considerações. Resumindo: BOM SENSO para avaliar custo X benefício.

      []s

Participe! Vamos trocar uma ideia sobre desenvolvimento de software!

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s