Posts

  • Microfrontends independentes através de eventos

    No universo do desenvolvimento de aplicações web, enfrentamos desafios crescentes em relação à complexidade das aplicações. Especificamente no contexto de frontend, não é suficiente que uma aplicação seja visualmente agradável e intuitiva; a aplicação precisa encapsular e interpretar uma grande quantidade de conceitos de negócio, e apresentá-los a usuários de forma competente.

    Leia mais
  • Transformação de schemas relacionais sem downtime

    Como explicamos neste artigo, uma de nossas práticas para maximizar a entrega de software é a transformação de deployments em eventos triviais, que acontecem a qualquer hora, muitas vezes por dia. Pensando nisso, não podemos aceitar que a entrega de novas funcionalidades e melhorias cause possíveis downtime, com interrupção de serviço que impacte os usuários. Nesse contexto, um problema bem específico se manifesta: como podemos aplicar mudanças nas estruturas de tabelas já existentes de bancos de dados relacionais, mantendo os microsserviços que dependem deles em funcionamento durante todo o processo? Neste artigo, vamos apresentar uma solução possível a partir de uma necessidade real: a mudança de charset de uma tabela para suportar caracteres especiais.

    Leia mais
  • Micro-benchmarks em Java

    Durante a participação em um projeto, o engenheiro de software pode ter que passar pelo processo de escolha de uma determinada biblioteca, framework ou componente dentre uma gama de possibilidades, baseado no desempenho do componente. Pode ser necessário escolher qual a biblioteca de serialização de JSONs mais rápida, qual a biblioteca de processamento de expressões regulares mais rápida, e assim por diante. Geralmente, será possível encontrar na Internet benchmarks prontos e de qualidade para os tópicos mais quentes do mundo da programação, contudo, para casos particulares, pode ser necessário que o próprio engenheiro tenha que executar seus benchmarks para ajudar no processo de decisão. Neste artigo, abordaremos alguns aspectos do processo de criação/execução de micro-benchmark em Java para o caso em que seja necessária a criação rápida de benchmarks.

    Leia mais
  • Otimizando o uso de Expressões Regulares (Regex)

    Como descrito em nossos Pilares Técnicos, nosso objetivo como time de Engineering da Axur é construir a tecnologia que permite a nossos produtos tornarem a internet mais segura. Para tal, existem etapas essenciais para prover maior segurança na Web, como o monitoramento e a inspeção de conteúdo na internet. É dessa forma que identificamos possíveis ameaças aos nossos clientes. Este artigo aborda expressões regulares (regex, do inglês Regular Expressions), uma entre tantas ferramentas que utilizamos para o combate a riscos digitais.

    Leia mais
  • Gerenciamento de Memória no Java - Containers Docker

    Nesta segunda parte do artigo sobre Gerenciamento de Memória no Java, veremos alguns aspectos mais específicos do Gerenciamento de Memória do Java quando estiver rodando dentro de containers Docker, bem como algumas abordagens para configuração de memória, e também dicas de como tratar os problemas de memória mais comuns.

    Leia mais
  • Gerenciamento de Memória no Java

    O gerenciamento automático de memória do Java pode esconder do engenheiro alguns detalhes que podem ser relevantes em certos casos de uso, como no desenvolvimento de Microsserviços e também de aplicações Serverless. Abordaremos neste artigo alguns aspectos do gerenciamento de memória do Java que podem ser relevantes para o desenvolvimento de serviços e aplicações headless. Para o desenvolvimento de aplicações interativas com UI, outras abordagens podem ser necessárias/relevantes.

    Leia mais
  • Pilares técnicos da engenharia de software na Axur

    Na Axur, o time de Engineering tem a missão de construir a tecnologia de monitoramento e reação contra riscos digitais que nos posiciona na liderança do mercado brasileiro e nos permite tornar a internet um lugar mais seguro. O desafio imposto por um ambiente online propício a ameaças e fraudes em constante evolução exige uma grande capacidade de entrega de software.

    Leia mais

Acompanhe nosso feed RSS