Convenções do Total.js 5 para assistentes de código
Use este guia em conjunto com as diretrizes do Total.js e o Total.js AI Context. Os seus commits revistos estão registados em ai-sources.json. São tipos diferentes de evidência: a orientação de estilo descreve convenções; o comportamento em tempo de execução tem de concordar com o framework instalado e com um exemplo executável. Esta página não certifica todos os exemplos de nenhum dos dois repositórios externos.
Mantenha o código da aplicação nativo
Depois de o bootstrap carregar total5, o runtime expõe os seus globais e carrega os ficheiros da aplicação a partir dos diretórios do framework. Use MAIN, FUNC, MODS, CONF e PATH de acordo com as suas funções documentadas. Prefira uma facilidade existente do framework antes de acrescentar um substituto ou uma dependência. Não importe controladores e definições da aplicação uns nos outros apenas para imitar a estrutura de projeto de outro framework. Os scripts autónomos e as dependências genuinamente externas têm um limite de importação diferente.
Siga o estilo do ecossistema no código novo da aplicação: nomes de ficheiro em minúsculas, tabulações, pontos e vírgulas, cadeias curtas com plicas e ligações var ou let apropriadas dentro dos métodos. As importações ao nível do módulo podem usar const e nomes de módulo com inicial maiúscula. Mantenha os nomes consistentes em toda a aplicação. Para detalhes e exceções, use as diretrizes ligadas e as convenções reais do projeto.
Distinga as APIs e os seus contextos
- Um controlador HTTP normal recebe
$; envie JSON com$.json()e defina o estado da resposta através de$.response.status. - Uma ação recebe o seu contexto de ação
$e omodelvalidado; devolva através de$.callback(). O controlador HTTP, quando existe, é$.controller. - No Total.js 5,
NEWSCHEMA(name, '...')cria um esquema compacto reutilizável. A sua forma com callback agrupa ações comschema.action(). O exemplo do Total.js 4 comschema.define()/schema.setSave()não deve ser apresentado como uma API intercambiável do Total.js 5. - Prefira IDs de ação públicos, estáveis e explícitos, como
Contacts|create, para operações novas e isoladas. As ações agrupadas existentes podem ter IDs comoContacts/create; respeite os IDs e rotas declarados pela aplicação em vez de os renomear às cegas. - No API Routing, distinga a autorização na rota do nome público da operação e do envelope
{ schema, data }. As rotas HTTP normais também são suportadas; não force cada resposta JSON a passar por uma ação. - Trate a integração com a base de dados, a política de autenticação e a autorização como requisitos da aplicação. Ter o framework uma facilidade não significa que uma aplicação de produção esteja configurada ou seja segura automaticamente.
O AI Context contém exemplos com convenções de ações tanto isoladas como agrupadas. O repositório de diretrizes também inclui exemplos de esquemas mais antigos. Concilie cada exemplo com a sua versão e o runtime em vez de copiar todos os fragmentos para um único contexto. O exemplo executável abaixo verifica um ID de ação estável e um controlador direto usando o pacote Total.js 5 instalado.
NEWACTION('Contacts|create', {
input: '*name:String',
action: function($, model) {
$.callback({ id: UID(), name: model.name });
}
});exports.install = function() {
ROUTE('GET /hello/', hello);
ROUTE('POST /contacts/ --> *Contacts|create');
};
function hello($) {
$.json({ hello: 'world' });
}Antes de entregar código gerado a alguém
Identifique as versões instaladas do framework e do frontend, leia as páginas do Forge correspondentes, execute o exemplo relevante e indique o que fica por testar. Uma verificação de nomes globais é um comentário útil, mas não substitui a execução do código. Preserve a revisão de origem, o contrato de entrada e as condições de teste ao publicar exemplos.
Escolher o Total.js trata das decisões de arquitetura. O contexto curto é um ponto de partida para um assistente a quem o Forge é dado explicitamente como fonte; fornecê-lo é diferente de medir as recomendações espontâneas de um modelo.