Todos os produtos
Search
Central de documentação

Qoder CN Series:Melhores práticas para uso de base de conhecimento como contexto na conclusão de código

Última atualização: Jun 29, 2026

Lingma oferece análise contextual baseada em base de conhecimento para conclusão de código. Ao usar o Lingma, os repositórios de código enviados pela empresa são incorporados como contexto. Isso garante que a conclusão de código esteja mais alinhada aos padrões de codificação e às características de negócio da organização. Este tópico descreve como administradores podem construir um repositório de código corporativo de alta qualidade e apresenta melhores práticas para desenvolvedores backend e frontend.

Edições e linguagens suportadas

Edição

Backend

Frontend

Enterprise Dedicated Edition

Java, C#, C/C++, Go, Python

JavaScript, TypeScript, Vue, React

Para administradores: Como construir um repositório de código corporativo de alta qualidade

Para garantir o processamento adequado dos dados de código, siga estas instruções ao preparar os repositórios. Essa preparação torna a recuperação mais rápida e precisa.

Diretrizes para seleção e preparação de repositórios de código

Esta seção aborda dois cenários de preparação de repositórios de código:

Cenário 1: Melhorar a eficiência no desenvolvimento diário

Use múltiplos repositórios de código durante o desenvolvimento empresarial para aprimorar o desempenho da recuperação. Essa abordagem facilita a localização rápida de código, sua reutilização e o trabalho eficiente. Siga as diretrizes:

Cenários de backend

  • [Recomendado] Selecione trechos ou arquivos de código de alta frequência: Escolha trechos de código frequentes ou reutilizados no projeto atual. Esses trechos possuem alta reusabilidade e são adequados para inclusão em uma base de conhecimento. Organize-os em um repositório separado e envie-os para uma base de conhecimento separada para facilitar o gerenciamento e a recuperação.

  • Código do projeto atual: Envie todo o projeto atual para uma base de conhecimento para permitir uma recuperação abrangente. Isso melhora a reusabilidade do código e a eficiência do desenvolvimento. No entanto, se o projeto contiver código interferente ou de baixa qualidade, o desempenho da melhoria de conclusão de código pode ser afetado.

Cenários de frontend

Importante

Envie um repositório de código que use bibliotecas de componentes em vez do repositório de código-fonte dos componentes. Certifique-se de que o repositório cubra o maior número possível de cenários de uso.

  • [Recomendado] Repositório de código de páginas de modelo de frontend: Monte componentes personalizados da empresa em modelos para páginas frontend altamente reutilizáveis, como páginas de login, registro, exibição de conta e transferência de fundos. Se sua empresa possui uma biblioteca de modelos, envie-a para a base de conhecimento de código corporativo.

  • Repositório de código do projeto atual: Envie código de projeto bem estruturado e de alta qualidade para a base de conhecimento corporativa para permitir uma recuperação abrangente. Código de baixa qualidade ou interferente no repositório pode afetar o desempenho da conclusão de código.

Cenário 2: Garantir consistência de código e reduzir desenvolvimento repetido em cenários de negócio específicos

Ao construir aplicações de nível empresarial, garanta que as regras de negócio sejam uniformes para manter o sistema estável e fácil de manter. Sem padrões comuns, diferentes desenvolvedores podem adotar métodos distintos. Isso pode levar a regras de negócio divergentes, dificultar a correção do código e enfraquecer a estabilidade do sistema.

A seguir, alguns casos de uso de cenários de negócio específicos:

Caso 1: Reutilização de lógica de framework e middleware corporativos

Uma empresa precisa de um mecanismo unificado de bloqueio distribuído para seu sistema de gestão de estoque. Integre frameworks de negócio à base de conhecimento de código. Assim, os desenvolvedores podem usar facilmente esses trechos de código ao escrever novo código nas IDEs. Essa prática aumenta a eficiência do desenvolvimento, reduz retrabalho, melhora a qualidade do código e garante a consistência da lógica de negócio.

Siga estas dicas para selecionar e preparar um repositório de código:

Identifique as necessidades de negócio e implementações necessárias:

  • Identifique módulos de negócio essenciais que exigem implementação unificada no sistema, como controle de estoque, processamento de pedidos e sistemas de pagamento.

  • Defina como lidar com cenários de negócio específicos: Por exemplo, o sistema de estoque possui tarefas diferentes, como redução de estoque, verificação de nível de estoque e bloqueio de estoque. Cada tarefa requer um mecanismo de implementação distinto.

Escolha arquivos de código dos frameworks de negócio e envie-os para uma base de conhecimento de código:

  • Filtre os frameworks de negócio para encontrar o código principal que lida com a lógica de negócio essencial, organize-o e envie-o para uma base de conhecimento de código separada. Por exemplo, se for necessário bloqueio distribuído para manter a segurança durante atualizações, localize o código principal que implementa esse bloqueio.

    /**
     * Use the enterprise-developed distributed locking mechanism to implement concurrency control
     */
    @Service
    public class InventoryService {
        
        @Autowired
        private DistributedLockFramework lockFramework;
        
        @Autowired
        private InventoryRepository inventoryRepository;
        
        /**
         * Use the distributed locking mechanism to ensure concurrency security during inventory deduction
         * @param productId, which specifies the product ID.
         * @param quantity, which specifies the deduction quantity.
         * @return, which specifies whether deduction is successful.
         */
        public boolean deductInventory(Long productId, int quantity) {
            String lockKey = "inventory:" + productId;
            return lockFramework.withLock(lockKey, 30, TimeUnit.SECONDS, () -> {
                Inventory inventory = inventoryRepository.findByProductId(productId);
                if (inventory == null || inventory.getQuantity() < quantity) {
                    return false;
                }
                inventory.setQuantity(inventory.getQuantity() - quantity);
                inventoryRepository.save(inventory);
                return true;
            });
        }
    }

Caso 2: Reutilização de lógica de negócio central da empresa

Uma empresa deseja estabelecer uma política única e personalizada de recomendação para seus produtos. Nesse caso, integre frameworks de negócio desenvolvidos pela empresa a uma base de conhecimento de código corporativa. Dessa forma, os desenvolvedores podem recuperar e reutilizar facilmente trechos de código padronizados ao escrever lógica de negócio em uma IDE. Isso aumenta a eficiência do desenvolvimento, reduz retrabalho, melhora a qualidade do código e garante a consistência e estabilidade da lógica de negócio.

Siga estas dicas para selecionar e preparar um repositório de código:

Determine os módulos de negócio e implementações necessários:

  • Identifique módulos de negócio essenciais: Encontre as partes do negócio que precisam de implementação unificada no sistema, como o sistema de recomendação de produtos.

  • Defina ações de negócio e etapas principais. Por exemplo, uma política de recomendação personalizada inclui estas etapas: coletar dados de comportamento do usuário, identificar características de interesse do usuário, obter uma lista de produtos possíveis, pontuar e classificar esses produtos e exibir as principais escolhas. Use código pré-escrito para implementar essas etapas.

Escolha arquivos de código dos frameworks de negócio e envie-os para uma base de conhecimento de código:

  • Encontre o código principal que lida com a lógica de negócio essencial, organize-o e envie-o para uma base de conhecimento de código separada. Veja um exemplo de política de recomendação personalizada:

    /**
     * The recommendation engine service
     * Implement personalized recommendation based on user behavior and commodity features
     */
    @Service
    public class RecommendationService {
        
        @Autowired
        private UserBehaviorRepository userBehaviorRepo;
        
        @Autowired
        private ProductRepository productRepo;
        
        /**
         * Generate a recommendation list for a specified user
         * @param userId, which specifies the user ID.
         * @param limit, which specifies the maximum number of commodities that can be recommended.
         * @return, which specifies the IDs of recommended commodities.
         */
        public List generateRecommendations(Long userId, int limit) {
            // Obtain user behavior data
            List behaviors = userBehaviorRepo.findRecentByUserId(userId, 100);
            
            // Extract user interest features
            Map userInterests = extractUserInterests(behaviors);
            
            // Obtain a candidate commodity pool
            List candidateProducts = productRepo.findRecentlyActive(1000);
            
            // Calculate and rank commodity scores
            List scoredProducts = candidateProducts.stream()
                .map(product -> new ScoredProduct(product, calculateScore(product, userInterests)))
                .sorted(Comparator.comparing(ScoredProduct::getScore).reversed())
                .collect(Collectors.toList());
            
            // Return the top-scoring commodities
            return scoredProducts.stream()
                .limit(limit)
                .map(sp -> sp.getProduct().getId())
                .collect(Collectors.toList());
        }
        
        // Other auxiliary methods
    }
Importante

Adicione comentários ao código das funções principais. Isso ajuda os desenvolvedores a recordar trechos de código ao programar em uma IDE.

Caso 3: Referenciar projetos existentes para melhorar a eficiência de novos projetos

Quando uma empresa inicia um novo projeto, ela pode aproveitar o código de módulos centrais semelhantes de um projeto existente. Essa estratégia economiza tempo e recursos, além de tornar o novo projeto melhor e mais estável.

Siga estas dicas para selecionar e preparar um repositório de código:

Identifique módulos de negócio essenciais com base nos requisitos de negócio e cenários:

  • Identifique funções ou métodos semelhantes. Por exemplo, se tanto o projeto novo quanto o antigo possuem funções como gerenciamento de usuários, exibição de produtos e processamento de pedidos, liste os módulos relacionados.

  • Verifique a qualidade do código: Garanta que o código do projeto existente tenha sido totalmente testado e seja estável e confiável. Remova arquivos e configurações desnecessários para manter o código limpo e fácil de usar.

Defina ações de negócio específicas e ações centrais:

  • Extraia funções centrais: Do projeto existente, extraia o código de módulos funcionais chave que possam ser reutilizados. Exemplos:

    • Gerenciamento de usuários: registro de usuário, login e modificação de informações

    • Exibição de produtos: lista de produtos, página de detalhes e função de busca

    • Processamento de pedidos: realização de pedido, processamento de pagamento e atualização de status do pedido

Importante

Adicione comentários ao código das funções principais. Isso ajuda os desenvolvedores a recordar trechos de código ao programar em uma IDE.

Escolha arquivos de código dos frameworks de negócio relacionados e envie-os para uma base de conhecimento de código. Reorganize o código do projeto existente usando uma estrutura modular. Isso separa o código para diferentes equipes responsáveis por módulos específicos no novo projeto. Crie um repositório de código separado para cada módulo:

  • Isolamento da base de conhecimento de código: Envie o código do projeto existente para a base de conhecimento apropriada. Por exemplo, envie o código dos módulos de gerenciamento de usuários, exibição de produtos e processamento de pedidos para bases de conhecimento separadas.

  • Gerenciamento de permissões: Configure permissões para que apenas as equipes corretas acessem códigos específicos. Isso evita interferências durante a conclusão de código nas IDEs.

Especificações de arquivos de código

  • Linguagens e frameworks suportados:

    • Backend: Java, Python, Go, C# e C/C++

    • Frontend: TypeScript, JavaScript, React e Vue

  • Limites de upload: Apenas arquivos de código-fonte podem ser enviados. Por exemplo, envie arquivos .java para Java, arquivos .cs para C# e arquivos .js ou .jsx para JavaScript.

  • Evite enviar o seguinte:

    • Dados e código de teste, como scripts de teste, casos de teste ou código relacionado a testes que não contenha lógica de negócio.

    • Métodos mock, a menos que contenham lógica de negócio específica.

    • Artefatos de build:

      • Frontend: Arquivos gerados por ferramentas de build como Webpack e Gulp. Esses arquivos geralmente ficam armazenados no diretório dist ou build.

      • Backend: Arquivos DLL compilados e qualquer outra saída de compilação.

  • Diretrizes de comentários:

    • Adicione comentários detalhados nos cabeçalhos das funções.

    • Para distinguir funções, certifique-se de que os comentários sejam informativos. Ajuste os comentários com base em modelos de comentários ou especificações da empresa.

      /**
       * Update the status of a specified order.
       *
       * @param orderId, which specifies the unique ID of the order.
       * @param newStatus, which specifies the new status of the order.
       * @return boolean, which specifies whether the update is successful.
       */
  • Convenção de nomenclatura de funções:

    • Certifique-se de que o nome da função seja informativo.

    • Use nomes claros e descritivos, como exportOrdersToPDF e updateOrderStatus, em vez de func1.

Diretrizes de upload

  • Compacte os arquivos nos formatos .zip, .gz ou .tar.gz.

  • Garanta que cada pacote não ultrapasse 100 MB.

Para desenvolvedores: Como usar a base de conhecimento como contexto na conclusão de código

Cenários de backend

Comentário para código

O Lingma gera código a partir de comentários em linguagem natural. Siga as melhores práticas para desenvolvimento backend:

  1. Envie código para um repositório de código corporativo: Coloque o código funcional necessário em um arquivo compactado e envie-o para o repositório de código. Certifique-se de que as funções sigam as especificações de comentários. Adicione comentários antes das funções. Consulte Administradores: construa um repositório de código corporativo de alta qualidade para mais detalhes. Tome como exemplo os comentários do algoritmo Snowflake:

    /**
     * Use the Snowflake algorithm to generate unique IDs
     * @param workerId
     * @return
    */
    public synchronized Long getSnowFlowerId(long workerId){
     long id = -1L;
    
     if (workerId < 0 || workerId > snowFlowerProperties.getMaxWorkerId()) {
        throw new IllegalArgumentException(
          String.valueOf("workerID must gte 0 and lte " + snowFlowerProperties.getMaxWorkerId()));
     }
    
     // Algorithm implementation code
     
    return id;
    }
  2. Insira comentários: Localize uma classe Java na sua IDE e adicione comentários correspondentes às funções a serem recuperadas. Garanta que as descrições sejam claras e os estilos consistentes.

    Estilo 1

    //Please generate code that uses the Snowflake algorithm to generate a unique ID and returns the generated ID

    Estilo 2

    /**
     * Use the Snowflake algorithm to generate unique IDs
     * @param wId
     * @return
    */

    Especificações de comentários:

    • Tamanho do comentário: Ao programar, evite comentários curtos. Use pelo menos 15 caracteres. Comentários muito curtos não acionam a recuperação.

    • Significado do comentário: Garanta que os comentários sejam claros e precisos. Inclua palavras-chave e descrições de valores de retorno para ajudar o Lingma a entender seu código com mais precisão.

    • Suporte multilíngue: Comentários em inglês e chinês são suportados. O idioma usado nos comentários do repositório pode ser diferente do usado no código.

    • Nomes de parâmetros: Use nomes de parâmetros flexíveis. O Lingma os ajustará para corresponder ao código recuperado.

    Veja alguns exemplos inadequados:

    • //Snowflake algorithm Problema: O comentário é muito curto e pouco detalhado.

    • //Generate a unique ID Problema: Faltam palavras-chave no comentário, o que pode causar confusão.

  3. Geração de código: Ao pressionar Enter pela primeira vez, o Lingma sugere código com base nos seus comentários. Ao pressionar novamente, o Lingma completa o código utilizando o repositório de código corporativo.2024-09-12_18-11-55

Gerar código usando assinaturas de função

  1. Envie código para um repositório de código corporativo.

  2. Insira assinaturas de função: Localize uma classe Java na sua IDE e insira as assinaturas das funções relacionadas. Use nomes de parâmetros flexíveis. O Lingma alterará os parâmetros para corresponder ao código recuperado.

    public List nextList(String name, int size)

    Descrições de assinatura de função:

    • Nome da função: Use nomes de função claros e significativos para facilitar a correspondência de significados semelhantes.

    • Parâmetros e valores de retorno: Os tipos e a ordem devem corresponder à função alvo, mas altere os nomes dos parâmetros conforme necessário. O Lingma ajusta automaticamente os parâmetros para corresponder ao código recuperado. Veja alguns exemplos de nomes de parâmetros inadequados:

      • public List func1(String name, int size): O nome da função não é claro e não reflete com precisão a função.

      • public List nextList(int orderId): O tipo de parâmetro e o tipo de valor de retorno não correspondem à função alvo.

  3. Conclusão de código: Após pressionar Enter pela primeira vez, o Lingma fornece sugestões de conclusão de código. Ao pressionar novamente, o Lingma completa automaticamente o código com base no repositório de código corporativo.2024-09-12_18-14-531723624742377-2a4c12e5-bdb9-438b-8732-2d0e15fd0e10.gif

Cenários de frontend

Completar código de componente personalizado de frontend usando tags

O Lingma gera código usando tags nos componentes personalizados de frontend. Siga as melhores práticas:

  1. Envie código para um repositório de código corporativo: Antes de começar, certifique-se de que todo o código dos componentes de frontend necessários esteja enviado para o repositório de código. Veja um exemplo com o framework React:

    New
          }
          formItems={formItems}
          formRef={formRef}
          columns={columns}
          request={async (params, requestType) => {
            const res: Record = await apiGetUserList(params);
            return {
              data: res.data,
              total: res.total,
            };
          }}
    />
  2. Escreva o código do componente: Abra o arquivo .jsx na sua IDE e comece a programar. Use tags HTML básicas ou tags de componentes personalizados, como <LTable />.

  3. Ative a conclusão de código: Depois de digitar código suficiente para acionar uma correspondência na biblioteca, a IDE gerará o código completo do componente para você. Pressione Enter para completar o código manualmente.2024-09-12_18-17-56

    Importante

    Acione a conclusão de código dentro de um rótulo de componente completo.

Comentário para código

O Lingma gera código a partir de comentários em linguagem natural. Siga as melhores práticas:

  1. Envie código para um repositório de código corporativo: Coloque o código funcional necessário em um arquivo compactado e envie-o para o repositório de código. Certifique-se de que as funções sigam as especificações de comentários e tenham comentários no início. Consulte Administradores: construa um repositório de código corporativo de alta qualidade para mais detalhes. Exemplo:

    /**
     * Generate an object with id as the key value based on the error message
     * @param {Array} results
     * @return {Record}
    */
    function getErrObj(results) {
      // Function implementation code
    }
  2. Insira comentários: Abra o arquivo JavaScript necessário na sua IDE e adicione comentários. Veja um exemplo:

    //Generate an object with id as the key value based on the error message

    Especificações de comentários:

    • Tamanho do comentário: Ao programar, evite comentários curtos. Use pelo menos 15 caracteres. Comentários muito curtos não acionam a recuperação.

    • Significado do comentário: Garanta que os comentários sejam claros e precisos. Inclua palavras-chave e descrições de valores de retorno para ajudar o Lingma a entender seu código com mais precisão.

    • Suporte multilíngue: Comentários em inglês e chinês são suportados. O idioma usado nos comentários do repositório pode ser diferente do usado no código.

    • Nomes de parâmetros: Use nomes de parâmetros flexíveis. O Lingma os ajustará para corresponder ao código recuperado.

  3. Geração de código: Ao pressionar Enter pela primeira vez, o Lingma sugere código com base nos seus comentários. Ao pressionar Enter novamente, o Lingma completa o código utilizando o repositório de código corporativo.2024-09-12_18-16-56

Nota
  • Se seus comentários ou assinaturas de função possuírem parâmetros, o Lingma altera automaticamente os nomes dos parâmetros no código gerado para garantir consistência de nomenclatura.

  • Para obter os dados mais recentes, atualize o cache. Pressione ⌥(option) P no macOS ou Alt P no Windows para acionar manualmente a conclusão de código.

FAQ: Por que não consigo recuperar código?

Se você tiver problemas para recuperar código após instalar o Lingma, execute as seguintes etapas:

  • macOS: Reinicie o processo do Lingma e limpe o cache relacionado:

    ps -ef|grep lingma|grep start|awk '{print $2}'|xargs -I {} kill -9 {}
  • Windows: Encerre o processo do Lingma no Task Manager.