Seções iMasters
Carreira + PHP

10 dicas profissionais do mundo PHP – Parte 01

Olá, pessoal! Este é meu primeiro artigo para o iMasters. Bom, isso não é 100% verdade, pois eu o escrevi com a ajuda de nove amigos meus. Todos profissionais conhecidos do mundo PHP e de diversos estados do país. Apesar do título, a maioria das dicas aplicam-se a qualquer linguagem e/ ou tecnologia.

A idéia partiu em uma conversa, como sempre bem descontraída, com o Elton Minetto, que é quem nos proporciona a primeira dica:

1. Estude e pratique

Elton Luís Minetto (SC) [@eminetto]

Fazer uma universidade, ou não, é uma discussão enorme. Eu fiz e recomendo. Aprendi diversos assuntos interessantes e importantes que uso até hoje. Mas independente de você fazer, ou não, um curso universitário, estudar é obrigatório. Leia livros técnicos, participe de cursos, seminários, etc. Tecnologias surgem todos os dias, se você não prestar atenção ficará ultrapassado.

Um esportista pratica diariamente seu esporte. Nós podemos fazer o mesmo. Programe e teste sempre que puder. Pequenos trechos de códigos, pequenos exemplos e problemas de lógica. Além de ser divertido, mantém a sua mente “afiada”.

2. Repasse seu conhecimento

Adler Medrado (DF) [@adlermedrado]

Como foi que você aprendeu a fazer seu primeiro Hello World? Provavelmente por meio de um livro, um texto em um site/ blog, ou alguém direta e pessoalmente te ensinou. Raramente nós aprendemos sem a ajuda direta, ou indireta, de alguma pessoa que usou seu tempo para compartilhar o conhecimento dela. Então, que tal começar a compartilhar também?

Crie um blog (e escreva nele, claro!), ministre palestras e/ ou minicursos em eventos, participe de dojos, ou escreva um artigo para alguma revista. É válido também mandar e-mail com dicas para seus colegas de trabalho e dar aula em escolas de informática. Estas são apenas algumas sugestões, e certamente existem outras maneiras de colaborar.

Após decidir como repassar seu conhecimento, você pode perguntar a si mesmo: “Mas em que eu posso ajudar? A Internet já possui muito material disponível”. Esta questão certamente passa pela cabeça de muitos de, mas você terá a agrádavel experiência de saber que, um dia, aquele simples post seu ajudou alguma pessoa, de alguma maneira e em algum momento. E eu te digo: você ficará sabendo disso!

3. Não espere o futuro, faça agora!

Bruno PorKaria (MS) [@porkaria]

Todo mundo tem uma ideia, mas nem todos tem a coragem de tirá-la do papel. Coragem não é talento, muito menos “dom divino”. É, simplesmente, algo que precisa ser constantemente treinado. Você não é o melhor programador do mundo, o seu código quase sempre não vai ser a melhor maneira de resolver aquele problema, mas você não precisa esperar que alguém resolva o seu problema.

Crie agora a sua conta na PEAR, no github, ou sourceforge, dentre tantos outros e compartilhe seu código. Tenha coragem de aprender, não tenha medo de errar e faça agora o que você espera para o seu futuro.

4. Não seja tradicional

Marcelio Leal (PA) [@marcelioleal]

Os conceitos e a arquitetura são mais importantes do que os padrões de projeto, os recursos de linguagem e os frameworks. Utilize ao máximo a flexibilidade e todo o potencial que o PHP proporciona. Quando você for utilizar PHP, avalie o custo do uso de padrões de outras linguagens, padrões de projeto, e outros tipos de padrões. A utilização indiscriminada pode proporcionar perda de flexibilidade, extensibilidade e outras características boas do PHP.

Por exemplo, na implementação do Zend Framework 1.0 (famoso framework PHP) foram utilizados alguns padrões de projeto que na sua versão 2.0 estão sendo retirados, por não proporcionarem as melhorias que, em teoria, os padrões proporcionariam.

Adicionalmente, escolha soluções que te proporcionem a flexibilidade e o uso das principais características do PHP. O Zend Framework e o Doctrine são dois bons exemplos disso, já que te permitem utilizar parte dos seus componentes e, ainda assim, te subsidiam para uma boa solução.

Outro ponto importante, é que você deve conhecer pontos que o PHP proporciona para soluções mais simples, como os métodos mágicos, reflection, reescrita de funções padrão (como a de erros) e o próprio PHP embeded HTML. Isto significa que vai se tornar um desenvolvedor que sabe tomar decisões apropriadas em PHP.

Nunca esqueça que a sua arquitetura é mais importante do que o Framework que você vai usar. Você tem o direito de adequar a sua arquitetura e escolher os componentes e frameworks que precisar para resolver o seu problema da melhor forma possível. Assim, foque na simplicidade, e conheças as possíbilidades do PHP.

5. Organize e programe seu código de forma coerente

Guilherme Blanco (Toronto – Canadá) [@guilhermeblanco]

Tomei por base a dica do Marcelio, que pode ser expandida dedilhando um pouco mais o assunto. Diariamente sofremos com códigos bizarros, que nos fazem questionar o conhecimento das pessoas. Por mais que haja conhecimento, também é necessário planejamento e organização quando se programa. Felizmente, a área de programação é uma das poucas onde perfeccionismo não é prejudicial à saúde do projeto, pelo contrário, na maioria das vezes não só é benéfico, como também possibilita ter uma maior visibilidade sobre o escopo da aplicação.

Antes mesmo de sentar e sair programando, pense na sua estrutura, faça o mínimo de planejamento. Até futebol precisa de planejamento e estratégia de jogo. Na programação, a estratégia fica à critério do scrum master e project leader. Mas o planejamento fica a critério do arquiteto e dos desenvolvedores. Olhe ao seu redor: seu time tem um arquiteto? Na maioria dos casos, o “dito” arquiteto trabalha ao seu lado, mas trabalha da mesma forma que você e o seu cargo é apenas para justificar um salário melhor que o seu.

A responsabilidade dele deveria ser de auxiliá-lo no planejamento do seu código. De qualquer forma, para não importunar o arquiteto, você também precisa ter o mínimo de organização. O UML, nesse caso, ajuda muito. O diagrama de pacotes é um bom começo, pois ilustra a dependência entre eles. Dependências cíclicas (A depende de B e B depende de A) devem ser evitadas ao máximo, bem como a dependência de classes de pacotes mais intrínsecos à uma classe de um pacote mais externo. Sempre que possível, pare para pensar sobre nomenclatura de classes e métodos. Evite nomeá-los de forma aleatória; siga um padrão. Vamos usar um exemplo na prática:

Uma classe TokenService contendo os métodos generateToken(Credential $credential) e getCredentialByToken(Token $token). Apesar de inofensivos, os métodos esboçam claramente os seus respectivos propósitos. Mas ao mesmo tempo, ferem a semântica da classe no quesito da correlação entre eles. Isso porque a semântica cíclica dos métodos A -> B e B -> A não foi mantida. Se o desenvolvedor tivesse pensado trinta segundos a respeito disso, a nomenclatura poderia ser outra. Expor um ciclo é simples, mas, especialmente nesta situação, é necessário também expor o retorno esperado. Uma idéia seria nomeá-los convertCredentialToToken(Credential $credential) e convertTokenToCredential(Token $token). Não doeu nada e ficou bem mais interessante, né?

Outro ponto bastante interessante na nomenclatura de classes é a insistente presença de sufixos ou prefixos que caracterizam o objeto, exemplo: AbstractDriver, EncoderInterface, etc. Saliento que exceto justificativas extremamente plausíveis (algumas demoram até horas para serem quebradas ou afirmadas), estes modificadores não deveriam existir. Talvez o argumento mais difícil a ser quebrado é o fato de que mudando a responsabilidade de uma classe/ interface, por exemplo de “interface DriverInterface” para uma classe abstrata “abstract class AbstractDriver”, o esforço de refatoração deveria ser o mínimo possível.

Como é possível ver, o esforço não foi simplificado com a mudança, e inclusive pode quebrar o código estável (exemplo: instanceof). Baseado nisso, confie sempre em um nome estável e siga em frente. Os nossos exemplos iniciais, Driver e Encoder, seriam bons candidatos à nomes de interfaces.

Uma proposta recente que se mostrou muito interessante na codificação de classes foi o Object Calisthenics. O conceito está disponível no livro The ThoughtWorks Anthology. Para ser mais exato, está no capítulo 6, onde Jeff Bay menciona alguns passos simples, mas que mudam completamente a sua forma de programar, se seguí-los à risca:

  1. Não abrevie palavras e/ ou variáveis;
  2. Um nível de indentação por método;
  3. Não utilize a palavra-chave ELSE;
  4. Sem métodos estáticos que não façam parte de métodos fábrica (Factory methods);
  5. Mantenha suas entidades/ classes o menor possível;
  6. Nenhuma classe com mais de duas instâncias de objetos.

Nesse artigo é possível ler mais regras – são onze no total, mas algumas não são aplicáveis ao mundo PHP (tais como encapsular tipos abstratos, coleções de primeira classe), mas seguindo apenas estas 6 regras, já é possível ter uma melhora significativa no seu código. Eu, particularmente, ainda incluo mais duas, não obrigatórias sob argumentos válidos (obrigatórias caso não tenham), que também auxiliam:

  1. Classes com no máximo 500 linhas e apenas 1 responsabilidade;
  2. Métodos com no máximo 50 linhas e apenas 1 responsabilidade.

É interessante ressaltar que adotando as seis regras de Jeff Bay, as duas que proponho se tornam bem naturais.

Acho que por hoje é só. Em breve vou trazer pra vocês outro artigo com as cinco dicas finais. Até a próxima!

Mensagem do anunciante:

Em apoio à evangelização do WordPress, os cursos da Apiki são gratuitos para que você possa se especializar na plataforma que mais cresce no mundo. Vagas limitadas, Inscreva-se agora.

Comente também

67 Comentários

Igor Carvalho de Paula

Eu discordo do item 4, sera que utilizaram mesmo toda a dinamica que o php oferece pra usar os padroes de projeto? pode ter ficado complicado pq ficou muito engessado, e nao dinamico…eu vejo pouca dinamica e padroes de projeto nele

    Igor, escolher um padrão de projeto significa não utilizar 1000 maneiras de preparar uma aplicação e não inventar uma, mas ficar com aquela testada e notadamente aprovada em vários casos. O que o Marcélio quis dizer neste caso é que nem sempre os padrões que você usa são os mais adequados em qualquer situação.
    Quando ele diz “Não seja tradicional”, “avalie o custo do uso de padrões de outras linguagens”, ele se refere ao fato de a maioria destes padrões terem sido desenhados desconsiderando que algumas limitações de outras linguagens simplesmente não existem em PHP. Ele inclusive cita algumas (métodos mágicos, reflection, reescrita de funções padrão) que tornam PHP uma linguagem extremamente dinâmica.
    Não é um manifesto contra o uso de padrões, mas um chamado para uma reavaliação da adequação de alguns destes padrões.
    Eu costumo citar frequentemente o padrão MVC, que nos ajudou durante anos, mas já exibe sinais de cansaço frente a novos desafios dos projetos atuais (veja mais em: http://phpmaranhao.com/2011/10/28/modulos-models-e-apis/).
    Enfim, me meti na conversa porque concordo com o Marcélio e gostaria de compartilhar esta visão.
    Abraço a todos.

douglas

eu acredito que o profissional não pode saber somente php =)…

o trabalho é desvalorizado,

a área paga pouco…

é linguagem para iniciantes…passou sua boa época e agora aplica-se apenas a Sites ou pequenos sistemas para pequenas empresas…

quem só sabe php ta na roça =)…

viva Java, C#, C++…

    Marcelo Rodrigues

    Troll detected. Noob detected. E ainda por cima me vem falar de Java, C# e C++…pra WEB?

    Weudes

    “quem só sabe php ta na roça”, amigo quem deve ta na roça é tu pq ao que parece não conhece nadinha de php e muito menos a enormidade de sistemas complexos existentes, se tu é um meia boca melhor não sair dizendo besteira

    Luiz Vinicius Rangel

    PHP acho a linguagem mais completa para web li um pouco de ASP e achei a escrita muito complicada..
    mais não descordo totalmente do douglas, para WEB só php não basta seu site tem um bom código php executa tudo bem rápido mais não tem uma interface bonita.. como é bom aprender um bom CSS e até mesmo para auxiliar com o PHP um JQUERY ou JAVASCRIPT..
    mais no contexto geral só PHP é de uma grande ajuda..

    jeferson

    PHP é muito mais do que se pensa! :)

    rafael

    O php é desvalorizado por causa dos programadores! é muito fácil, qualquer mané aprende e sai programando por qualquer salário.

    Pedro

    “passou sua boa época e agora aplica-se apenas a Sites ou pequenos sistemas para pequenas empresas…”

    Voce provavelmente deve conhecer a Unimed, que patrocina algum time de futebol que nao me lembro, tem boa parte (ou toda, nao sei ao certo) em PHP.

    Pesquise mais, leia mais, fale menos.

    Felipe Moura

    Tou tomando nojo dessa galerinha que fica gritando java, c#, c++..

    Rafae

    trabalho a mais de 10 anos com PHP, essa cara que falou bosta acima, @douglas nao tem noção do que se pode fazer com PHP, absolutamente nao sabe e quem sabe realmente, ganha bem, agora para aqueles que sabem fazer um formulario, e gravar no mysql, dai meu amigo, francamente.

    qualquer sistema pode ser feito com quase qualquer linguagem, se vc tem criatividade e souber escalar o que faz … trabalhei desde sistemas para linha de montagem de celulares … até ERPs para controle agricola, enfim, de boca feichada vc é um poeta …

    johnatan ivini

    Os sistemas aqui da coelce, varios projetos dela são em php…

Diego Lopes

@Igor de Paula e @douglas
Parem de falar asneiras! Pra encerrar esse assunto…

Quer um exemplo excepcional de sistema feito em PHP?
R: Facebook.

Concordo que o PHP está em fase de desenvolvimento, mas afinal, que linguagem não está? ^___^.

@douglas, quer uma dica? Não se compara Plataforma com Linguagem de Programação.
É uma covardia só!
Você deve comparar Java com .NET e não Java com PHP!

@Anderson Casimiro, você está de parabéns pelo artigo.

Atenciosamente,
Diego.

    rafael

    além do facebook ( que usa C++ com php, não somente php)
    vc conhece outro sistema grande?
    algum banco por exemplo?

    Diego

    Não que eu lembre de cabeça.

    Wellington

    Trabalho para uma empresa que cria soluções bancarias para quase todos os bancos do Brasil e muito dos sistemas são feitos em PHP.

    Felipe Moura

    Quase todos os sistemas do governo são em php!!!

    William Rufino

    Conhece um tal de yahoo?

Daniel Lima dos Anjos Pinheiro

Douglas,

Serei obrigado a ser ignorante e me desculpe caso se sinta afetado por minhas palavras. Mas vou lhe falar umas boas verdades, que na verdade todo mundo fala e me parece que você não está por dentro do que acontece.

” e agora aplica-se apenas a Sites ou pequenos sistemas para pequenas empresas….”??? WTFFFF man!!!!!

Facebook.com é o que? O maior website do mundo. Preciso falar mais nada ok? Alias, vou falar sim. Trabalho em um projeto WMS escrito em PHP. Garanto que este é maior que muitos sistemas Java, C#, COBOL…e blah blah balh que tu já tenha visto por aí (será que já viu mesmo ou só fala por ser Xiita? )

“é linguagem para iniciantes” …??? Novamente, WTF???? Citando um caso da minha empresa… Possuimos devs em .net e PHP. Um dev de .net começou a escrever um projeto em PHP e sabe o que ele fez? Merda e mais merda. Uma por cima da outra. A app é um montanha de merda equilibrada em cima da outra. O cara é dev .net há anos. Jà trabalhou na Bovespa, Borland e por aí vai. Ele é um ótimo programador, mas é bom em .net, somente. Com toda a sua experiência, ao lidar com o PHP, ele fez merda de iniciante.. então.. Não só PHP como qualquer outra linguagem pode ser de iniciante em qualquer tempo.

Falando um pouco mais sobre a linguagem… Vamos ver… Hummm…. Ela aceita Traits (similar herança multipla), maior documentação do mundo, opensource, diversos frameworks em constante atualização, comunidade muito ativa, facilidade de aprendizado e sem “burocracia”. Já todas as outras que vc citou, não possuem nada disso aí. Enfim…

“a área paga pouco…” ?? Paga pouco pra quem é ruim e não procura evoluir! Eu ganho razoavelmente bem, assim como muita gente que conheço. Vivo, como, bebo e moro muito bem. Então.. não preciso falar mais nada, ok? Isso independe de linguagem.

“quem só sabe php ta na roça =)…” … Essa é a unica parte que posso concordar, parcialmente, com você. Parcialmente porque quem sabe só Java, também tá na roça, quem sabe có C# também e C++ idem…e qualquer outra coisa. Não entendi bem o que tu quis dizer com “roça”, mas me levou a pensar em um insulto com programadores que sabem somente uma linguagem.

Sobre a minha ultima citação, quero lhe falar que não adianta tu ser o dev mais poliglota do mundo se não usa técnicas e abordagens que outras linguagens usam e se aplica em outras. Jà trabalhei com ASP, ColdFusion, C#.NET e já me arrisquei a estudar Java.. E só te falo uma coisa: Aproveite o que for de melhor em cada uma delas e aplique nas outras e trabalhe com a que você se sente melhor, no meu caso, PHP.

Enfim… Isso foi só um conselho. Pelos seus comentários aparenta ser um cara novo (ou fechado), que não conhece muito bem o PHP. Procure saber mais sobre as proprias pessoas que compunham o artigo e tu vai ver que são grande profissionais da área que contribuem muito para o mundo do desenvolvimento de “pequenos site para pequenas empresas”

Sem mais.

William de Oliveira

É… O Cara aqui de cima disse tudo!

“viva Java, C#, C++…”

Meu Deus!!! Se só existisse uma ou outra linguagem de programação boa no mundo o que seria da área ein?

É isso mesmo Daniel Lima! Disse tudo!

Paulo Luvisoto

PHP é linguagem pra iniciantes??? Como assim???

Me desculpe, mas acho que isso não faz o menor sentido…

Diogo

PHP não é linguagem para iniciantes.

O que acontece é que como a curva de aprendizado é baixa, todos os “iniciantes” querem brincar com ela.

Mas como qualquer outra linguagem, para programar BEM em PHP é tão dificil quanto qualquer outra.

Igor Carvalho de Paula

douglas, nao sabe programar, sofreu lavagem cerebral, diego, eu me referi ao zend framework e o fato dele mudar, vc leu o artigo completo? eu ja li o java core, e logo na introducao o autor fala q o proprio core do java tem muito codigo repetido, na orientacao a objetos, codigo repetido eh LIXO

Anderson Casimiro

Antes de mais nada, obrigado a vocês pelo feedback.

Um grande amigo desenvolvedor Ruby me disse certa vez: “Linguagem serve para deixar o desenvolvedor feliz” … pode parecer um pouco abstrato, mas se formos ver ao fundo cada linguagem, todas no fim das contas vai atender o desafio a elas oferecido – com diferenças na balança com manutenabilidade, performance, recursos, comunidade e profissionais.

Na minha opinião o Douglas tem uma visão um pouco equivocada sobre o PHP e seu ecossistema, mas não temos como culpá-lo – muitos desenvolvedores, empresas e projetos vendem muito mal a imagem do nosso PHP. Mas ele disse uma coisa que vale muito a pena prestarmos atenção: “Quem só sabe PHP tá na roça” – ele está certo! Assim como quem só sabe Java, ou só C, ou só Python ou só .

O Doctrine começou como uma implementação do Hibernate do Java assim como alguns frameworks PHP se inspiraram em Rails e/ou Spring. Em contrapartida a comunidade de várias linguagens tentaram reproduzir projetos que foram ou são sucessos até hoje no PHP, como o WordPress, PHPBB, Drupal, MediaWiki, e tantos outros. Na maioria das vezes ficaram na tentativa.

Não podemos de fato ter uma visão limitada. É fundamental que conheçamos outras linguagens, plataformas e paradigmas e aprender o que de melhor tudo isso tem. Assim como temos que olhar melhor para dentro do PHP.

PHP é uma linguagem multi-paradigma, funcionando muito bem OOP, Procedural e Funcional – e em breve com toques de Orientação a Aspectos. Para a grande maioria dos casos não precisa de bibliotecas externas para fazer um projeto simples. As dependências para sua utilização são mínimas. Tem performance exemplar. Uma Comunidade gigante e apaixonada. Sua documentação é uma das, senão a melhor, entre todas as outras, além de ser movida a, e pela, comunidade.

Sim devemos olhar as outras linguagens assim como fomentar boas oportunidades para que as outras comunidades vejam o que temos de bom, em linguagem, plataforma, comunidade e profissionais.

Falando nesse ultimo ponto, e agora discordando muito do Douglas: Ainda bem que as empresas para as quais eu trabalho/trabalhei não sabem/sabiam que “a área paga pouco” ;). Esse momento que ele citou como “é linguagem para iniciantes…passou sua boa época e agora aplica-se apenas a Sites ou pequenos sistemas para pequenas empresas…” deveria de fato ser citado assim “é uma linguagem que por sua facilidade e falta de burocracia trouxe muita gente inexperiente ao desenvolvimento de sistemas – muito tempo atrás ficou conhecida por aplicações em sites pequenos ou pequenos sistemas, mas hoje é dificil viver sem facebook, flickr ou last.fm”. Posso dizer com segurança que o New York Times é muito grato ao PHP também.

A melhor linguagem é aquela que atende melhor uma necessidade. O PHP geralmente atende muito bem a maioria das necessidades

William Martins

Nossa… do jeito que vocês falam do PHP aqui, ele chega a “parecer” a melhor linguagem do mundo (gostei)!

Parabéns pelo artigo… ficou muito bom e os comentários ficaram ótimos também, tira dúvidas que muitas pessoas possuem sobre essa grande linguagem.

Rutales Santiago

Está de parabens Anderson.

Para aqueles que acham que um bom software depende de uma linguagem, coitado deste ser. Um bom software depende de um bom projeto que depende de bons profissionais.

Com ctz Facebook foi responsavel em provar isso frente a muitos Orkuts .net da vida que viviam apresentando problemas de lentidao.

Viva PHP.

Luís Otávio Cobucci Oblonczyk

Tive a oportunidade de assistir à palestra do Elton Minetto na PHPSC Conf 2011 justamente sobre este assunto, e é absolutamente fantástico quando você vê várias pessoas que você nem conhece direito com pensamentos muito parecidos com os seus.

Na palestra ele falou que iriam ser publicados artigos com as dicas e gostei bastante da iniciativa. O mais engraçado é que quando ele falou isso eu vi pessoas comentando de forma ignorante (no sentido de desconhecimento) sobre o legado que o PHP tem.

Chego aqui e vejo exatamente isso hahaha

Conheço outras linguagens, mas sempre penso (concordando com o que o Andreson falou só de forma mais filosófica huaiahiuah): a melhor ferramenta é a que você consegue tirar melhores resultados utilizando seu esforço de forma balanceada.

Sinceramente não troco PHP por nada, e acredito que o papel dos php devs apaixonados não é combater de forma alguma esse preconceito descabido e sim instruir as pessoas, e claro garantir seu trabalho da melhor maneira (e essas dicas são fundamentais para alcançarmos o sucesso na nossa carreira).

É natural que nosso orgulho seja abalado por comentários rudimentares sobre PHP, mas precisamos apenas relevar e mostrar com ações e palavras tranquilas que NÓS acreditamos que o PHP é uma puta ferramenta de trabalho, e que se quiserem conhecer as reais possibilidades a gente pode marcar um #PHPinga pra isso ;)

Weudes

É como o nosso amigo Daniel Lima dos Anjos Pinheiro. Se fosse algum tempo atras ainda podia acreditar em alguém que só conhecesse uma linguagem, mas atualmente é quase impossível alguém conseguir trabalhar conhecendo só de uma linguagem e me desculpe se existe alguém assim troque de area pq desenvolvedor que é desenvolvedor é sempre auto-didata e fução logo não vai conhecer apenas uma linguagem. Eu acredito que o uso de algumas linguagens e plataformas em conjunto pode facilitar muito o desenvolvimento, assim como nosso amigo disse pode ser que para um projeto seja melhor um projeto em java e pra outro em php, logo a melhor linguagem é aquela que te trará melhores resultados no projeto em que trabalha. PHP sem dúvida nenhuma transformou drasticamente o desenvolvimento de conteúdo eletrônico e quebrou todos os paradigmas possíveis se tornando hoje a linguagem mais usada pra desenvolvimento web. E Douglas(hommer) antes de sair tirando conclusões sobre qualquer linguagem ou PLATAFORMA antes pesquise os vários e diversos projetos criados e então a partir dai tente dizer uma idiotice menor do que esta.

Luiz Vinicius Rangel

Excelente artigo não discordo dos itens só acho que faltou freezar um pouco mais na parte para sempre estudar..
Como disseram nos comentários esta em FASE DE DESENVOLVIMENTO como toda a internet e isso faz com que coisa nova saia a cada instante e o programador que não aprender novas técnicas para melhorar o desempenho de sua performance perderá com o concorrente que sempre tem um livros e mãos e testa códigos diariamente.
Uma dica do que eu tenho feito é criando uma “Biblioteca” minha, Classes que eu uso em algum projeto eu guardo e caso necessário eu a utilizo em outro projeto e sempre estudando eu vou aperfeiçoando as funções ao longo do tempo, hoje em dia as classes que tenho diminui em 50% o tempo desenvolvimento projeto que eu faça para web.

Excelente artigo..

away-ct

é mto faboy junto. falem ai um biblioteca boa pra faze relatoios? n tem. fpdf? a ultima vesão antes de 2011 foi em 2008……….. o php tem q melhor muitooooo

    Daniel Lima dos Anjos Pinheiro

    Uso o JasperReports + iReport no PHP. Qual o problema?

    away-ct

    ja usei, altamente bugadoooo

    Daniel Lima dos Anjos Pinheiro

    Como você diz que o Jasper + iReport é bugado se eles são escritos em Java e você defendeu o Java?

    Uso o PHP somente para chamar uma classe java que exporta o o bendito relatório para PDF.

    Além do mais…Isso é uma má cultura de dizer que relatório = PDF. PDF é uma coisa pra proteger o conteúdo do arquivo. É muito mais elegante para o usuário final ver gráficos animados (em JS ou SWF) com opção de drilldown.

    away-ct

    n aquela parada do jasper com o bridge, o eu usei a clase do link abaixo para fazer o relatorio
    http://www.simit.com.my/phpjasperxml/. geralmente o clienter quer um relatorio com a listagem dos item e tal……..n entra em coisas de grafico…..

    Adler Medrado

    Uso o JasperServer + iReport + PHP para gerar relatórios. Funciona que é uma beleza.
    Penso que nenhuma linguagem faz TUDO maravilhosamente bem, temos que ter a mente aberta e usar aquilo que resolve o problema.
    Interoperabilidade é a chave em muitos casos.

    Marcelo Rodrigues

    @away-ct, primeira coisa, falar mal da linguagem usando como argumento uma BIBLIOTECA. Se eu fosse citar o tanto de aplicação e bibliotecas em JAVA que são PORCAS, ia perder a conta. Mas isso não quer dizer que o JAVA seja uma PORCARIA. E isso é regra pra qualquer linguagem. Uma coisa é a linguagem, outra é alguma coisa escrita naquela linguagem.

    Segundo, voce pega uma biblioteca que já foi descontinuada. Porra, bater em cachorro morto é mole, né não?!

    Terceiro, até onde sei, nenhuma linguagem dá suporte a geração nativa de PDF, nem mesmo em pHP. Minto, dá suporte a manipular PDF, mas uma API de fácil utilização e com fins específicos, todas elas dependem de alguma biblioteca.

    Antes de tomar como argumento e chamar os programadores PHP de fanboy, procure bons argumentos para não falar bobagem.

    Nenhuma linguagem é cem por cento eficaz dependendo do problema que se quer resolver. Usar os melhores recursos, e isso inclui interoperar com outras linguagens, é sempre um bom caminho.

    Felipe Moura

    @away-ct cara, pelo menos a gente mostra a cara e tu q ta ai so reclamando e ninguem sabe quem é… ai fica facil né??!! mostra teu codigo ai, quero ver o q tu faz de tão melhor com java, c#, c++. So peço uma coisa, por favor, não me venha com um bilhão de frameworks, ok??!! Outra coisa estamos falando de linguagem para web!!!

    away-ct

    trabalho com php…….sei das dificuldades……

    away-ct

    eu falei
    1. o PHP tem muito a evoluir ainda. não falei, so critiquei as bibliotecas de pdf/relatorios.
    2. as bibliotecas para gerar relatorio/pdf no php são ruins.

    Fernando Pedro

    Você precisa conhecer a biblioteca mPDF. Gera pdf que é uma beleza e a partir de um código html. Muito simples e fácil de usar. E não é bugada!

    Fernando Pedro

    Ah sim, reconhece CSS também. :)
    Mais sobre ela: http://www.mpdf1.com/

    away-ct

    Fernando Pedro, grato, vou testar

    Guilherme Pereira

    Estudem:

    http://www.novatec.com.br/livros/relatoriophp/

    Obs: Não trabalho na Novatec e não estou ganhando nada por isso.

Rutales

E para aqueles que acham de PHP não dá dinheiro,

Gostaria de ver alguem com outra linguagem que ganha mais do q eu ou meus funcionarios na minha empresa.

Eu entrego minha mercedez C200 2012

    away-ct

    C# e e java

    Marcelo Rodrigues

    Cara, se não gosta de PHP, porque raios está comentando aqui. O artigo é direcionado para quem é PROFISSIONAL. Se não gosta do PHP, não quer ser um programador em PHP, beleza, fique na sua. Mas não venha aqui trollar com esse papo mais antigo que cagar sentado. Depois nós é que somos FANBOYS? Ah, tenha paciencia.

Jonil Voiski

Na maioria dos casos o q manda nao é a linguagem, mais sim a estrutura que vc criou para fazer o sistema. Depois da estrutura, escolha a melhor linguagem em que vc confie.

Artur M.

Não entendi a parte de não utilizar o else… por que não?

    Igor Pereira

    fiquei com essa duvida tbm…

    Anderson Casimiro

    O Guilherme fez uma palestra no 1º Phpubsp sobre o assunto. Seguem os slides: http://www.slideshare.net/guilhermeblanco/phpubsp-object-calisthenics-aplicado-ao-php
    A grosso modo é para diminuir os caminhos possíveis que seu código pode ter, diminuindo assim sua complexidade

    Daniel Lima dos Anjos Pinheiro

    Mais a grosso modo.. Em vez usar else, use “return” ou “throw”.

    O uso de else expõe um problema no seu código. Ele não é coeso, possui mais de uma responsabilidade em um único método, lidando com comportamentos diferentes.

    Muitas linguagems de programação já resolveram bem o problema com um bom conceito da OOP: polimorfismo. Cláusulas simples também podem ser alteradas para o que chamamos de cláusulas guarda ou retornos adiantados. Um bom exemplo de utilização de poliformismo e evitar o branching são os padrões Strategy ou o seu caso especial Null Object.

    []s,

Jhonatan Serafim

Excelente artigo, parabéns!!!
PHP foi, é, e sempre será minha inspiração na programação. Programando eu não diferencio trabalho de hobbie, procuro me atualizar sempre e principalmente ler artigos de profissionais da área, pois é assim que evoluímos profissionalmente compartilhando experiências.

PorKaria

Eu acho que esse negócio de PHP é só pra fazer sites.

André \’aCidcOde\’ Gomes

Gostei do assunto do Else, mas eu sempre caiu no mesmo dilema, hoje eu tenho um software em desenvolvimento, e estou “padronizando” ao maximo o codigo escrito, até porque vai entrar novos bons programadores na equipe. Mas refatorar tudo é não vai ser possivel, por uns bons anos..

Vou aplicando melhorias em novos modulos e quando é necessario dar manutenção a outros modulos antigo.

Walker de Alencar Oliveira

Anderson, antes de qualquer coisa, parabéns pela primeira parte do artigo.

Ótimos pontos levantados.

Quanto a discussão eterna de java/php, como muitos outros desenvolvedores das antigas já passei por várias linguagens: Basic, Clipper, Delphi, VB, ASP, PHP, C e Java.

Sinceramente, grande parte das pessoas que vejo falar mal de PHP, são profissionais que conheceram PHP4 e anteriores.

Hoje em dia eu uso java apenas para middlewares, para Desktop, já não justifica usar depois do Delphi XE, Java ME foi pro saco e descontinuado, frente as atuais APIs melhor trabalhadas. Para Web, onde o foco principal é Request e Response, nao troco PHP por nenhuma linguagem.

Atualmente a diferença entre um sistema web em PHP e Java se faz pelo profissional, em termos de linguagem não há nada para justificar.

Walker de Alencar
Arquiteto de Sistemas PHP

Márcio Krüger

justamente.. a tecnologia não interfere.. e sim o profissional.

Renato

Walker, vc passou por todas estas linguagens e não aprendeu nada.

Augusto César

Olha, trabalho com PHP a uns 3 anos, não sou Expert na linguagem e não domino OO e nem sei começar um projeto em utilizando Framework, sou um desenvolvedor tranquilo que le muito e tenta melhorar a cada projeto!!!! as vezes estranho alguns programadores de outras linguagens difamar o PHP, acho algo muito ridículo! PHP é lindo sabe se for para falar mal dele me conte um caso real de algo que aconteceu e prove o porque o PHP não foi capaz! os caras colocam comparações absurdas, camadas avançadas, termos icônicos, situações intangíveis etc… e aposto que muitos deles nem sabem do que estão falando ou nunca utilizou isso em nenhum projeto! o que sei é que o PHP me paga R$10.000,00 por mês e estou contratando mais um para pagar um bom salario, tenho um ERP que trabalha com PHP e MySql que eu alugo para empresas na minha região, o sistema me sustenta sabe e é feito na linguagem que mais amo!!! I LOVE PHP

Qual a sua opinião?