Práticas de codificação padrão e diretrizes para o desenvolvimento de pacotes
- Última atualização2022/05/19
Este tópico abrange práticas de codificação padrão e diretrizes que ajudam a garantir o desenvolvimento de pacotes de alta qualidade.
- Teste
- Assegure um código de alta qualidade. Escreva testes de unidade e testes de integração suficientes para o seu pacote.
- Ícones
- Defina o ícone adequado para o seu pacote.
- Definir a versão manualmente
- A versão de compilação do pacote SDK é atualizada automaticamente sempre que uma compilação ocorre. No entanto, você pode defini-lo manualmente no projeto de comando de um arquivo build.gradle comum.
- Atualize o arquivo build.gradle antes de uma compilação.
- Digite até quatro números de dígitos, separados por um ponto, como mostrado abaixo:
. . . ext { version '2.0.8' } dependencies {...}
- Dependências
- Incorpore todas as dependências ao seu pacote JAR. Carregue as dependências no tempo de execução extraindo-as para um local temporário. Limpe o local temporário após as dependências serem carregadas.
- Arquivos JAR dependentes
- Adicione arquivos JAR dependentes sob dependências no arquivo build.gradle como implementação para que os arquivos JAR dependentes façam parte do pacote.
. . . dependencies { compileOnly name: 'command-annotations' compileOnly name: 'bot-runtime' compileOnly name: 'bot-api' implementation name: 'i18n-api' implementation name: 'mydependentjavafile.jar' apt name: 'command-processor' compileOnly group: 'org.apache.logging.log4j', name: 'log4j-core', version: "$loggerVersion" testImplementation "org.testng:testng:$testNgVersion" testImplementation name: 'bot-runtime' testImplementation name: 'bot-api' } . . .
- Adicionar novas ações ao pacote de saída
- Ao adicionar novas ações a um pacote existente, faça a limpeza antes de empacotar. É sempre uma prática recomendada fazer a limpeza da versão - gradlew.bat clean build shadowJar.
- Mensagens de erro
- Forneça mensagens de erro significativas.
-
Lance mensagens de erro significativas. Por exemplo, no idioma local, usando APIs i18n com
BotCommandException
, lance uma nova exceçãoBotCommandException(MESSAGES.getString("Run.Exception.InvalidWorkingDirPath"))
. -
Não lance mensagens de erro genéricas, como
ex.message
.
-
Lance mensagens de erro significativas. Por exemplo, no idioma local, usando APIs i18n com
- Validação básica
- Use as regras de anotação de validação como
@NotEmpty
incluídas neste kit de desenvolvimento. Não adicione validações básicas para o seu código. Consulte Anotações de validação. - Loops
- Evite longos loops de execução em seu código. Longos loops de execução podem causar alta utilização de CPU, levando a erros como, “Bot não responde”.
- Adicionar registro
- Use o registrador padrão log4J fornecido na estrutura do tempo de execução do bot. Não adicione o seu próprio registrador. Consulte o código de exemplo para obter detalhes.
- Níveis de registro
-
- ERRO/FATAL: Evento de erro grave em que o usuário é afetado e não há solução alternativa.
- AVISO: Ocorreu um erro inesperado, mas o sistema se recuperou dele.
- INFORMAÇÕES: Mensagens informativas sobre alteração de estado, por exemplo, uma solicitação aceita.
- DEPURAÇÃO: Informações de diagnóstico detalhadas que serão necessárias para depurar quando algo der errado.
-
RASTREAMENTO: Todas as informações são capturadas sobre o comportamento de um aplicativo.
Se você não tiver certeza do nível de registro, defina-o como TRACE.
- Carregar recursos
- Todos os recursos devem ser carregados utilizando o carregador de classe de contexto de thread atual, como mostrado no exemplo a seguir:
Thread.currentThread().getContextClassLoader().getResourceAsStream("resource.json");