PHP moderno é bonito e produtivo

Quase 8 meses atrás, mudei de projetos python / java para um projeto em php (me ofereceram condições que seriam tolas de recusar), e de repente não senti a dor e o desespero pelos quais os ex-desenvolvedores do PCP estavam pregando. E aqui está o que eu penso sobre isso.



O que é o que


Para começar, deixe-me contar minha experiência em desenvolvimento e a experiência de ferramentas em outros idiomas, para que você entenda com o que estou comparando.

Python Quando se trata de projetos em python (geralmente no Django), temos uma plataforma que permite a você de forma conveniente e simples aumentar a funcionalidade, criar servidores rest-api, executar sharding do sistema e muito mais. A lógica da estrutura é muito clara e direta. Até um desenvolvedor completamente ecológico pode, em algumas horas, anotar um pequeno blozik com um painel de administração. Além disso, a documentação do Django é uma da mais alta qualidade que eu já vi. A tudo isso, é adicionado o açúcar da sintaxe python, o que ajuda a implementar certos padrões com bastante elegância. Se passarmos do Django para Tornado / aiohtpp / Twisted / Flask, etc., a dor começará, porque o código neles é muito mais desagradável do que no Django.

Java Se estamos falando de Java, por exemplo, Spring, esses são sistemas que causam dor anal porque forçam você a configurar tudo o que pode ser configurado. O limite de entrada é muito alto, um grande número de nuances que você precisa ter em mente, além da própria sintaxe Java obriga a escrever construções muito volumosas (verdade para todos os projetos no sexto Java). Mas, como recompensa, obtemos sistemas muito confiáveis ​​e flexíveis que mais de uma dúzia de programadores podem sobreviver com mãos muito medíocres.

Quanto ao PHP


Antes de começar o trabalho, li um livro: Matt Zandra - objetos, modelos e técnicas de programação do PHP, e certifiquei-me de que o PHP, em geral, sem nenhuma dor específica, permita implementar certos padrões de desenvolvimento. I.e. em PHP, você pode escrever o código correto, que não será muito diferente do que obtemos em Python / Java.

Zend Framework 1


O projeto de serviço interno me encontrou com o Zend Framework 1 no PHP 5.3. Devo dizer imediatamente que muitas decisões nesta plataforma parecem muito controversas, e a linguagem PHP 5.3 tem restrições para estabelecer o tipo de retorno de funções (métodos), no entanto, você entende rapidamente onde está o que está, como é lançado e como é formado.

Por exemplo, se estamos considerando o Zend Forms, eles praticamente fazem o mesmo trabalho que os formatos clássicos no Django. A sintaxe para a construção de consultas na tabela DB Zend DB não causa nenhum negativo e, obviamente, funciona.

I.e. literalmente, em 2 a 3 dias, fui capaz de entender completamente e comecei a escrever um código que fazia o que era necessário de uma maneira completamente adequada.

Symfony 3.4


Após 3 meses, fui transferido para outro projeto no Symfony 3.4 e PHP 7.1 - e isso é apenas uma bomba. Sinceramente, tive a sensação de que eles me deram canetas Django, onde adicionaram a confiabilidade do sistema a partir do Java.

  • Mecanismo de modelo Twig - um clone completo do Jinja do Django.
  • Doutrina ORM - um análogo do Hibernate
  • Anotações Symfony - um análogo de decoradores de Python
  • Fiação automática do Symfony - ainda mais óbvio que o DI na primavera
  • Configurações óbvias de sigilo
  • Construção conveniente de clientes resto-APi.
  • Ortografia conveniente de um trabalho para a coroa (nesse caso, eles são chamados de comandos do console na sinfonia)
  • Depurador conveniente e assistente de console.

Além disso, a própria linguagem PHP 7.1 já permitia especificar tipos de retorno, criando ganchos com várias exceções e outros nishtyaki. E digamos que absolutamente qualquer desconforto ao trabalhar com a ferramenta desapareceu. E em alguns lugares tudo funciona de maneira ainda mais conveniente.

O único fator negativo é a falta de documentação. I.e. os casos mais simples são indicados na documentação, e tudo o que é mais interessante já requer a inserção do código-fonte do symfony, e a estrutura surpreendentemente não é tão popular no Google como gostaríamos.

Portanto, não entendo absolutamente por que as pessoas cospem no PHP quando ele funciona e é bem legal.

Existe alguma diferença


Também quero observar que, depois de trabalhar em 3-4 estruturas da web modernas, você entende que tudo funciona de maneira semelhante em todos os lugares. Os nomes e implementações diferem, e os conceitos gerais são de 1 a 1. Portanto, digamos, se você trabalhou no Django, a transferência para o php Symfony / .Net CORE MVC é possível sem muita dificuldade por alguns meses.

PS: se ainda sou cego e burro, comente.

Source: https://habr.com/ru/post/pt445380/


All Articles