Como é a qualidade do código no Google?
Uma resposta direta à sua pergunta é: Google'a qualidade do código do Google é muito alta. E um tópico lateral é: a alta qualidade do código está favorecendo a empresa e não os indivíduos, e nem sempre um melhor amigo do crescimento da carreira pessoal.
Eu costumava trabalhar no Google e fui designado para um projeto muito trivial, quase sem nenhum usuário. Cada "cl" (termo do Google para código "changelist") meu foi tão minuciosamente verificado como se todos esses códigos fossem viver no eterno. Eu gastei tanto tempo para construir esses componentes menores e inúteis, sentindo apenas como um COG em uma grande máquina seguindo protocolos padrão. Como o protocolo de revisão de código era tão rígido, havia'não havia muito tempo para eu pensar no grande quadro do produto.
Então entrei em outra empresa, e tive a sorte de trabalhar em um projeto que atende milhões de pessoas e gera milhões de dólares. Curiosamente, a parte central do código que lida diretamente com essa lógica de negócios é extremamente confusa no padrão Google, porque testamos as idéias e fazemos iterações muito rápido, e não houve tempo suficiente para cuidar desses padrões triviais. O código ainda é saudável e robusto, mas não se preocupa com detalhes para o Google's níveis como a nomenclatura das variáveis. Eu me sentia bem porque podia me concentrar mais em fazer iterações rápidas e testar mais as minhas idéias. Sendo ambas experiências de aprendizagem, mas acho que ser capaz de aprender mais sobre detalhes não triviais é mais valioso para mim.
Interessantemente, mais tarde colaborei com outra equipe na mesma empresa que não estava lidando com um componente crítico do negócio. Era um componente que lidava com um cenário extremamente idiota. O seu desenvolvimento estava bastante ultrapassado e havia' não havia muito movimento na sua lógica. Acontece que o seu padrão de codificação era tão rígido que até me fez lembrar o do Google. Eles prestaram extrema atenção a todos esses detalhes. I'diria que eu era 5x mais lento para fazer um trabalho de colaboração com eles.
Em certo sentido, isso me deu a percepção de que quando o trabalho é tão importante e precisa de desenvolvimentos rápidos, havia' não havia tanto luxo para padrões de código extremamente altos. Uma vez que o desenvolvimento chega a um ponto de atraso (o caso do Google's na maioria das suas equipas), algumas pessoas têm de justificar o seu trabalho tornando-o mais difícil e mais lento de fazer, como por exemplo, introduzindo uma barra de alta qualidade desnecessária.
Também para o desenvolvimento da carreira pessoal, penso que quanto mais rígido for o padrão de codificação, mais provável é que seja tratado como um COG num grande gasoduto de coração frio. A empresa aplica o padrão de codificação para que haja menos variação da sua parte, para que os seus trabalhos sejam padronizados e previsíveis. Mas uma grande oportunidade de aprendizado realmente vem de ser permitido fazer algo que'não está padronizado, e aprender com os resultados imprevisíveis.
Artigos semelhantes
- Em termos leigos, o que é código de byte, código de montagem, código de máquina e código fonte?
- Quais são as diferenças entre Código de Máquina, Código de Byte, Código de Objeto e Código Fonte?
- Qual é a diferença entre bytecode, código nativo, código de máquina e código de montagem?
- Como usar um cupom/código AliExpress se o AliExpress não tiver uma caixa de cupom/código no checkout