SkillAgentSearch skills...

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/Cafeina
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

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

View on GitHub
GitHub Stars38
CategoryDevelopment
Updated4y ago
Forks1

Languages

Java

Security Score

75/100

Audited on Jun 16, 2021

No findings