23 de janeiro de 2019

Projeto “K”: Evolução, filhotes e daemons!

Já faz algum tempo desde a última vez que escrevi sobre o “K” e portanto não apenas me sinto um pouco culpado por isso, mas as pessoas podem ter a idéia errada do que está acontecendo (e se algo está ou não acontecendo de fato).

O Desenvolvimento do projeto passou um período considerável parado por alguns motivos que, pra mim, são bem conhecidos: Além da correria “normal” de trabalho o segundo semestre do ano costuma ser de um ritmo insano pra mim: Eventos, aulas, turmas de pós-graduação, viagens, PHP Conference Brasil e por aí vai.

Ainda assim recentemente consegui retomar o desenvolvimento em virtude da minha saída de um projeto para um cliente. A primeira lição que fica disso tudo é… documentação. A partir do momento em que você possui as coisas bem documentadas se torna incrivelmente fácil e confortável pausar um projeto, mesmo que – como aconteceu com o “K” – seja por meses.

Algumas novidades que gostaria de compartilhar com vocês:

  1. O projeto nasceu sem framework definido. Isso foi proposital porque eu queria entender exatamente como funciona um dos mecanismos principais, algo que o mercado não costuma conversar com frequência. Após algum tempo de desenvolvimento sem framework o K agora está sendo produzido em cima do Zend Framework 3, o meu framework preferido. Isso facilitou diversas coisas e deu uma outra organização ao código-fonte do projeto.
  2. O “K” está rendendo 3 projetos-filhotes, um que já lancei oficialmente, JHRW, um wrapper para requisições HTTP em JavaScript; e outros dois sobre os quais ainda não posso falar muito. Não vou falar sobre eles ainda por um motivo muito simples: a verdadeira utilidade – e portanto a razão de existir – de ambos ainda é incerta. Acredito que tenham real utilidade e portanto serão de fato lançados, mas ainda falta certeza sobre isso e maturidade a ambos. Caso estejam curiosos(as), um deles também é feito em JavaScript, enquanto o outro é feito em PHP.
  3. Avancei bastante em um ponto que não compreendia totalmente: Gerenciamento de dependências client-side. Após uma rápida pequisa com o pessoal de JS no Twitter optei pelo Yarn. É, basicamente, um “composer pro lado cliente”. Bem interessante e eficiente. Estou seriamente pensando em usar Vue, embora por enquanto seja apenas uma idéia. Ainda não comecei o trabalho pesado de client-side para ter certeza. Para a interface de escrita de [SEGREDO =P] estou bem impressionado com o Summernote. Uma intreface bem clean.
  4. O “K” usará um daemon, um processo em background, para a parte de [SEGREDO!!! :D]. Tive um processo bem interessante para decidir como ia implementar isso. Sabia que o daemon precisaria ser invocado via HTTP (não por obrigatoriedade, mas por simplicidade). Pensei em desenvolver uma API pra isso e a idéia ainda não está completamente descartada para o futuro, mas pelo menos no momento o daemon terá uma função, e portanto um access point, únicos. Por conta disso terminei por decidir criar o daemon como um módulo ZF3 com uma rota única. Não é uma solução perfeita por vários motivos mas pelo menos por enquanto é boa o bastante. O daemon eventualmente terá um repositório separado e será integrado como um submódulo git.

A maior certeza que tenho hoje é que criar esse projeto foi uma das melhores idéias que já tive. O projeto me fez pensar em diversas questões interessntes e muitas vezes incomuns, causando portanto uma evolução profissional.

E acredito sinceramente que quando for lançado causará (pelo menos alguma) “sensação”. Espero não estar errado. =)

Share

Galvão

Presidente da ABRAPHP – Associação Brasileira de Profissionais PHP, Diretor da PHP Conference Brasil, Contribui para o desenvolvimento do PHP (traduções, decisões). Atua como Zend Framework Evangelist para o ZTeam, da Zend. Professor Convidado de Pós-Graduação, PR e SC. Mais de 22 anos desenvolvendo sistemas e aplicações com interface web (mais de 17 destes com PHP). Palestrante em eventos nacionais e internacionais, Instrutor de cursos presenciais e a distância.

You may also like...

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *