Estive avaliando soluções de arquitetura para um projeto móvel que terá um serviço / aplicativo da Web, além de aplicativos nativos, e observei várias bibliotecas, estruturas e pilhas como o Meteor , sendo uma espécie de "estrutura de pacote de pilha aberta" , está firmemente ligado com o Node.js .
Fala-se muito sobre os benefícios de usar o mesmo idioma no lado do cliente e do servidor, e não estou entendendo. Eu poderia entender se você deseja espelhar todo o estado de um aplicativo Web no cliente e no servidor, mas está lutando para encontrar outras vitórias ... Eficiência no fluxo de trabalho?
Estou tentando entender por que a paridade de linguagem cliente / servidor é considerada um santo graal. Por que a paridade de linguagem cliente / servidor é importante no desenvolvimento de software?
Respostas:
No lado PRO:
No lado CON:
No desenvolvimento da Web, as línguas proliferaram, criando ferramentas poderosas para partes específicas do sistema, bem como a necessidade de muitas especialidades serem aprendidas pelos desenvolvedores ou equipes de desenvolvedores. Em outras áreas, como processamento de transações ou sistemas incorporados que seguem uma abordagem de design de sistemas, pode haver economia em um idioma comum.
Novas estruturas de Javascript parecem chegar muito rapidamente, e um pouco de trabalho é feito para agrupar APIs para o back-end e ferramentas para o front-end. Pode ser inteligente manter a flexibilidade e a separação de preocupações entre o código do lado do cliente e do servidor, para que você possa flutuar entre elas sem ficar muito tempo parado por uma ferramenta específica.
fonte
Presumivelmente, os benefícios percebidos são:
isto é, facilita o gerenciamento de recursos para os gerentes de projeto e tem pouco ou nenhum benefício técnico (possivelmente até um benefício técnico negativo se você estiver contratando vários pôneis de um truque)
fonte
O benefício é que você pode reutilizar (até certo ponto) o conhecimento e o código das pessoas de ambos os lados.
Pessoas
Os desenvolvedores precisam dominar um único idioma e formar um único pool. Em vez de dois conjuntos de conhecimentos. Isso facilita a transferência de conhecimento entre eles e também permite que eles alternem seu trabalho entre o cliente e o servidor com mais facilidade. Por fim, facilita a comunicação com os membros da equipe do "outro lado" ao discutir questões técnicas porque elas compartilham o mesmo background técnico.
Código
Às vezes, é útil ter algum estado no lado do cliente, algoritmos ou ambos. Às vezes, o mesmo é feito dos dois lados. Vamos dar o exemplo de um jogo multiplayer: você precisa representar o estado do jogo no cliente e no servidor. Além disso, você precisa implementar as regras no lado do cliente (para capacidade de resposta) e também no lado do servidor (para validar as ações de um jogador). Ser capaz de reutilizar o código para essas coisas pode ser uma grande vantagem. ... em algumas outras aplicações, você não precisaria disso ... tudo depende do caso.
... é claro que também existem desvantagens, mas isso é para outro post;)
fonte