Blog EspecializaTi
Carlos Ferreira Por: Carlos Ferreira Comentar

Assuntos que todo desenvolvedor PHP precisa dominar

Assuntos que todo desenvolvedor PHP precisa dominar

Ao levantar esse tema pode gerar muitas polêmicas, porque nem todos tem o mesmo ponto de vista e opinião, o que é ótimo porque pode abrir brechas para ótimas discussões de alto nível.

A ideia deste artigo é basicamente passar um pouco da minha visão e experiência focada trabalhando a mais de 8 anos com PHP.

Os temas que levanto são na minha opinião de extrema importância e fazem total sentido no mundo real corporativo. Separo em três partes, a primeira itens que são temas obrigatórios na segunda parte os assuntos que acredito que são recomendados e por último assuntos que são diferenciais na carreira de um(a) programador(a) PHP, caso queria se aprofundar um pouco mais. Vamos lá!

 
 

Temas Obrigatórios

Os temas que vamos levantar agora são assuntos obrigatórios, sem os conhecimentos destes assuntos é impossível dizer que é um(a) programador(a) PHP.

 

Básico

Obviamente é impossível dizer que desenvolve com PHP se não domina nem o básico da linguagem, neste ponto inclui preparar o ambiente, criar variáveis, comentários de código, loops de repetição, condições (if/else/elseif/endif), funções, arrays, operadores matemáticos, formulários e manipular arquivos e diretórios.

 

Orientação a Objetos

Outro assunto que precisa estar muito presente e ativo na rotina de qualquer desenvolver PHP é dominar 100% a orientação a objetos, este é um assunto extremamente importante e vai servir como pilar para aprofundar em outros temas da linguagem. Precisa saber criar classes, objetos, métodos da classe, transferir dados de um objeto para outro, funções mágicas da orientação a objetos, encapsulamento e polimorfismo.

 

Namespace

Este é um tema de extrema importância, organizar projetos seguindo a PSR-4 e trabalhar com namespace para não ter problemas com classes com nomes iguais.

 

DI

Certamente você já em algum momento já trabalhou com DI (Dependency Injection) mesmo sem saber, é um assunto simples, mas ter a ciência deste tema, é uma obrigação de qualquer programador(a) PHP.

 

PDO

Essa interface de manipulação de banco de dados levou o nível do PHP para um próximo nível, porque essa interface abstrai muito do trabalho, sendo assim fica muito mais flexível trabalhar com diferentes bases de dados utilizando a mesma estrutura.

 

MVC

Há muito tempo o MVC é um padrão para desenvolvimento Backend, e este é certamente um assunto que não pode falar no leque de conhecimentos. O MVC vai muito além de separar a aplicação em camadas, e sim definir responsabilidades e ter uma estrutura mais robusta e profissional.

 

COMPOSER

É o gerenciador de dependências do PHP, o composer facilitou bastante a forma de utilizar pacotes de terceiros em suas aplicações. Antes do composer, se tivesse que utilizar algum código externo, teria que: baixar, testar a compatibilidade e etc, já com o composer este processo ficou muito mais simples, porque o próprio gerenciador de dependências faz isso. Outro benefício do composer é que ele tem o autoload para carregar arquivos de classes de um projeto de forma profissional e simples.

 

Tests

Este é um assunto que muitos programadores se esquivam, mas, trabalhar com tests especialmente em aplicações de grande porte não significa perca de tempo, muito pelo contrário é ganho de produtividade em longo prazo. Porque trabalhar com tests pode prever erros, te ajudar a ter uma ideia geral da aplicação, fica mais fácil aplicar correções e também incrementar novas funcionalidades, sem quebrar o que já funcionava antes.

 

PSRs

Este é um tema super essencial, porque as PSRs definem um estilo visual e padrão para as aplicações PHP, seguir essas recomendações ajuda a comunidade manter um código padronizado e certamente muito mais agradável.

 

Segurança

É muito comum ouvir a seguinte frase “vou desenvolver agora e depois vejo a que estão de segurança”, essa frase é um suicídio, a questão da segurança deve estar em pauta desde o primeiro estágio do desenvolvimento de uma aplicação com PHP. A parte de segurança deve ser pensada em todos os pontos da criação de um projeto, desde o planejamento.
O PHP não é uma linguagem insegura, ou menos segura que outras, mas a falta de habilidades e conhecimentos com os recursos disponíveis cria uma grande margem de aplicações vulneráveis.

 
 

Recomendado:

Neste tópico vou listar alguns assuntos que são recomendados, ao dominar estes temas você vai para outro nível, e certamente terá muito mais portas abertas devido as habilidades mencionadas mais adiante.

 

Web services

Criar APIs Restful é algo que certamente quando estiver desenvolvendo hora ou outra precisará implementar. Por isso aprender a criar Web Services de forma segura trabalhando com os verbos HTTPs corretos podem ser algo muito recomendado.

 

DDD

É uma técnica para organizar projetos orientados a domínios. Não é considerado ainda um Pattern como o MVC, mas provavelmente no futuro será. Essa forma de organizar projetos torna o processo de organização de um projeto muito mais amigável, especialmente se estiver trabalhando com um projeto grande.

 

Design Patterns

O PHP diferente do que se pensa não é terra sem lei, sim existem diversos padrões de projetos para criar aplicações mais profissionais. A falta de conhecimento destes temas pode colocar em risco a fama da linguagem, não pelos recursos mais sim pela inabilidade de quem utiliza. Portanto, estudar os padrões da linguagem é um grande diferencial.

 

Algum Framework

Algumas pessoas se doem quando toca neste assunto de Frameworks, já outros não sabem fazer nada sem um framework. A realidade é que precisa ter um equilíbrio entre usar e não usar.
Particularmente sou muito favorável ao uso de um framework, inclusive utilizo sempre um framework para criar projetos grandes.
Mas, antes de ficar 100% preso a um framework é muito importante ter domínio dos recursos da linguagem, porque assim será mais fácil de ter uma nova opção. Acho muito útil a ideia de criar um mini-framework pessoal para projetos pequenos, porque isso te dará uma ideia de como funciona um framework PHP.

 
 

Diferenciais:

Neste tópico de diferenciais qualquer habilidade extra já encaixa como um diferencial a mais, e essa habilidade pode ir desde algo técnico ou algum tema pessoal. Vale desde se comunicar melhor, liderança, organização até conhecimentos de outras linguagens.

 

Servidores (deploy)

Quanto maior o conhecimento e servidores melhor. A realidade é que não basta simplesmente saber criar uma aplicação PHP incrível, é necessário ter um mínimo de conhecimento para criar um ambiente digno para comportar e atender a aplicação. Conhecimentos em Cloud atualmente é um tema indispensável.

 

JavaScript

Já tentou criar uma aplicação web totalmente sem o uso de JS? Aposto que não.
Até é possível criar uma aplicação pequena, mas se pensarmos em aplicações de médio e grande porte o uso de JS é praticamente impossível.
Não só porque JS é uma linguagem incrível e simples, mas porque dá muito mais interatividade na pagina e obviamente melhora muito a usabilidade e experiência do usuário com a página web. Portanto, domine JavaScript, e algum dos seus milhares de frameworks (Recomendo o Vue JS).

 

SQL

Ter conhecimentos de banco de dados também é outro grande diferencial, a realidade é que precisa ter um mínimo de noção para conseguir desenvolver, mas, quanto maior o nível de habilidade com bancos de dados SQL melhor.

 

NoSQL

Outro diferencial é saber trabalhar com NoSQL, ou seja, bancos de dados não-relacionais. Com esse tipo de arquitetura é possível escalar aplicações de forma inimaginável, portanto este tema também surge como um grande diferencial.

 

Concorda, discorda? Quer acrescentar algo? Comente!!!

 
 

Carlos Ferreira

Sobre o Autor:

Carlos Ferreira

Carlos Ferreira é Analista de Sistemas Experiente, Empreendedor, Fundador da empresa EspecializaTi. Certificações: Comptia Linux +, LPI, Novell Certification.

Todos os direitos reservados © 2018 - EspecializaTi. É proibida a reprodução total ou parcial deste conteúdo.