As ferramentas de designer degradam a experiência de programação? [fechadas]

10

Ultimamente, estive pesquisando, especificamente algumas das ferramentas de MS disponíveis, e noto um grande foco nas ferramentas e assistentes de designer. Não apenas para o desenvolvimento da interface do usuário, mas para tudo.

  • O Entity Framework possui o modelador
  • O RIA Services possui os assistentes DomainService
  • O fluxo de trabalho tem todo o designer de fluxo de trabalho ... (eu não sei, realmente não o usei)

Tem mais, mas acho que você entendeu. Existem muitas ferramentas de designer. Usando algumas delas, acho que:

Eles complicam assuntos além dos casos de uso prescritos

(ou seja, todos os vídeos de demonstração técnica)

Estive avaliando algumas dessas tecnologias recentemente e, tentando trabalhar com elas, acabo tendo que dissecar exatamente o que os designers, modeladores e assistentes estão fazendo por mim ... caso contrário, estou perdido quando realmente preciso tentar fazer isso. algo com o que foi criado.

Isso acaba sendo um caso em que eu tenho que lutar com a ferramenta, ou lutar com sua saída o suficiente para que eu possa ter feito tudo sozinho sem ela - e tivesse uma compreensão muito mais forte do que está acontecendo. Acho isso particularmente irritante com o designer do silverlight e o assistente de serviço de domínio de serviços RIA.

Eu me pergunto: "Qual é a utilidade dessa ferramenta se eu precisar descobrir seu funcionamento interno ou reescrever metade de sua saída para usá-la?"

Eles não são tão rápidos

O ponto de venda dessas ferramentas é aumentar a produtividade e esse ponto pode mudar ao longo do tempo usando a ferramenta, e não se aplica necessariamente aos designers de interface do usuário (embora, em alguns casos, ainda exista -> eu estou olhando para você, designer de silverlight) . Acho que posso hackear algum código muito mais rapidamente do que arrastar e soltar, redimensionar, mover, o que quer que seja em um designer.

A interface do usuário atrapalha o modelo

Talvez seja apenas eu, mas quando estou usando qualquer coisa que lembra uma ferramenta de design UML, acabo gastando mais tempo organizando tudo para que minhas linhas não se cruzem e para que eu possa ver tudo na tela do que modelar o que eu uso. Estou tentando alcançar.

Eles não são divertidos

Metade da razão pela qual eu código para viver é que eu gosto. Clicar em caixas de seleção e selecionar caixas de combinação e consertar tudo o que sai não é divertido.

Eu não pareço estar sozinho

A comunidade parece não querer essas ferramentas também. O melhor exemplo em que posso pensar no momento é o Entity Framework Code-First.

Então eu pergunto:

  1. As ferramentas de designer realmente melhoram a produtividade?
  2. Eles são divertidos?
  3. A 'comunidade' está realmente pedindo mais ferramentas de designer ou os fornecedores estão pensando que somos?
Steven Evers
fonte

Respostas:

7

Meu palpite é que boas ferramentas de design melhoram a produtividade e não deixam de ser "divertidas". No entanto, é apenas um palpite, porque ainda tenho que encontrar uma boa ferramenta de design.

Eu pessoalmente não pedi ferramentas de design.

dietbuddha
fonte
2
+1 Eu definitivamente gosto de "ainda encontrar uma boa ferramenta de design". embora eu possa ter acrescentado "melhor que a substância cinzenta entre meus olhos".
Ken Henderson
2
Os assistentes +1 são úteis apenas desde que o que você esteja fazendo se ajuste ao modelo que eles incorporam. Como geralmente sou pago para fazer coisas estranhas, elas geralmente atrapalham. A única ferramenta de design como essa que eu realmente gostei foi (prepare-se para um choque com este não-fã da Microsoft) o banco de dados gráfico e o gerador de consultas no MS Access. Funcionou bem porque os bancos de dados relacionais e o SQL são conceitualmente bastante simples e bem definidos, de modo que a ferramenta de design pode lidar com quase qualquer coisa que você queira fazer.
Bob Murphy
Tudo o que você constrói para ajudá-lo com uma tarefa é uma "boa ferramenta de design". Isso inclui seu editor, compilador, depurador, bibliotecas pessoais, etc. O problema com a maioria dos "payware" é que ele precisa ser geral o suficiente para todos, portanto, geralmente não se encaixa bem no problema. E eles nunca se preocupam em fazê-lo jogar bem! Siga a filosofia do Unix, por favor. Não quero fazer parte do kit de ferramentas para jardins murados do MS.
Spencer Rathbun
4
  1. Eu acho que provavelmente depende. Se você é um desenvolvedor inexperiente, o uso das ferramentas de design provavelmente é mais produtivo do que digitar. Estou bastante certo de que fui mais produtivo nos meus primeiros dias de VB6 usando o designer do que o teria feito manualmente. A outra coisa a considerar é como a tecnologia (pelo menos como o IDE a apresenta) se presta à edição manual. VB6 e .NET WinForms certamente não (ou melhor, você provavelmente não deseja editar manualmente o arquivo de código "gerado" (ou parte de). Com o WPF e o ASP.NET, acho que um desenvolvedor bastante inexperiente começará com o designer, mas rapidamente forme a edição direta do XAML / ASP. Depois que você souber o que está fazendo, certamente será mais rápido editar a marcação diretamente.Lembrando da EF v1.0,

  2. Depende se a marcação é divertida de se trabalhar. WPF e ASP (.NET) podem ser divertidos. VB6 / WinForms - não deseja editar as seções de código geradas mais do que o necessário.

  3. Eu não acho que a comunidade explique explicitamente. Embora, ao aprender algo novo, o designer possa facilitar a absorção de partes do aprendizado.

Ken Henderson
fonte
2

como sempre, depende

Quando eu investiguei usando serviços da Web, o Java tinha um tutorial de 50 páginas e o .NET tinha um assistente. Adivinha qual deles se acostumou?

Steven A. Lowe
fonte
1

O mesmo aqui, nenhuma ferramenta de design.

Projecto o ERD do banco de dados no papel e escrevo um implementador que emita as instruções "criar tabela", para que eu possa limpar e reconstruir à vontade. Também ajuda no controle de versão do banco de dados.

Acho que o papel 11x17 (A3) pode ser um ótimo local para projetar sistemas muito compelex. Consiga uma boa borracha e lápis (eu prefiro Staedtler ).

Christopher Mahan
fonte
1

Do ponto de vista do fornecedor, todas essas ferramentas sofisticadas de designer parecem servir a um objetivo semelhante ao desconto / licenças gratuitas para estudantes. A idéia é permitir que você crie algo com o mínimo de esforço e custo. Uma vez investido, eles apostam que você aprenderá a expandir suas habilidades com as ferramentas deles, em vez de aprender com as de outras pessoas.

Isso não quer dizer que as ferramentas não tenham usos produtivos legítimos. Ele deve ser valioso para examinar o código gerado e aprender com ele. Infelizmente, como Ken Henderson observou, o código geralmente é ilegível e não é algo que você deseja usar como modelo para trabalhos futuros. Lembro-me de várias seções em Programação de serviços WCF , nas quais o autor explica como escrever código manualmente ou gerá-lo pelo Visual Studio. Inevitavelmente, a opção gerada requer uma seção de acompanhamento para remoção de código estranho.

ajk
fonte
0

As ferramentas de designer realmente melhoram a produtividade?

Eles podem, desde que o seu projeto seja simples e não muito complexo para eles. Minha experiência você bate na parede assim que tenta implementar / resolver um problema do mundo real.

Eles são divertidos?

WF (Workflow) e WPF eram divertidos, mas também matadores quando o VS 2008 travava a cada 30 minutos.

A 'comunidade' está realmente pedindo mais ferramentas de designer ou os fornecedores estão pensando que somos?

Ultimamente, muitas das ferramentas lançadas pela MS parecem ser tentativas desesperadas de manter os desenvolvedores. A batalha agora está acontecendo no mercado de smartphones. Quem vencerá os desenvolvedores, MS, Google ou Apple?

Amir Rezaei
fonte
0

Sempre foi assim, mesmo no dia em que costumávamos distinguir entre desenvolvedores que sabiam apenas clicar nos assistentes e desenvolvedores que sabiam qual código os assistentes geravam e podiam modificá-lo para os casos extremos.

O fato de você ter ainda mais ferramentas, assistentes e designers fazendo coisas escondidas para impedir que você se corte nas pontas afiadas é um benefício para os desenvolvedores que não querem saber ou não têm a amplitude de experiência ou habilidade para entender o código gerado. Eu imagino que exista um ponto ideal entre o que você deseja que o computador faça e o que você precisa fazer como alternativa, pois as linguagens de programação são inteiramente baseadas em arrastar e soltar blocos em um formulário. (Eu costumava trabalhar em um ambiente específico de domínio, não gostaria de usá-lo!)

gbjbaanb
fonte