Designer X Web Designer X Programador

Olá amigos.

Comecei trabalhando com Webdesigner, só HTML+CSS, depois trabalhei com Designer Gráfico, em 2009 comecei a cursar Sistemas de Informação, trabalho como programador, trabalhei numa empresa que tinha existia os 3 papéis. Dava briga, o Designer fazia o Layout, passava para o programador, que ficava fulo em montar em cima do layout, o webdesigner só entrava em ação na hora do CSS.

Agora trabalho, como programador web e concordo com os amigos, a melhor forma de programar é usar MVC, mas mesmo assim ainda coloco a mão na massa qdo precisa criar um fundo ou algum ícone para o sistema.

Cordialmente
Diego Silva

Se alguém quiser me add. no msn para trocarmos experiências… é só add. dls1812@hotmail.com

[quote=dlsilva1812]Olá amigos.

Comecei trabalhando com Webdesigner, só HTML+CSS, depois trabalhei com Designer Gráfico, em 2009 comecei a cursar Sistemas de Informação, trabalho como programador, trabalhei numa empresa que tinha existia os 3 papéis. Dava briga, o Designer fazia o Layout, passava para o programador, que ficava fulo em montar em cima do layout, o webdesigner só entrava em ação na hora do CSS.

Agora trabalho, como programador web e concordo com os amigos, a melhor forma de programar é usar MVC, mas mesmo assim ainda coloco a mão na massa qdo precisa criar um fundo ou algum ícone para o sistema.

Cordialmente
Diego Silva

Se alguém quiser me add. no msn para trocarmos experiências… é só add. dls1812@hotmail.com[/quote]

Legal… o bom é que você teve a experiencia como designer.

[quote=Rafael Guerreiro]Eu sempre trabalhei da seguinte forma: o Designer trabalha JUNTO com o Web Designer para fazerem as páginas. O Web Designer trabalha JUNTO com o Programador para conseguir integrar as duas plataformas.

As pessoas precisam, antes, sentar TODAS juntas para planejar o desenvolvimento da aplicação. Assim, um sabe o impacto que uma mudança pode causar.

Ideal mesmo é todo mundo trabalhando sempre juntos e um sabendo o que o outro está fazendo. Olhe sobre a metodologia do Scrum e XP. Use o Kanban para conseguir administrar o que cada um está fazendo de forma BEM visual.

Se você usar algum framework MVC como Spring ou VRaptor (aconselho esse pela curva de aprendizado e suporte no GUJ), você tem um aumento incrível de produtividade do Programador. Site do VRaptor
Se você usar algum framework de Persistência como o Hibernate (aconselho esse por ser o mais utilizado pelo mercado) ou outros, você tem um aumento absurdo da produtividade do Programador para persistir os dados no banco de dados.Site do Hibernate
Se você usar algum framework de JavaScript como o jQuery (aconselho esse pela intensa comunidade e plugins existentes) você tem um aumento da produtividade do Web Designer e do Programador.Site do jQuery
Se você usar algum framework de CSS como o Twitter Bootstrap (aconselho esse por que é realmente lindo e integrado ao jQuery) ou o jQuery UI você tem um aumento de produtividade do Web Designer.Site do Twitter Boostrap

Apostila muito boa da Caelum sobre VRaptor, Hibernate (básico) e jQuery (básico)

Esses frameworks não vão deixar a sua aplicação lenta, pelo o contrário, eles têm umas formas de otimização bem avançadas.

Os frameworks existem para que você se preocupe em desenvolver o que realmente importa. No caso, a regra de negócio é o que realmente importa.[/quote]

Boa demais sua explicação Rafael…

[quote=$ERVER]
Quanto aos problemas como ter que mudar o layout da pagina, por consequencia seus inputs - ou mesmo na hora da criação do layout, já que o programador precisa saber quais os ids deles para fazer o binding com o controller - eu pessoalmente tenho uma saída bem simples: um dos integrantes da equipe fica responsável por nomear os inputs, ou o que mais precisar, cria um .doc e passa pros interessados. Coisa muito simples que aprendi com a minha Professora de Qualidade de Software, mas que me quebra muito galho até hoje: deixar tudo documentado. [/quote]
Discordo completamente. O id dos inputs serve somente para o CSS ou o JS saberem reconhecê-lo… Mas ainda assim, somente em alguns casos. Leia sobre isso: http://blog.caelum.com.br/seu-codigo-css-pode-ser-mais-limpo-flexivel-e-reaproveitavel/

O que o browser usa para mandar para o servidor é o atributo name dos inputs. Esse atributo não deveria ser usado pelo Web Designer, mas somente pelo Programador. Pois é nesse atributo que está a integração entre as duas plataformas.

Quanto à documentação, discordo completamente, documentação fica obsoleta de forma rápida e NINGUEM lê. (você ja leu algum manual de panela de pressão, por exemplo?)

O Ideal mesmo é fazer TESTES DE UNIDADE. Conhecido como TDD. São testes automatizados que GARANTEM que o seu sistema se comporte de maneira adequada. Leia: http://blog.caelum.com.br/tdd-e-sua-influencia-no-acoplamento-e-coesao/

[quote=$ERVER]
Eu ainda torço o nariz pra Scrum e XP, mas talvez seja por não conhecer mais a fundo também. Mas respeito muito quem usa, é tudo questão de ponto-de-vista.[/quote]
Scrum é uma metodologia focada na solução do problema e não na documentação. Considero a melhor metodologia de desenvolvimento no mercado, e já trabalhei com várias metodologias.
Hoje eu trabalho com PMI em uma empresa e com SCRUM em outra. Mas, infelizmente, a primeira é por imposição e não por vontade.

Eu tenho uma equipe de desenvolvimento que está muito dividida regionalmente, ou seja, um em SP, outro no Canadá, outro em Minas e fazemos o nosso Scrum de forma eficiente.

Fazemos Kanban com uma plataforma online chamada Trello. Excelente. http://www.trello.com

Calma Rafael Guerreiro! kkkkkkkkkkkk

Falando sério agora, tens razão em várias coisas:

1º: quando eu disse ids, me referia ao atributo name mesmo, foi erro meu.
2º: Documentação é realmente um pé no saco.

Porém:

Ai você citou um manual de como UTILIZAR algo, enquanto eu me referi à documentação como uma forma de organizar, e deixar a informação disponível pra quem precisar.

Estudei isso na faculdade, porém, ainda não tive a oportunidade de por em prática.

Em momento algum botei em dúvida a qualidade do seu trabalho utilizando Scrum e XP. Se foi o que deu a entender, foi totalmente sem querer, e peço desculpas.

É o que eu falei, eu sou muito novo na area ainda, tenho muito, mas muito a aprender com feras como vocês.
Novamente desculpas por qualquer transtorno, abraços.

Ai é que entra uma coisa que eu acho interessante: programador com obrigações quanto ao layout. Não vejo como resolver isso usando metodologias ágeis, vou te explicar o porque:

Como fazíamos nos projetos da faculdade: como os inputs dependem do Bean para binding, eu pegava um doc, colocava os nomes das propriedades do bean e passava pro responsável pela parte do layout. Fazia isso em menos de 5 minutos, e a informação tava lá guardada pra quem precisasse. E não é só pela praticidade: imagina um programador ter que instalr editor de html só pra mudar os names dos inputs? Ou usando o wordpad, que muitas vezes deforma a formatação do arquivo? Esses são apenas alguns contras.
Se me der um exemplo de como resolver esse problema (deixando o programador longe de qualquer parte de layout), eu começo a dar o braço a torcer por aqui.

Abraços.

Eu que peço desculpas, eu não sei usar emoticons e as pessoas sempre interpretam errado os meus textos. Não estou brigando com você, nunca faria isso. Não tenho esse direito.

É para isso que serve o TDD. Vamos supor assim, você vai em um sistema e muda um If, se o sistema estiver bem testado, ou seja, com bastante testes de unidade, ele pode quebrar com a mudança que você fez e você vai conseguir ver o COMPORTAMENTO que os testes estão esperando daquele método. Assim, você sabe se está certo ou errado. Além de ter total segurança em mexer no sistema, pois, se você colocar algum bug sem querer, um teste pode te avisar.

Coloque em prática AGORA. Isso deveria ser pré-requisito para os sistemas. As pessoas deveriam aprender a programar testando.

[quote]Em momento algum botei em dúvida a qualidade do seu trabalho utilizando Scrum e XP. Se foi o que deu a entender, foi totalmente sem querer, e peço desculpas.

É o que eu falei, eu sou muito novo na area ainda, tenho muito, mas muito a aprender com feras como vocês.
Novamente desculpas por qualquer transtorno, abraços.[/quote]
Eu que peço desculpas mais uma vez. Eu não li o seu post como uma ofensa, mas como te fazer entender o que realmente é o melhor.

Mas existe aquela coisa, o que é melhor para um pode não ser para o outro. O fato é que a maioria (para não dizer todos) dos grandes desenvolvedores adotam essas práticas.
Se eu quero ser um grande desenvolvedor, eu preciso agir como eles…

É importante experimentar coisas novas para saber o que você está fazendo de errado e o por quê.

SEMPRE se pergunte o porque de cada coisa. Se eu te falar: use TDD, PERGUNTE “porque?”. Se você fizer uma entidade e lotar de atributos privados e getters e setters, pergunte “PORQUE??”.

[quote=$ERVER]Ai é que entra uma coisa que eu acho interessante: programador com obrigações quanto ao layout. Não vejo como resolver isso usando metodologias ágeis, vou te explicar o porque:

Como fazíamos nos projetos da faculdade: como os inputs dependem do Bean para binding, eu pegava um doc, colocava os nomes das propriedades do bean e passava pro responsável pela parte do layout. Fazia isso em menos de 5 minutos, e a informação tava lá guardada pra quem precisasse. E não é só pela praticidade: imagina um programador ter que instalr editor de html só pra mudar os names dos inputs? Ou usando o wordpad, que muitas vezes deforma a formatação do arquivo? Esses são apenas alguns contras.
Se me der um exemplo de como resolver esse problema (deixando o programador longe de qualquer parte de layout), eu começo a dar o braço a torcer por aqui.

Abraços.[/quote]
O programador SEMPRE estará longe do Layout. Vamos mudar a forma de ver isso:

Eu te falo assim: para mandar uma carta para mim, você precisa me enviar nesse formato para esse determinado endereço.

Pois então, para uma plataforma se comunicar com outra, um PRECISA especificar o “formato” que ele vai precisar usar.

A questão é a seguinte, não existe projeto perfeito aonde o programador não interfira no HTML e o Web Design não interfira no código. As coisas estão INTEGRADAS. O trabalho dos dois é INTEGRADO.

Por um problema de lentidão, o Web Design pode se ver no direito de pedir que o Programador melhore determinada funcionalidade. É um trabalho em CONJUNTO. A gente está falando de EQUIPES para um projeto. Pouco importa para o usuário que um não interferiu no outro (minha opinião é que isso é ruim).

Quanto ao editor HTML, o eclipse consegue editar HTML muito bem, na minha opinião. Mas existe plugins para o eclipse para te ajudar MAIS ainda, como o APTANA…

Aqui existe: eu programo em Java e o web designer usa taglibs para disponibilizar a informação nas páginas, e, como já falei, um documento com a especificação dos inputs, por exemplo. E mesmo assim ainda está longe de termos projetos perfeitos aqui (visto que eu sou o mais novo na equipe). Você poderia refutar dizendo que o web designer tá usando programação com taglibs (o que muitos alegam), porém, o próprio nome e formato diz tudo: taglibs.

E posso te afirmar que em momento algum eu preciso trabalhar com html/css e o web designer com Java.

Concordo contigo que é uma equipe, mas a forma como o software é desenvolvido influi diretamente na sua qualidade e prazos, e consequentemente, importa para o usuário (de maneira indireta).

Eu não preciso, obrigado.

Abraços.

Quis dizer interferência, e não programação. Se o Web Designer está programando em Java, ele não é um Web Designer.

Mas como você mesmo disse, você especifica para o Web Designer fazer algo, você dita para ele o que ele precisa te mandar (e vice-versa).

Eu tomaria cuidado com isso, como disse, é interessante experimentar coisas novas e visitar novos horizontes.

Eu comecei com Java, hoje eu acho o JavaScript, CSS e HTML mil vezes mais interessante. Recentemente fiz um curso de iOS na Caelum e já tenho uma forma de comparação entre as linguagens.

Com essa interferência que eu tenho de outras linguagens, a minha forma de desenvolver em Java mudou muito, e eu acho que está muito melhor hoje do que era quando eu não sabia iOS, por exemplo.

Comecei a estudar Ruby agora e ele me deixou maravilhado, existem coisas extremamente úteis que a gente pode fazer com Objective-C, Ruby e JavaScript que no Java não conseguimos fazer ou não conseguimos fazer de forma elegante.

É importante estar aberto à tudo e assim você só vai se tornar um profissional melhor (consequentemente o salário melhora).

[quote]Quis dizer interferência, e não programação. Se o Web Designer está programando em Java, ele não é um Web Designer.

Mas como você mesmo disse, você especifica para o Web Designer fazer algo, você dita para ele o que ele precisa te mandar (e vice-versa). [/quote]

Agora entendi, a famoso integração. Nisso concordo contigo, não há escapatória mesmo.

Concordo contigo que deve-se ter a mente aberta.
Porém, saber programar em várias linguagens não é garantia de sucesso - nem de melhor salário.
Conheço várias pessoas que sabem “programar” em PHP, Java, C#, porém, pecam em uma coisa essencial: escrever programas fáceis de outros programadores lerem depois - não estou me referindo a você, pois nem te conheço pessoalmente, muito menos profissionalmente pra afirmar algo do tipo.
Programar em delphi, Java, e qualquer outra linguagem, qualquer um pode aprender. Mas o que acho primordial em um programador é saber o porque de usar a linguagem que ele escolheu - quando quer se especializar ou conhecer várias linguagens. Eu, por exemplo: vejo um mercado atrativo para um BOM programador Java, então estudo tanto a parte técnica - a linguagem Java - quanto continuo a aperfeiçoar meus conhecimentos teóricos. Isso, pode ter certeza, me trará grande retorno dentro de poucos anos.

Se pareci arrogante ao dizer obrigado, me desculpe. Mas pense melhor sobre o assunto, antes de começar a ironizar um companheiro de profissão.

Acho que você já pode - eu disse PODE - estar levando isso para o lado pessoal, pois qualquer um que ler o fim do seu post consegue entender que ele tem uma leve ironia. Minha resposta está ai acima, encerremos o assunto por aqui, e boa sorte, amigo.

Abraços.

Caramba, amigo. Não fui nem um pouco ironico.

Também não disse que você deveria aprender várias linguagens. Disse que você deveria conhecer o que está fora para você poder aperfeiçoar o que você já sabe.

Não estou brigando, ironizando e nada, só estou te dizendo o que eu penso. Isso tudo é a minha opinião, se você vai fazer ou não, não me importa. Só acho que, como pessoa, posso te dizer o que eu penso para que VOCE analise e decida se vai fazer ou não.

Lembre-se de que conhecer várias linguagens é diferente de ser um especialista em todas as linguagens. Eu tenho o Java como especialização, mas o “meu” Java tem interferência de outras linguagens que eu conheço POUCO.

Para mim sim, pareceu arrogante. Mas não ironizei, não briguei. Só disse que você pode estar perdendo algo valioso na nossa profissão.

Não estou levando para o pessoal, só estou te dizendo o que eu penso. Mas, por que encerrar o assunto assim?

Então me perdoe, amigo. Realmente relendo vi que fui um pouco arrogante.

Tranquilo, sendo assim podemos continuar numa boa.

Então voltando ao assunto, eu não consigo estudar outras linguagens porque me tomaria ainda mais tempo, e olha que já ando estudando muito ultimamente - só no ultimo ano passei por Spring MVC, Struts, Hibernate, tudo isso com TCC em andamento, e ainda revisei os conceitos de POO logo após o término da faculdade - e olha que ainda nem sou nenhum especialista em nada do que citei. E ainda pretendo tirar pelo menos duas certificações Java - programador e desenvolvedor web - até medos de 2014. Após isso, JSF, e ai tentar algum trampo em uma empresa grande - moro e trabalho no interior.
Traduzindo: minha saúde foi pra cucuias em meados do ano passado - problemas emocionais causados por stress, enton tô indo mais devagar, pra descobrir ainda qual o ritmo que não vai me prejudicar a saúde. Mas quero muito, assim que essa fase passar, estudar C#. Fiz um curso em 2011 que me deixou fascinado.

Novamente desculpas por qualquer transtorno.

Abraços.

Minha opnião:
Já trabalhei em empresas com esse modelo e não vejo problemas.
Acho que o grande trabalho inicial é construir a “identidade visual” e essa muitas vezes fica mais facil usar uma ferramenta como photoshop mesmo. Depois da identidade visual construida é preciso passar para WEB (HTML/CSS) e ai sim fazer a programação.
O detalhe é que depois não consigo enxergar tantas mudanças significativas (a não ser uma troca de design completa) que justifique voltar para o photoshop. Acho que pode ficar só no html de um lado e na programação do outro. Realmente voltar para o photoshop a cada mudança é uma perda de produtividade imensa…

Se fizer a aplicação bonitinha em 3 camadas, fica mais facil o webdesigner mexer no html sem precisar do programador!

Mas o que eu acho mais produtivo é ter um Designer de verdade de um lado e um programador do outro… na minha opnião o designer de verdade VAI SABER USAR O PHOTOSHOP para criar a identidade visual. Depois VAI SABER A MELHOR FORMA DE FAZER O HTML/CSS e não ser simplesmente um tradutor tosco e por ultimo VAI TER NOÇÕES DE PROGRAMAÇÃO, não precisando ser um especialista, mas o suficiente para entender as TAGS das páginas e criar MOCKS (que se o projeto for bem desenhado usando os conceitos de DI e IOC) para testar a identidade visual de sua página sem precisar depender das rotinas de um programador.

O bom programador também vai conseguir testar seu código de forma unitária sem depender das páginas e o trabalho poderá andar em paralelo, óbvio que com total alinhamento entre as partes, mas no final somente integrando programação com páginas e vendo o resultado.
Já trabalhei de maneira bem produtiva desta forma, mas o DESIGNER tem que ser mais que um simples desenhista ou tradutor html…

O conceito de POO são um pouco difíceis, mas é mais fácil se você estudar Design Patterns (no java mesmo) leia o livro Effective Jave (pode ser em português).
É um dos mais conceituados. Escrito pelo Joshua Bloch. Tudo o que ele falar é lei.

Quanto ao Spring, Struts e Hibernate, tome cuidado para não ser mais um programador que sabe programar Spring e não Java. Sim, existe diferença, tem gente que não sabe vários conceitos do Java, várias coisas importantes. Apenas o framework. Para isso, é preciso estudar bastante mesmo.

Como diz uma frase de alguém ai: “Não importa a velocidade, mas a direção.”

Tome todo o tempo necessário, mas não se acomode.

Outras liguagens que são OO ajudam muito a entender OO. Existe uma listinha de livros que foi recomendado para mim (ainda não li todos): http://pinterest.com/while42/pragmatic-programer/

Algumas linguagens têm peculiaridades que permitem que você analise o seu código Java e o melhore de forma incrível.

Tem alguma ferramenta que já usou e me aconselha pra testes unitários? Eu perco muito tempo fazendo testes manualmente.

Abraços.

[quote=jmmenezes]Minha opnião:
Já trabalhei em empresas com esse modelo e não vejo problemas.
Acho que o grande trabalho inicial é construir a “identidade visual” e essa muitas vezes fica mais facil usar uma ferramenta como photoshop mesmo. Depois da identidade visual construida é preciso passar para WEB (HTML/CSS) e ai sim fazer a programação.
O detalhe é que depois não consigo enxergar tantas mudanças significativas (a não ser uma troca de design completa) que justifique voltar para o photoshop. Acho que pode ficar só no html de um lado e na programação do outro. Realmente voltar para o photoshop a cada mudança é uma perda de produtividade imensa…

Se fizer a aplicação bonitinha em 3 camadas, fica mais facil o webdesigner mexer no html sem precisar do programador!

Mas o que eu acho mais produtivo é ter um Designer de verdade de um lado e um programador do outro… na minha opnião o designer de verdade VAI SABER USAR O PHOTOSHOP para criar a identidade visual. Depois VAI SABER A MELHOR FORMA DE FAZER O HTML/CSS e não ser simplesmente um tradutor tosco e por ultimo VAI TER NOÇÕES DE PROGRAMAÇÃO, não precisando ser um especialista, mas o suficiente para entender as TAGS das páginas e criar MOCKS (que se o projeto for bem desenhado usando os conceitos de DI e IOC) para testar a identidade visual de sua página sem precisar depender das rotinas de um programador.

O bom programador também vai conseguir testar seu código de forma unitária sem depender das páginas e o trabalho poderá andar em paralelo, óbvio que com total alinhamento entre as partes, mas no final somente integrando programação com páginas e vendo o resultado.
Já trabalhei de maneira bem produtiva desta forma, mas o DESIGNER tem que ser mais que um simples desenhista ou tradutor html…
[/quote]
Disse tudo! E ainda, pode usar o Selenium. É como se fosse um TDD mas para as páginas WEB.

Tem alguma ferramenta que já usou e me aconselha pra testes unitários? Eu perco muito tempo fazendo testes manualmente.

Abraços.[/quote]
jUnit. é integrado ao eclipse. é lindo demais.

Nisso tive sorte, porque tive um professor maravilhoso de OO na faculdade. Eu que nunca tive problema algum com programação ralei pra passar na matéria dele. Eu fiquei 2 anos estudando Java e OO sem usar frameworks, por conta deste mesmo conselho, que outros usuários aqui do GUJ me deram, e hoje vejo que sofro menos do a maioria que já pula direto. Mesmo assim sei que ainda tem coisas pra eu estudar sobre a teoria. Esse livro que você indicou é em português? - preciso fazer um curso de inglês também, pq ultimamente até minha leitura está ruim, só consigo acompanhar artigos, passou de 5 paginas já fico perdido. Tô pensando em pegar algum do Fowler mais pra frente também, tem algum que recomenda?

Muito obrigado, abraços.

Vou dar uma pesquisada sobre ele. Muito obrigado!

Abraços.