O que é pouco código?
O que é pouco código e como ele é usado no Power Apps baseado em tela?
Você e Kiana trabalham na mesma equipe de "muito código" ou de desenvolvimento tradicional da VanArsdel há muito tempo. Você desenvolveu tudo, desde aplicativos do .NET Core Console até APIs da Web do ASP.NET Core e bibliotecas reutilizáveis compartilhadas via NuGet em conjunto. Ao começar a aprender sobre o Power Apps com base em um histórico de desenvolvimento tradicional, isso ajuda a entender o que significa "pouco código".
O termo "pouco código" pode ter significados diferentes para pessoas diferentes quando elas o ouvem pela primeira vez. O que queremos dizer ao mencionar pouco código é que, com ferramentas como o Power Apps, você só precisa escrever uma pequena quantidade de código para obter resultados que, normalmente, exigiriam várias linhas de código em uma linguagem de programação tradicional.
No Power Apps baseado em tela, a linguagem de script com pouco código usada é chamada Power Fx; essa é a linguagem que aprenderemos e usaremos ao longo deste módulo para criar um aplicativo.
Veja este exemplo: para pesquisar o nome do funcionário para um pedido, seria necessário escrever a fórmula do Power Fx ou JavaScript equivalente, conforme mostrado na animação abaixo. A animação mostra o mapeamento entre as partes da fórmula do Power Fx e os conceitos que precisam ser explicitamente codificados no JavaScript equivalente.
Vamos analisar mais detalhadamente todos os itens que o Power Fx está executando para nós e a liberdade que ele tem para otimizar, pois a fórmula é declarativa:
Assíncrono
Todas as operações de dados no Power Fx são assíncronas. O desenvolvedor não precisa especificar isso nem precisa realizar a sincronização após o término da chamada. O mais importante é que o desenvolvedor não precisa estar ciente desse conceito; ele não precisa saber o que é uma função lambda ou promessa.
Local e remoto
O Power Fx usa a mesma sintaxe e funções para dados que estão na memória local e são remotos em um banco de dados ou serviço. O usuário não precisa pensar nessa distinção. O Power Fx delega automaticamente o que pode para o servidor a fim de processar filtros e classificações com mais eficiência.
Dados relacionais
Pedidos e Clientes são duas tabelas diferentes, interligadas por meio de um relacionamento muitos para um. A consulta OData requer um “$expand” com conhecimento da chave estrangeira, semelhante a uma Junção no SQL. A fórmula não tem esses itens; de fato, as chaves do banco de dados são outro conceito que o criador não precisa conhecer. O criador pode usar a notação de ponto simples para acessar todo o gráfico de relacionamentos de um registro.
Projeção
Ao escrever uma consulta, muitos desenvolvedores escreverão "select * from..." que retornará todas as colunas de dados. O Power Fx analisa todas as colunas usadas em todo o aplicativo, mesmo nas dependências da fórmula. A projeção é otimizada automaticamente e, mais uma vez, o criador não precisa saber o que essa palavra significa.
Recuperar somente o que for necessário
Nesse exemplo, a função LookUp implica que apenas um registro deve ser recuperado, e isso é tudo o que é retornado. Se mais registros forem solicitados usando a função Filtrar, para a qual milhares de registros podem se qualificar, apenas uma única página de dados será retornada por vez, na ordem de cem registros. O usuário deve percorrer uma galeria ou tabela de dados para ver os dados adicionais, e eles são automaticamente retornados para ele. O criador pode considerar grandes conjuntos de dados sem precisar pensar em limitar as solicitações de dados a partes razoáveis.
É executado apenas quando necessário
Definimos uma fórmula para a propriedade Text do controle de rótulo. À medida que a variável Selected muda, a pesquisa é recalculada automaticamente e o rótulo é atualizado. O criador não precisou escrever um manipulador OnChange para Seleção; precisando lembrar que esse rótulo depende dele. Essa é a programação declarativa, conforme discutido anteriormente; o criador especificou o que desejava no rótulo, não como ou quando deveria ser obtido. De fato, se esse rótulo não estiver visível por estar em uma tela invisível ou se sua propriedade Visible for falsa, poderemos adiar o cálculo até que o rótulo esteja visível e eliminá-lo se isso acontecer raramente.
Conversão de sintaxe do Excel
O Excel é usado por centenas de milhões de usuários, muitos dos quais sabem que “&” é usado para concatenação de cadeias de caracteres. O JavaScript usa “+” e outras linguagens usam “.”. O Power Fx atende aos criadores aproveitando o conhecimento que eles já têm.
Nomes de exibição e tradução
'First Name' é usado na fórmula do Power Fx, enquanto nwind_firstname é usado no equivalente em JavaScript. No Dataverse e no SharePoint, há um nome de exibição para campos e tabelas, bem como um nome lógico exclusivo. Os nomes de exibição costumam ser muito mais amigáveis para o usuário, como neste caso, mas têm outra qualidade importante: podem ser traduzidos. Se você tiver uma equipe multilíngue, cada membro da equipe poderá ver os nomes das tabelas e campos em seu próprio idioma. Em todos os casos, o Power Fx garante que o nome lógico correto seja enviado ao banco de dados automaticamente.
Sempre ativo
Há outra característica do Excel que é essencial para desenvolvedores cidadãos: comentários imediatos. Se você parar para pensar, o Excel não tem um modo de edição, uma etapa de compilação ou um estado de execução. O que é ótimo é que você provavelmente nunca pensou sobre isso antes: você carrega uma planilha, edita fórmulas e valores livremente e obtém respostas. A planilha está sempre ativa no Excel, e não há distinção entre edição e execução. As alterações em qualquer valor ou fórmula são propagadas imediatamente pela planilha, e o criador pode verificar rapidamente a resposta certa. Os erros detectados pelo Excel são exibidos imediatamente e não interferem no restante da planilha.