Dizem que o tempo voa depressa quando nos estamos a divertir. Para mim, pessoalmente, a parte divertida é especialmente importante no quotidiano das empresas em fase de arranque e de crescimento. Faz com que me divirta, independentemente de quanto dos meus recursos energéticos internos são consumidos pela azáfama semanal.
(No próximo episódio, irei abordar o tema do humor no local de trabalho para o aprofundar um pouco mais, só porque posso. "Porquê tanta seriedade?").
Por falar em tempo, passaram duas semanas desde a minha última publicação, pelo que está na altura de publicar o quarto episódio do nosso #TheCodestReview série.
Lista dos temas que abordamos esta semana:
- Ficar viciado em React
- Tudo o que você sempre quis saber sobre o cache de exibição em Carris
- O Diretor de Engenharia como mestre recrutador
O comentário sobre o cache de visualizações foi feito pelo nosso programador fullstack e o podcast do diretor de engenharia foi comentado pelo meu humilde eu.
Como um conhecido mestre da aplicação Paint e admirador de GIFs e memes, que são como chocolates Merci - dizem mais do que 1000 palavras, decidi que, a partir de agora, vou acrescentar aqui um sabor a isso. E adivinha?
Darth Sidious Pensas que me podes deter GIF de GIFs do Darthsidious
Da última vez, decidimos dar destaque ao StimulusReflex, que está a chamar a atenção na Rubi comunidade como um novo miúdo no bloco, sendo uma alternativa à utilização de Javascript em projetos Rails para evitar exageros.
Ver: StimulusReflex aka ReactiveRails
Para que seja uma batalha em pé de igualdade, quis deixar que o React desse um golpe no Stimulus. Como também sou um conhecido homem de honra, que faz sempre o que diz e cumpre as suas promessas, aqui vai:
No próximo episódio, tenho o prazer e o entusiasmo de anunciar que teremos um post convidado do engenheiro React da Vinted.com. Para aqueles de vocês que nunca ouviram falar de Vinted (chances baixas, mas ainda possíveis), Vinted é um mercado de moda originário de Vilnius, Lituânia, que atingiu uma avaliação de unicórnio em 2019. A plataforma é construída sobre sólidos Ruby on Rails apoiada por React na parte frontal.
Nota: a minha mulher está a adorar a Vinted e deixou quase completamente de usar o OLX como principal destino para arrumar o nosso guarda-roupa e vender roupa usada (era uma verdadeira fã incondicional) =. VOCÊS ESTÃO A FAZER TUDO BEM!
Tenho o privilégio de dar as boas-vindas ao primeiro colaborador convidado da nossa série:
Meryl Streep Sim GIF de GIFs de Merylstreep
Ugnė Kryževičiūtė - Engenheiro React da Vinted
Ao ler o título do recente podcast da LadyBug ("Getting Hooked On React"), esperava que fosse sobretudo sobre Ganchos React. No entanto, embora não tenha se aprofundado em Hooks, o podcast forneceu uma excelente introdução aos conceitos básicos da biblioteca React para JavaScript.
Ali e Emma, do podcast LadyBug, discutem os prós e contras do React - desde a disposição geral da biblioteca e os seus benefícios até discussões animadas sobre componentes, tratamento de dados ou o Ciclo de vida do ReactTudo apresentado com uma pitada de experiência pessoal. Vale a pena ouvir para qualquer programador de front-end que ainda não tenha tido a oportunidade de experimentar as maravilhas do React.
O meu primeiro encontro com o React foi há cerca de três anos, quando comecei a minha jornada como programador. Embora Ali e Emma sugiram que o React possa parecer confuso no início, pela minha própria experiência, achei-o relativamente fácil de começar e provavelmente o mais fácil de avançar em comparação com outras estruturas de front-end. Existem muitos tutoriais, artigos, bibliotecas de código aberto e outros tipos de materiais de aprendizagem disponíveis em todo o lado. No entanto, é preciso estar ciente do desenvolvimento ativo do React quando se analisa esses recursos. Este episódio do podcast da LadyBug não é uma exceção - alguns aspectos e métodos mencionados já foram descontinuados há algum tempo. Assim, é melhor seguir os conselhos da própria Emma e consultar a documentação mais recente.
O React evoluiu e amadureceu muito, tornando código escrever ainda mais fácil com Hooks, que permite usar métodos de estado e ciclo de vida sem escrever componentes de classe. Mas para iniciantes - como Ali observa com precisão - a variedade de maneiras de escrever React (como componentes de classe/funcionais/ganchos) adiciona complexidade adicional, pois às vezes pode ser difícil visualizar o que está acontecendo. Além disso, ter de destilar o que precisa e encontrar informações relevantes sobre a implementação do código pode ser um desafio.
Como um dos principais benefícios do React, Ali aponta o facto de ser baseado em componentes, permitindo a modularização do código e facilitando o trabalho em conjunto com outros programadores. Além disso, a capacidade de utilizar JSX é uma grande ajuda visual quando se trabalha com UI no código JavaScript - não é necessário ter ficheiros HTML separados!
Ali e Emma também resumem muito bem a flexibilidade que um sistema de componentes proporciona. Um excelente exemplo prático é o da minha empresa Vinted, que registou um rápido crescimento em relação ao produto bem como o equipas de desenvolvimento que trabalharam nele nos últimos anos. O React proporcionou enormes benefícios - permitiu nós para escrever código muito mais limpo, utilizar componentes de IU reutilizáveis e tornou o nosso código mais fácil de testar.
No geral, este episódio do podcast LadyBug proporciona uma discussão animada e encantadora sobre os principais aspectos do React. Recomendo-o a qualquer pessoa que esteja a iniciar a sua viagem com o React. Repleto de exemplos engraçados e analogias com a vida real, o episódio "prende" perfeitamente a atenção de todos os ouvintes, incluindo a minha.
Infelizmente, as visualizações no Rails estão a ficar mais lentas com o tempo. Isso ocorre porque a quantidade de objetos armazenados no banco de dados cresce. Isto causa tempos de consulta mais longos e, claro, um processamento mais longo se estiver a fazer algo com cada um dos objectos. Quando isso acontece, não há nenhuma chance, pois existe o cache de visualizações do Rails.
Graças a isto, pode poupar bastante tempo carregando dados pesados da base de dados a partir da cache (carregando um único ficheiro html guardado em vez de consultar a base de dados e processar objectos). Pode também torná-lo menos dispendioso no caso de diferentes parciais e objectos - claro que se os objectos não mudarem com muita frequência. Também pode tentar manter os objectos em cache em partições separadas - e poupar, por exemplo, 19 de 20 mensagens a serem processadas (possivelmente com muitos campos).
Por padrão, o cache do Rails usa o file_store e mantém os dados em cache nas pastas. Mas ele não está excluindo entradas de cache antigas (que podem ter expirado há muito tempo). Isso pode levar ao estouro da quantidade de arquivos ou até mesmo ficar sem espaço livre em um servidor. O outro método é memory_store que também tem algumas desvantagens (já que o cache é mantido num único servidor). Também pode exceder a quantidade de RAM mantida no servidor (ou a falta de cache se esta for apagada a toda a hora). É por isso que o melhor mecanismo de cache de alta escala é o método Memcached/Redis. Isto dá-lhe a oportunidade de utilizar uma máquina separada para manter a cache que pode ser utilizada por todos os servidores. Graças a isso, não haverá problemas de falta de cache ou de espaço em disco num servidor.
A cache no Rails é mantida com base num identificador - que pode ser dado imediatamente como uma string ou gerado automaticamente quando passa um objeto para a função de cache. No caso dos objectos, é mais frequentemente o atributo updated_at. Também é possível fornecer uma chave estática a partir de parâmetros de objetos.
Um método diferente de armazenamento em cache é utilizar Javascript para atualizar um campo que é alterado uma vez por dia. Desta forma, é possível ter sempre uma data válida, sem ter de atualizar o sítio Web, que pode ser muito grande ou lento a ser executado.
Para não vos estragar a surpresa, o painel de discussão sobre o tema do papel do diretor de engenharia no processo de contratação é extremamente valioso para todos os que se perguntam quando é a altura certa para o líder tecnológico entrar no ciclo de entrevistas. Em Codest, nós praticamos o que os membros do painel pregam e o nosso CTO é o primeiro ponto de contacto com engenheiros candidatar-se a nós, enquanto na fase seguinte as entrevistas são efectuadas por equipa gestores com os quais os potenciais novos membros da equipa irão trabalhar em estreita colaboração. Alguns conselhos práticos que pode aplicar de imediato para melhorar o seu jogo de contratação como gestor de engenharia:
-
Reveja o seu processo e certifique-se de que entra no fluxo o mais cedo possível, sendo idealmente o primeiro ponto de contacto para os candidatos, uma vez que as primeiras impressões desempenham um papel fundamental na forma como a sua empresa é vista pelos melhores talentos.
-
Contacte os gestores de contratação altamente eficazes da sua organização (talvez aquele que o contratou no passado) e pergunte se pode acompanhar algumas das suas entrevistas planeadas, verificar as suas técnicas, pedir dicas. Observe e aprenda. Entre em cada entrevista com uma curiosidade genuína pelos candidatos.
-
Procurem potencial e contratem por potencial e capacidade de crescimento rápido.
-
Fale sobre os seus anúncios de emprego com todos os seus engenheiros e pergunte-lhes se se candidatariam ao emprego. Se não, pergunte o que é que não presta e aplique o feedback deles no anúncio de emprego de construção 2.0 que está prestes a colocar nos painéis de emprego.
-
Encare a primeira entrevista como uma oportunidade para criar uma óptima relação com os seus potenciais futuros colegas.
Encorajo-vos a ver o painel de vídeos na íntegra, mas se gostam de podcasts e gostam de ouvir enquanto conduzem, fazem exercício ou lavam a loiça, aqui têm também um Spotify ligação.
Muito obrigado por lerem e, se chegaram até aqui, agradeço o vosso tempo e qualquer comentário (quer seja positivo ou negativo) é mais do que bem-vindo em LinkedIn ou para o meu correio eletrónico.
Em breve, o próximo episódio!
GIF de dança "Yippie IWill See You Soon Dancing de GIFs de "Yippieiwillseeyousoon
Ler mais:
TheCodestReview #3 - sumo semanal de engenharia de software
TheCodestReview #2 - sumo semanal de engenharia de software
TheCodestReview #1 - sumo semanal de engenharia de software