Criar software com uma estrutura versus biblioteca: o que os recrutadores de tecnologia precisam saber

Publicado: Última actualização:
estrutura vs biblioteca

Como recrutador técnico, já não basta saber apenas os nomes de certas linguagens de programação - você também deve entender o básico de como o software é feito.

Quando se trata de criar um software de produção, há dois factores muito importantes a considerar: O primeiro é desenvolver aplicações cada vez mais complexas. O segundo é que os programadores estão sempre tentando ser mais eficazes e mais eficientes em seu trabalho. Como resultado, cada equipe de programadores deve decidir se (ou não) construir uma aplicação usando uma estrutura de software ou uma biblioteca de software (ou um número de bibliotecas). 

Pela mesma razão, você precisa estar ciente de quais bibliotecas e estruturas são relevantes para um determinado posto que você está recrutando. Desta forma, você será capaz de procurar desenvolvedores com o melhor ajuste para essa posição. Não só isso, mas é óbvio a quase todos os candidatos quando os recrutadores ainda não fizeram a sua pesquisa.. Compreender plenamente como linguagens de programaçãoe as bibliotecas trabalharão em conjunto, o que o fará realmente destacar-se como um recrutador (assim como fazer você se sentir mais confiante ao falar "tech") com os candidatos.

A diferença técnica entre uma estrutura versus uma biblioteca?

Como você pode ver no gráfico abaixo, a diferença técnica entre uma estrutura versus uma biblioteca é a questão de quem está no controle de certas ações-chave durante a criação do software (e quando o software realmente funciona).

Quando um desenvolvedor de software usa um recurso de uma biblioteca, o desenvolvedor está no controle - em outras palavras, o código do desenvolvedor está no controle total da seqüência de eventos. No entanto, com uma estrutura, a direção de controle é invertida (isto é conhecido como Inversão de Controle), pois a estrutura controla o desenvolvedor - neste caso, a estrutura controla o código do desenvolvedor. Em certo sentido, um framework funciona da mesma forma que o chamado Princípio de Hollywood: "Não nos chame, nós chamamos você".

estrutura vs bibliotecaFonte: Fatos Morina

Então o que são exactamente estruturas versus bibliotecas? Em particular, qual é a diferença entre estes dois conceitos?

Qual é a finalidade das estruturas e bibliotecas?

Como você provavelmente sabe, o código da aplicação escrito pelos programadores muda constantemente conforme a aplicação em que eles estão trabalhando evolui e se desenvolve. No entanto, frameworks e bibliotecas são blocos de construção fundamentais que não mudam, e que são usados como estrutura de uma aplicação em particular. Tanto as bibliotecas como os frameworks foram desenvolvidos por desenvolvedores para evitar a necessidade de realizar tarefas repetitivas uma e outra vez. Elas também podem fornecer algumas funcionalidades sem a necessidade de implementar essa funcionalidade a partir do zero.

O que são bibliotecas em codificação?

Uma biblioteca é essencialmente um conjunto de funções que um desenvolvedor pode acessar ("chamada"). Hoje em dia, uma biblioteca é normalmente organizada nas chamadas "classes". A idéia de tal biblioteca é que ela contém código que é reutilizável para um determinado propósito em um domínio específico. Desta forma, uma biblioteca simplifica tarefas específicas, fornecendo um conjunto de funcionalidades genéricas. Estas estão então prontas para serem usadas ("plugadas") em um programa de software. Por exemplo, a maioria das linguagens de programação fornecem bibliotecas para funcionalidades, tais como formatar uma string ou registrar as exceções que podem ocorrer durante o tempo de execução. Usando bibliotecas apropriadas, os desenvolvedores são capazes de reduzir a quantidade de código que eles precisam escrever. Ao mesmo tempo, bibliotecas bem conhecidas têm boa documentação e foram bem testadas. Portanto, na maioria dos casos, é melhor para os desenvolvedores usar uma biblioteca do que ir ao tempo e ao trabalho de escrever, testar e documentar seu próprio código.

O que é um enquadramento na programação?

Uma estrutura pode ser descrita como uma arquitetura que facilita a implementação de software de uma maneira bem organizada. Tal framework, portanto, incorpora algum design abstrato pré-definido que é acoplado a um comportamento mais incorporado do que o de uma biblioteca. Em um framework, todo o fluxo de controle já está no lugar e há um monte de ganchos pré-definidos onde os desenvolvedores podem colocar seu próprio código. Como resultado, um framework define um esqueleto onde os desenvolvedores de uma determinada aplicação definem suas próprias características para preencher o esqueleto. Em outras palavras, você pode pensar em um framework como uma coleção de padrões e bibliotecas que ajudam os desenvolvedores a construir uma aplicação. No entanto, do lado negativo, um framework também dita a arquitetura de uma determinada aplicação. Por exemplo, ele definirá a estrutura geral, o particionamento em classes, as principais responsabilidades das classes e como os objetos colaboram.

Quando é melhor usar uma estrutura versus uma biblioteca?

Como em qualquer questão da vida real, é uma pergunta complexa e difícil de responder claramente em todos os casos. Por exemplo, uma equipe com muitos desenvolvedores juniores pode estar melhor com um framework, que, portanto, impõe uma certa estrutura e padrões particulares, ditando à equipe como ela deve construir software. Por outro lado, uma equipe experiente que está trabalhando em uma aplicação que não é de execução e tem funcionalidades de nicho pode estar melhor usando uma biblioteca (ou bibliotecas) do que usando um framework, porque isso lhes dá maior flexibilidade e controle. Em casos mais extremos, pode até ser melhor para uma equipe específica de desenvolvedores construir software inteiramente a partir do zero, sem usar um framework ou bibliotecas.

O que procurar ao selecionar os candidatos que precisam conhecer certas estruturas ou bibliotecas

Aqui está um mini-FAQ sobre como as linguagens de programação, frameworks e bibliotecas de software são usadas no mundo real. Onde for relevante, também acrescentamos algumas sugestões sobre o que procurar ao selecionar os candidatos.

  • P: Os programadores podem codificar uma aplicação sem uma biblioteca ou um framework, mas usando apenas seu próprio código escrito a partir do zero?

R: Sim, eles podem, mas isso sempre vai demorar mais.

  • P: Os programadores podem codificar uma aplicação usando um framework mais alguns de seus próprios códigos?

R: Sim, eles podem.

  • P: Os programadores podem codificar uma aplicação usando uma biblioteca (ou mais de uma biblioteca) mais alguns de seus próprios códigos?

R: Sim, eles podem.

  • P: Os programadores podem escrever a sua própria biblioteca?

R: Sim, e a maioria dos programadores faz isto no decurso do seu próprio trabalho. É uma das melhores formas de evitar qualquer forma de duplicação, que todos os programadores não gostam. Os desenvolvedores às vezes decidem liberar para as bibliotecas comunitárias que se mostraram particularmente úteis. Como recrutador, vale a pena perguntar aos candidatos se eles fizeram alguma dessas contribuições de código aberto.

  • P: Os programadores podem codificar uma aplicação usando um framework mais uma biblioteca (ou mais de uma biblioteca) mais o seu próprio código?

R: Sim, eles podem. Se uma equipe de desenvolvedores já está familiarizada com uma estrutura e bibliotecas relevantes, e a estrutura em particular é uma boa combinação para o domínio em que o novo software irá funcionar, então é provável que esta abordagem seja a mais eficiente e eficaz. Isto significa que, ao recrutar, você está procurando desenvolvedores que já estejam familiarizados com as frameworks e bibliotecas que sua equipe está usando atualmente.

  • P: É possível que uma biblioteca se torne obsoleta?

R: Sim, mas é pouco provável que isso aconteça com uma biblioteca bem conhecida que ofereça funcionalidade significativa.

  • P: É possível que uma estrutura se torne obsoleta?

R: Sim, e esta é uma das desvantagens potenciais do uso de uma estrutura. Frameworks vêm e vão, e mesmo que um framework seja popular por muito tempo, qualquer framework pode mudar dramaticamente de uma versão principal para outra versão principal. Claro, os criadores/mantenedores de frameworks populares tentam limitar tais mudanças, mas isso pode e acontece. Você deve tentar manter-se a par de, pelo menos, grandes mudanças nas frameworks usadas pela sua equipa.

  • P: Os programadores podem criar a sua própria estrutura?

R: Sim. Após uma equipe de programadores ter terminado de criar um novo tipo de software, acontece com bastante frequência que, com base na sua experiência particular, eles mais tarde criam uma estrutura que é projetada para tornar possível a criação de um tipo similar de software de uma forma que é significativamente mais eficaz e eficiente. É uma boa ideia rever os currículos para ver se os candidatos tiveram alguma experiência desse tipo.

Conclusão

Para reiterar, como recrutador técnico, é muito importante que você selecione os candidatos não só em termos de linguagens de programação, mas também em termos de frameworks e bibliotecas.

Sabemos que algumas das linguagens técnicas usadas para falar de linguagens de programação, frameworks de software e bibliotecas podem ser confusas. Se tiver alguma dúvida, recomendamos que consulte o glossário que preparamos especialmente para este fim: https://devskiller.com/glossary-it-terms-tech-recruiters/.

Partilhar correio

Saiba mais sobre a contratação de tecnologia

Subscreva o nosso Centro de Aprendizagem para obter informações úteis directamente na sua caixa de entrada.

Verificar e desenvolver as habilidades de codificação sem problemas.

Veja os produtos DevSkiller em ação.

Certificações de segurança e conformidade. Certificamo-nos de que os seus dados estão seguros e protegidos.

Logotipo DevSkiller Logotipo TalentBoost Logotipo TalentScore