Cafeina
Projeto destinado a mapear as diversas situações em que nós, programadores, temos que enfrentar em nossos árduos e sombrios dias (e noites, e madrugadas, e mais outros dias) de trabalho como papéis higiênicos de TI com folha dupla.
Install / Use
/learn @devnull-tools/CafeinaREADME
CAFEINA
Este é o cafeína (CAixa de FErramentas INúteis para Anotações), um projeto destinado a mapear as diversas situações que nós, mantenedores de código, temos que enfrentar em nossos árduos e sombrios dias (e noites, e madrugadas, e mais outros dias) de trabalho como papel higiênico de TI com folha dupla.
Este projeto tem uma forte influência do [Google Annotations Gallery][gag] e do [New Programming Jargon][npj], bem como usa diversas figurinhas conhecidas pelos programadores brasileiros, como o glorioso [Gérson][gerson] e o ~~pouco~~ nem um pouco talentoso [Alonso][alonso].
Montando o Projeto
Basta executar o comando gradle dist e pronto!
Utilizando o Projeto
O CAFEINA agora está no Maven Central, basta importá-lo com os seguintes identificadores:
- groupId: tools.devnull
- artifactId: cafeina
Usando as Anotações
@AcheiNoGoogle
Anotação para imunizar o autor do código de qualquer ameaça sofrida, já que o código original nem era dele. É uma forma alternativa de transferência de culpa.
@EmTerraDePernetaQualquerChuteEhVoadora
Tudo é relativo! Pra que colocar aquele código lindo, bem desacoplado, coeso e de fácil manutenção em um sistema porco e mal feito? O código só precisa ser menos imbecil do que o resto do sistema.
@FizEnquanto
Fez algo que não se orgulha e seu nome tá no SCM? Diga a todos o porquê dessa merda binária e durma tranquilo. Também pode ser usado pra se gabar de algo complexo que você fez.
@NaoTemCavalo
Anotação para aqueles momentos mágicos onde o necessário é uma linda utopia. Geralmente utilizada em campos onde deveria ocorrer uma injeção de dependência.
@Inject
@NaoTemCavalo
private Repositorio repositorio;
OBS: Para mais detalhes, assista a peça "A Invenção do Futebol", da Companhia de Comédia Os Melhores do Mundo.
@PropriedadeDe
Anotação para aqueles códigos em que o autor se recusa a deixar alguém mexer. Qualquer tentativa de alteração será subitamente engolida pelo controlador de versão e o autor te perseguirá eternamente.
@PropriedadeDe("Gonçalo")
public class DoubleSortedDynaArray {
// ...
}
@SoQueNao
Anotação perfeita para aqueles códigos onde a especificação não passa de um mero detalhe que não foi dado a devida atenção.
/**
* Método que retorna a lista de contatos.
*/
@SoQueNao
public List<Contato> obterListaDeContatos() {
return agenda.listarAniversariantesDoDia();
}
@TiveEssaIdeia
Anotação destinada a deixar para a posteridade como uma ideia (brilhante ou não) surgiu.
@AlonsoEsteveAqui
Cuidado ao analisar qualquer código com essa anotação. E nem adianta perguntar pro Alonso porque, provavelmente, ele nem saberá o que queria fazer.
@BugsonDeHiggs
Indica um bug existente apenas em um ínfimo número de possibilidades relacionadas a entradas de log, temperatura retal do usuário no momento do erro, softwares não instalados no computador e outras coisas que tornam o bug praticamente impossível de identificar (se é que ele de fato existe).
@ONomeDizTudo
Quem precisa de comentários e documentação quando se pode ter nomes esclarecedores?
@ONomeDizTudo
public class RegraWrapperSolicitanteTemPerfilGestorOuSecretarioSiga2000OuFuncaoSecretarioEUnidadeAlvoNaoEhGabineteAutoridadeUsuarioAlvoNaoLotado {
// ...
}
@FaltaFerro
Anotação para diagnósticos de modelo anêmico.
@FaltaFerro(consumir = {
FEIJAO, CEREAL, RAPADURA, VITELA, GRAO_DE_BICO
})
public class Conta {
private BigDecimal saldo;
private BigDecimal limite;
public void setSaldo //...
public BigDecimal getSaldo //...
public void setLimite //...
public BigDecimal getLimite //...
}
@GluGlu
Para aquele código chato, pentelho e ultrapassado que insiste em aparecer em todos os cantos.
@Heisenbug
Anotação que indica a presença de um bug que tende a se modificar quando é analisado.
@InfinitoEnquantoDura
Poética anotação destinada aos métodos cujo desempenho é tão questionável que chega a dar a impressão de parar o tempo.
@InfinitoEnquantoDura
public void assinarEConfirmar() {
setDataNotificacao(new Date());
try {
// espera 10 segundos
Thread.sleep(10 * 1000);
} catch(IOException) {
// não vai rolar
}
// o sistema não deixa cadastrar
// com menos de 10 segundos
// de diferença entre as datas
setDataConfirmacao(new Date());
}
@Lavoisier
Nada se cria, tudo se copia! Anotação que indica a presença do padrão de projeto LavoisierCoding. Essa anotação geralmente vem acompanhada de @AcheiNoGoogle.
@Miau
Gambiarra detected!
@Miau(THUNDERCAT)
public void processar(String operacao) {
try {
// as operações são de 0 a 9
int codigo = Integer.parseInt(operacao);
processar(codigo);
} catch (NumberFormatException e) {
cancelar(); // 'C' cancela
}
}
@PegadinhaDoMalandro
Pensou que era só alterar o for?
@PokemonExceptionHandling
Indica que o método implementa o padrão de projeto Pokemon Exception Handling, que consiste em capturar todas as exceções e aumentar a taxa de suicídio entre os mantenedores de código!
@PokemonExceptionHandling
public void cadastrar() {
try {
fachada.inserir(objeto);
} catch (Throwable e) {
// vamos pegar tudo!!
}
}
@Refudeuracao
Anotação que indica que um engenhoso processo de refatorar diversas vezes um código bem escrito até dar origem a uma porcaria que não pode ser mantida por mais ninguém foi feito com sucesso!
@SeFuncionouNaoMexe
Anotação para os códigos onde não se sabe ao certo se estão corretos, mas, se estiverem, é um sinal do nascimento de um novíssimo código hidra.
@SomenteOsInteligentesPodemVer
Indica um tipo de código especial que somente os inteligentes podem ver. Não se reprima caso não consiga lê-lo.
@SomenteOsInteligentesPodemVer
public String converter() {
// TODO generated method
return null;
}
@TinhaUmBugNoMeioDoCaminho
Padrão de projeto que consiste em desviar um código de seu curso natural para águas profundas a fim de contornar algum bug (geralmente um Heisenbug).
@CodigoHidra
Indica que um código lendário foi introduzido. Prepare-se para atacá-lo e ver que, a cada bug resolvido, vários outros aparecerão.
@DeixaQuieto
Não mexa! Tá funcionando! Qualquer tentativa de melhoria pode acarretar no surgimento de um código hidra.
@FodasticoIsso
Anotação para aquela "brilhante" ideia cujo autor merece ser sodomizado pela Masamune do Sephiroth.
/**
* Método que converte uma String no padrão #,##0.00 para um double
*/
@FodasticoIsso
public static double stringToDouble(String pString) {
if (stringVazia(pString)) {
return Double.NEGATIVE_INFINITY;
}
String aux = pString;
String[] vecPonto = stringToArray(pString, ".", true);
String[] vecVirgula = stringToArray(pString, ",", true);
if (vecVirgula.length > 1 && vecPonto.length > 1) {
if (vecVirgula.length == vecPonto.length) {
if (vecVirgula[0].length() < vecPonto[0].length()) {
aux = trocaSubString(aux, ",", "");
} else {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", ".");
}
} else if (vecVirgula.length > vecPonto.length) {
aux = trocaSubString(aux, ",", "");
} else {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", ".");
}
} else if (vecVirgula.length > 2 || vecPonto.length > 2) {
aux = trocaSubString(aux, ".", "");
aux = trocaSubString(aux, ",", "");
} else if (vecVirgula.length == 2) {
aux = trocaSubString(aux, ",", ".");
}
return (new Double(aux)).doubleValue();
}
@FoiOGersonQuemFez
Esta anotação indica um códio feito pelo Gérson e, portanto, impossível de ser mexido. Aceite sua condição inferior e vá tomar um café.
@FuncionouNaMinhaMaquina
Certificado de qualidade suprema em forma de anotação. Qualquer coisa anotada com ela estará automaticamente isenta de testes.
@GambiarraInside
Padrão de projeto supremo!
@Macarronada
Anotação para aquele código espaguete-de-birosca-da-esquina.
@PadraoFIFA
Anotação para aquele "elevado" padrão de qualidade.
@PiorQueTaNumFica
Nível supremo da insuficiência cerebral. Nada pode tornar o código pior. Isso indica o último estágio que beira o limite da compreensão humana.
@CorramParaAsColinas
Projejam-se! O código do estagiário vem aí!!!
@EhUmaCiladaBino
Cuidado!!! Você foi avisado (talvez tarde demais). Rejeite a demanda, arrume um atestado médico, mude de país, faça qualquer coisa, mas não aceite dar manutenção nesse código.
@EuDisseQueIaDarMerda
Anotação para enfiar o dedo na cara de quem não te ouviu.
@IssoVaiDarMerda
Anotação para uso em análises de risco e prevenção de acidentes.
@CaiDeParaquedas
Anotação utilizada para indicar que o programador caiu de paraquedas no desenvolvimento do sistema. O poder desta anotação é tão supremo que permite qualquer tipo de cagada sem punição alguma. Use com moderação.
@DeCuEhRola
Anotação para expressar desgosto. Use sem moderação.
@DeCuEhRola("Struts")
public ActionForward execute(ActionMapping mapping, ActionForm form, ServletRequest request, ServletResponse response) {
// ...
}
@SoPraTestar
Anotação que indica algo feito somente para fins de testes (como aquelas classes lindas com métodos main maravilhosos e um monte de System.out felizes e contentes tomando cerveja e dançando Macarena).
@Dejavu
Ei! Acho que já vi esse código antes...
@EpicFail
Tão épico que dispensa comentários.
@EuSabiaIssoComMacas
Anotação que indica uma funcionalidade que, por se tratar de outros objetos envolvidos, foi implementada de uma maneira não muito ortodoxa.
@EuSoEstouDandoManutencao
Anotação usada para indicar que você não foi o responsável por nenhuma cagada, apenas corrigiu algum bug (geralmente um carinhoso NPE) ou implementou alguma f
Related Skills
node-connect
354.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
112.3kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
354.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
354.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
