Como aumentar a produtividade em Java?

Olá pessoal venho compartilhar um assunto com vocês.Como você fazem para ser mais produtivo em Java, que ferramentas usam, frameworks, etc…
Tipo para fazer um cadastro básico demoro muito tempo, tipo construindo os JSP’s colocando mascaras, nos campos, etc…

O que vocês tem usado para aumentar a produtividade de paginas JSP e em Java em geral?

Valeu

Baseado no que vc falou eu diria que JSF com richfaces, icefaces, hibernate, jpa, ejb 3.0, spring e alguns plugins já ajudariam bastante. O problema é que muitas vezes a produtividade não está apenas ligada as ferramentas que vc utiliza; a motivação e uma boa estratégia realmente valem ouro nesta questão.

flws

Eu sou apenas do suporte na minha empresa, mas pelo que vejo
conversando com os desenvolvedores, a Equipe bem motivada
e trabalhando junto, vale muito mais do que um bom livro em cima da mesa.

A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.

[quote=Leonardo3001]A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.[/quote]

Olá concordo com algumas coisas que você disse, mas não sou tão novo assim em programação Web, o problema e que não existe uma equipe em java onde trabalho, é somente eu, então queria algumas ferramentas que o pessoal tem usado para agilizar na criação de paginas JSP, que é a parte que me deixa menos produtivo.

[quote=fantomas]Baseado no que vc falou eu diria que JSF com richfaces, icefaces, hibernate, jpa, ejb 3.0, spring e alguns plugins já ajudariam bastante. O problema é que muitas vezes a produtividade não está apenas ligada as ferramentas que vc utiliza; a motivação e uma boa estratégia realmente valem ouro nesta questão.

flws
[/quote]

Nunca mexi com JSF, mas pelo que sei e bem interessante e tem efeitos legais tbm. Vou começar a dar uma olhada nas ferramentas que disse. Obrigado!

Pensei ser um tópico da onda ‘como aumentar seu p…’

[quote=danielbussade][quote=Leonardo3001]A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.[/quote]

Olá concordo com algumas coisas que você disse, mas não sou tão novo assim em programação Web, o problema e que não existe uma equipe em java onde trabalho, é somente eu, então queria algumas ferramentas que o pessoal tem usado para agilizar na criação de paginas JSP, que é a parte que me deixa menos produtivo.

[/quote]

Cara, o que o Leonardo falou, para mim, também é a realidade.

Se você já se sente seguro com o Java e deseja focar no “background”, não precisa se preocupar com outra coisa se não o Java e Engenharia de Software. O problema de ter uma View bem feita é de um designer e não seu. Este cara, por ser especialista, tem muito mais prática na construção desta camada. E com a prática vem a produtividade.

É claro que é interessante o desenvolvedor conhecer CSS, JS, etc. Mas quem tem a obrigação de produzir um design bem feito, é o designer. Como já disse, esse é o meu ponto de vista.

Colocar alguns componentes na tela para testar as funcionalidades e as ligações entre as camadas, não deveria ser um trabalho árduo. Se ainda é, mais uma vez tenho que dar razão ao Leonardo: com a prática, a produtividade virá.

Independente dos 1543203746200000 frameworks que o Java tem, quem é produtivo ou não é você, não a linguagem ou a profissão.

Abraços.

[quote=Leonardo3001]A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.[/quote]
Já eu concordo em partes. Claro que a produtividade depende do desenvolvedor, mas não somente dele.
Pegue um desenvolvedor produtivo e ponha-o para fazer um CRUD de clientes de 3 formas diferentes:

  1. Servlets, JSP e JDBC;
  2. JSF e Hibernate;
  3. Ruby on Rails.
    Supondo que o desenvolvedor conheça bem as tecnologias envolvidas, vocês acham que a produtividade seria a mesma?

EDIT - Estou considerando apenas a situação colocada. Não estou querendo dizer que tal tecnologia é melhor ou pior em tudo.

[quote=tnaires][quote=Leonardo3001]A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.[/quote]
Já eu concordo em partes. Claro que a produtividade depende do desenvolvedor, mas não somente dele.
Pegue um desenvolvedor produtivo e ponha-o para fazer um CRUD de clientes de 3 formas diferentes:

  1. Servlets, JSP e JDBC;
  2. JSF e Hibernate;
  3. Ruby on Rails.
    Supondo que o desenvolvedor conheça bem as tecnologias envolvidas, vocês acham que a produtividade seria a mesma?

EDIT - Estou considerando apenas a situação colocada. Não estou querendo dizer que tal tecnologia é melhor ou pior em tudo.[/quote]

Eu concordo com você, por isso eu perguntei que ferramentas e tecnologias o pessoal tem usado para trtabalhar com JSP.Estou até pensando em migrar para JSF porque estou concluindo que o desenvolvimento em JSP é um pouco lento mesmo, visto que tem que fazer tudo na mão o que o JSF já te oferece pronto.
Não tem como dizer que a produtividade só depende do desenvolvedor. A ferramenta ou tecnologia usada aumenta a produtividade e muito, bem essa é a minha opinião.

Do pessoa que desenvolve em JSP, o que vocês usam? Eu particularmente uso Eclipse + WTP para editar as paginas JSP, e para uma edição de JSP + javascript ou HTML eu uso o dreamweaver. De qualquer forma não achei esta combinação produtiva, digo isso porque é a parte do JSP que mais me atrasa no desenvolvimento, já na parte em Java, consigo produzir bem, o que me atrapalha mesmo e o JSP.

Como disseram em cima, o trabalho de produzir paginas bonitas e do desinger, mas na empresa que eu trabalho, que é pequena eu tenho que fazer o papel do designer tbm, e ai e que está o problema.

Valeu
VAleu

[quote=Leonardo3001]A produtividade não está na ferramenta, nunca esteve! Quem tem determinada produtividade somos nós. Você está demorando muito pra fazer as páginas porque ainda é novo, só isso. Com mais prática e mais aprendizagem, você melhora.

E é difícil traçar qual framework vai te dar uma melhor produtividade. Alías, impossível, isso não existe! Existem pessoas que ficaram mais produtivas, mas se deve mais ao conhecimento sobre como organizar e pensar no problema (mesmo que isso seja causado pelo framework) do que na ferramenta em si.[/quote]

Produtividade está nas ferramentas e tecnologias SIM, aliás, também!

Compare o desenvolvimento de um empresa que está engessada em Java 1.4 e J2EE 1.3, com uma IDE de 2005, com uma Java 5/6, JEE 5, e IDE de 2009. Agora pergunte em qual é mais fácil desenvolver Web Services, Controle de Mensagens, Processamento em Lotes, ou até mesmo o desenvolvimento das páginas web.

[quote=Bruno Laturner]
Produtividade está nas ferramentas e tecnologias SIM, aliás, também!
Compare o desenvolvimento de um empresa que está engessada em Java 1.4 e J2EE 1.3, com uma IDE de 2005, com uma Java 5/6, JEE 5, e IDE de 2009. Agora pergunte em qual é mais fácil desenvolver Web Services, Controle de Mensagens, Processamento em Lotes, ou até mesmo o desenvolvimento das páginas web.[/quote]

Agora pegue um desenvolvedor que não conheça nada de nada disso tudo que você falou e dá um 2 + 2 para ele desenvolver.

Conheço pessoas que usando o vi são mais produtivas que eu usando o Eclipse. Que tome a palavra o pessoal do RoR.

O VS é dita a melhor IDE do mundo e nem por isso vou passar, no momento, a desenvolver .NET.

As ferramentas são importantes? Claro que sim. Mas devem ser só ferramentas, como o próprio nome já diz.

Para todos a minha volta, que estão começando no Java, falo para usar o vi e o javac. Só depois pode começar a utilizar o Eclipse, NetBeans, whatever.

Essa formação de profissionais de IDE e Frameworks é que acho um absurdo. O pessoal aprende Struts sem saber o que é MVC ou até mesmo um Controller. Acho que deveriam aprender um framework MVC após estarem “escoladas” em JSP + Servlets. Aprender Hibernate após saber o que é ORM e já ter ralado com JDBC puro.

Eu não preciso de JSF, Struts para desenvolver MVC… como também não preciso de Hibernate para desenvolver a minha camada de persistência. Uso? Claro que uso. Mas não são generos de primeira necessidade.

Foi nesse sentido que falei.

EDIT: Respondendo mais diretamente ao título do tópico. Como ficar mais produtivo em JAVA? Estudando Java e Engenharia de Software. Dá uma olhada aqui e na trilha de livros do Shoes.

Motivação é sem dúvia o primeiro passo, mas um bom livro também tem seu valor, principalmente como fonte de consulta e informação. :wink:

[quote=tnaires]Já eu concordo em partes. Claro que a produtividade depende do desenvolvedor, mas não somente dele.
Pegue um desenvolvedor produtivo e ponha-o para fazer um CRUD de clientes de 3 formas diferentes:

  1. Servlets, JSP e JDBC;
  2. JSF e Hibernate;
  3. Ruby on Rails.
    Supondo que o desenvolvedor conheça bem as tecnologias envolvidas, vocês acham que a produtividade seria a mesma?

EDIT - Estou considerando apenas a situação colocada. Não estou querendo dizer que tal tecnologia é melhor ou pior em tudo.[/quote]

[quote=Bruno Laturner]Produtividade está nas ferramentas e tecnologias SIM, aliás, também!

Compare o desenvolvimento de um empresa que está engessada em Java 1.4 e J2EE 1.3, com uma IDE de 2005, com uma Java 5/6, JEE 5, e IDE de 2009. Agora pergunte em qual é mais fácil desenvolver Web Services, Controle de Mensagens, Processamento em Lotes, ou até mesmo o desenvolvimento das páginas web.[/quote]

Deixa eu dar minha réplica.

O ambiente que vocês estão descrevendo é típico desses mega-projetos de consultoria três letrinhas que tem por aí onde o gerente é deus, o arquiteto é o manda-chuva e os programadores são peões.

Pois bem, se o programador for tratado como peão, sendo obrigado a desenvolver na com frameworks “da arquitetura padrão” e codificar estritamente o que estiver no “documento de design”, então ele se sentirá frustrado em pouco tempo e não será produtivo. Ponto. Não adianta dizer que se usar framework X seria melhor, nenhum framework supera a perda de produtividade causada por burocracia, “linhas de produção” anacrônicas e gerenciamento imbecil.

Um programador, que não tivesse tolhido o seu direito de possuir as suas próprias ferramentas de trabalho, poderia escolher a melhor ferramenta para o projeto. E o programador mais produtivo seria aquele que conhecesse bem alguns patterns e frameworks e conseguisse saber o que é o melhor em determinada situação.

[quote=Leonardo3001]Deixa eu dar minha réplica.

O ambiente que vocês estão descrevendo é típico desses mega-projetos de consultoria três letrinhas que tem por aí onde o gerente é deus, o arquiteto é o manda-chuva e os programadores são peões.

Pois bem, se o programador for tratado como peão, sendo obrigado a desenvolver na com frameworks “da arquitetura padrão” e codificar estritamente o que estiver no “documento de design”, então ele se sentirá frustrado em pouco tempo e não será produtivo. Ponto. Não adianta dizer que se usar framework X seria melhor, nenhum framework supera a perda de produtividade causada por burocracia, “linhas de produção” anacrônicas e gerenciamento imbecil.

Um programador, que não tivesse tolhido o seu direito de possuir as suas próprias ferramentas de trabalho, poderia escolher a melhor ferramenta para o projeto. E o programador mais produtivo seria aquele que conhecesse bem alguns patterns e frameworks e conseguisse saber o que é o melhor em determinada situação.
[/quote]
Aí você chutou o pau da barraca :slight_smile:

Realmente é horrível não ter liberdade sobre o que usar. Sei bem o que é isso. :cry: Locais que engessam a arquitetura de um sistema com frameworks de referência tiram todo o tesão de programar: o desenvolvedor começa a procrastinar e a produtividade vai por água abaixo.

Ele chutou o pau da barraca, mas ao invés de rodear no assunto, foi direto no cerne do problema. E é tudo verdade.

Engessar a maneira de uma equipe trabalhar derruba a moral e a produtividade, nem dá vontade de melhorar o sistema se quem tá mais acima acha que esse é o menor dos problemas. Depois ficam perguntando por que as coisas não ficam prontas do dia pra noite (ou da noite pro dia, depende do problema).

Qual seria a definicao do termo “produtividade” na concepcao de voces?
Veremos que esta definicao é muito relativa, pois varia de pessoa para pessoa. :wink:

Se vc procura produtividade para projetos CRUD WEB, esqueça Java e procure uma linguagem de script que te atenda Desenvolver CRUD com Java é o mesmo que utilizar um canhão para matar uma formiga, e o canhão é pesado…

Produtividade em meu caso é ter paz para trabalhar e ser criativo em minhas soluções. Velocidade nem sempre é sinonimo de produtividade.

Exatamente. No início do tópico, achei que estivéssemos falando apenas de velocidade de desenvolvimento. Mas a colocação do Leonardo, bastante pertinente, nos fez ver que há outros fatores em jogo.

[quote=aleck]Se vc procura produtividade para projetos CRUD WEB, esqueça Java e procure uma linguagem de script que te atenda Desenvolver CRUD com Java é o mesmo que utilizar um canhão para matar uma formiga, e o canhão é pesado…

[/quote]

Discordo, quando eu estava começando a aprender java também pensava assim.
Só que as coisas evoluiram muito desde então e o processo de desenvolvimento está bastante simplificado se comparado com a versão 1.4 do java ee, e esta é uma tendencia que parece que a plataforma java está buscando cada vez mais, a de simplificar o desenvolvimento.
Não sei se o aleck se referiu apenas a parte de visualização da operação de crud ou se a tudo, incluindo a camada de negocios. Partindo do principio de que seja apenas a camada de visualização, acredito que frameworks como jsf (meu preferido) e dwr simplificaram bastante o desenvolvimento.
E esta é minha resposta (pessoal) para este post, jsf com componentes ajax (Richfaces ou Icefaces) ou dwr e alguma biblioteca ajax (yui, JqueryUI, extjs, etc).