Você acabou de obter seu diploma de CS ou se formou no bootcamp e passou meses ou anos aprendendo a escrever código eficiente, praticando para entrevistas e construindo projetos de portfólio. Finalmente, você aceitou uma oferta e está entusiasmado – você agora é um Engenheiro de Software
. Você marcha em seu primeiro dia, com a cabeça erguida. E então, em sua primeira semana de trabalho, você percebe o quão pouco você realmente sabe.
Em sua busca para se tornar um desenvolvedor, você aprendeu a escrever códigos elegantes e de alto desempenho que podem resolver qualquer problema bem definido. No entanto, para oferecer suporte e expandir efetivamente um aplicativo da web, você precisa entender as ferramentas, estruturas e fluxos de trabalho que permitem que sua equipe colabore e implante um aplicativo ativo (“produção”).
Essas habilidades são difíceis de adquirir durante o estudo ou trabalho em projetos pessoais, e muitas vezes não são expandidas em bootcamps ou programas de ciência da computação. Não se preocupe! Este artigo servirá como um curso intensivo para as muitas coisas que você precisa saber para ter sucesso como desenvolvedor em seu primeiro emprego – além de escrever código.
O porquê : de projetos pessoais ao código de produção
Ao trabalhar em projetos pessoais ou de portfólio, você provavelmente implantou e manteve o código. Então, qual é a diferença entre empurrar mudanças em seus projetos pessoais e contribuir para a base de código da DoLitter, a startup de entrega de areia para gatos em rápido crescimento da qual você acabou de ingressar?
Carga de usuário : DoLitter pode ser acessado por centenas ou até milhares de usuários de todo o mundo ao mesmo tempo. O tempo de inatividade pode custar à empresa centenas de dólares por minuto em pedidos, manchar a marca e irritar os clientes existentes.
Escala: DoLitter é um serviço robusto com um aplicativo voltado para o consumidor, uma API para aplicativos móveis e nativos e integrações com outros jogadores importantes do setor. Conforme a equipe e a base de código crescem, o código precisa ser bem arquitetado e documentado para que outros desenvolvedores possam contribuir de forma eficaz. Antes de qualquer alteração chegar aos usuários, ela precisa ser testada exaustivamente em um ambiente o mais próximo possível da produção para garantir que não atrapalhe os recursos existentes e funcione em vários dispositivos.
Segurança : DoLitter obedece às leis internacionais de privacidade, como o GDPR , e trabalha com grandes parceiros corporativos, que seguem regras rígidas sobre como seus dados de usuário devem ser tratados. Se alguma coisa der errado, você precisará de um software de monitoramento para detectar vulnerabilidades ou violações de dados o mais rápido possível e um registro de servidor robusto para revisar exatamente o que deu errado.
Acessibilidade: Nem todos os usuários DoLitter têm as mesmas habilidades visuais, auditivas e motoras e podem usar o DoLitter com dispositivos auxiliares, como um leitor de tela. É fundamental que o aplicativo seja igualmente acessível a todos os seus usuários, seguindo um padrão como as Diretrizes de Acessibilidade de Conteúdo da Web.
Confiabilidade: os usuários – principalmente os pagantes – esperam que o site seja funcional, acessível e seguro – o tempo todo. O DoLitter precisa armazenar dados de negócios com segurança e fazer backup deles regularmente, de modo que, se um servidor de banco de dados travar, por exemplo, você possa restaurar rapidamente os dados de outro.
Comunicação : Alcançar os objetivos que delineamos até agora requer a colaboração com outros desenvolvedores, designers e gerentes de produto. Você pode criar, codificar e dar suporte a um projeto pessoal sozinho. No DoLitter, no entanto, você não pode fazer tudo sozinho – e seus colegas de trabalho são o seu melhor suporte! Aprender a se comunicar de forma eficaz com outros desenvolvedores, como buscar e oferecer ajuda e como delegar trabalho, são aspectos essenciais (e muitas vezes mais gratificantes) de trabalhar em uma grande equipe – um tópico crucial que poderia formar a base para um todo outro artigo!
O como: uma viagem pelos processos
Então, como uma equipe de desenvolvimento atende a todos esses requisitos elevados? Com toda uma série de ferramentas e processos! Vamos examinar a diferença entre como você introduziria uma mudança em um projeto pessoal e todos os processos envolvidos em enviá-lo para a base de código DoLitter.
Dependendo do tamanho da equipe e da base de código, seu local de trabalho pode não usar todos eles ou pode ter ainda mais ferramentas de nicho. Não se preocupe em se lembrar de todos os nomes e siglas. Concentre-se no problema que cada ferramenta está tentando resolver e, se for uma ferramenta que você vê com frequência, pesquise mais.
Fluxo de trabalho Git
Se o código é como você faz alterações no software, um sistema de controle de versão como o git (e alternativas menos populares como o Mercurial e o SVN) é como você rastreia e compartilha seu trabalho. Quando você trabalha em seus próprios projetos, git pode ser uma ferramenta útil para reverter para versões anteriores de seu código ou compartilhar seu código com outras pessoas. No DoLitter, no entanto, seu poder é muito amplificado.
Com o git, (e suas interfaces web intimamente associadas como GitHub e GitLab ), você pode compartilhar partes do seu trabalho, ter seu código revisado, verificar em que outros desenvolvedores estão trabalhando, mesclar seu trabalho com o de outros e até mesmo visualizar commits individuais. O Git também pode ajudar a mesclar mudanças e resolver conflitos quando várias pessoas trabalham (e se comprometem) no mesmo arquivo. Tudo isso ajuda DoLitter a garantir que você contribua com código de alta qualidade que se beneficie do contexto de seus colegas.
Assim que estiver confiante em suas alterações de código, você envia uma solicitação pull (uma mudança com a qual deseja contribuir para a base de código) e o novo código será revisado por vários membros da equipe – às vezes, colegas com conhecimento de domínio específico ou foco , e às vezes qualquer pessoa disposta a dar uma olhada.
Enquanto aprende, você provavelmente se deparou com três atividades principais no git: push, pull e commit de código. No trabalho, você precisa se sentir confortável com:
criação de ramos, que delineiam um novo recurso ou linha de trabalho
enviar solicitações pull (“PRs”) para que suas altera
.png)
.png)
.png)
.png)