Analisando o código criado até o momento, o grupo identificou três Code Smells:
Coupler: No diretório search, o arquivo trigram.py declara uma classe, Trigram, que é exclusivamente usada pela classe SearchView do views.py. Esta segunda classe usa diretamente o método e a funcionalidade geral da Trigram, a qual somente existe para servir a SearchView (Inapproriate Intimacy / Middle Man). Assim, a funcionalidade de Trigram poderia ser implementada como um método de SearchView.
Dispensable: No arquivo tests.py do diretório search, em todos os métodos da classe de teste SearchTestCase é instanciado um Client para ser usado no respectivo teste. Essa prática configura um caso de repetição de código desnecessária (Duplicate Code) já que, através do método setUp, o mesmo Client poderia ser usado para todos os casos de testes.
Change Preventer: O framework Django introduz herança entre arquivos de HTML, de modo que arquivos possam herdar de outro para reutilizarem seu conteúdo, podendo inclusive expandir de blocos definidos, como se fossem métodos abstratos. No projeto, há um arquivo global, base.html, para reger definições de estilo e formatação. Apesar dessa funcionalidade, existem vários arquivos presentes no projeto, como os arquivos nos diretórios user/templates e infos/templates, que atuam de forma independente da hierarquia global presente. Isso configura uma Shotgun Surgery, visto que mudanças em aspectos que deveriam afetar todas as páginas do site requerem mudanças individuais nas parcelas fragmentadas.
Com esses smells identificados, é essencial o tratamento para o bem-estar do projeto.
Analisando o código criado até o momento, o grupo identificou três Code Smells:
Com esses smells identificados, é essencial o tratamento para o bem-estar do projeto.