• Stars
    star
    203
  • Rank 191,661 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ“— The Code Smells Catalog

Bad Code Smells

A Comprehensive Online Catalog

Visit the Website ยท Preprint ยท Springer Paper ยท The Thesis

Table of Contents

  1. What's this?
  2. How can I use this?
  3. Who is the beneficent?
  4. How can I contribute?

What's this?

This repository contains the source of the Code Smell Catalog website that contains the current list of smells along with their:

  • attributes
  • categories
  • types
  • relationships between them
  • problems which they cause
  • refactoring methods
  • history
  • examples

How can I use this?

Website

Feel free to visit the website and browse around!

Data

If you would like to scrape the data, clone the repository and run python /data_scraper/main.py.


Who is beneficent?

Everyone

New Programmers

New developers can browse the code smell list in a nice, readable form of articles and read about them to get a good intuition of what might be a bad practice or what they should watch out for.

They can find the descriptions of smells, their potential causation example, and table-formatted, higher-abstraction attributes about the particular code smell (like whether it is a smell that happens within a class or between classes). On top of that - the majority of code smells have examples that are often very significant when one is learning about a new thing.

Developers

It's much easier to handle a code review discussion when someone can place a link directly to the source of his concerns. This could benefit and accelerate the understanding of code smell among developers.

A large proportion of developers may even intuitively know about most of these things without knowing about the issue itself as a named phenomenon. This, again, can improve the overall skills of developers.

Researchers

The data and information about smells are scattered around and it's hard to collect every single smell to holistically execute research on them. Currently, as of 2022, the researched data about different smells is drastically disproportionate. Some Code Smells are almost always taken into account, some rarely, and some are not covered by the research at all - either because they were lost in the information noise or because they never occurred with the appropriate keyword.

This catalog is designed to unify the available data, and standardize the nomenclature (synonyms) and the different perspectives (taxonomies) from which this issue can be examined.

How can I contribute?

If you would like to contribute, you are more than welcome by opening a new discussion in the issues or directly adding changes by opening new merge requests. I suspect there might be some discussions going (I am deeply convinced that in such a huge pile of stuff, I had to make mistakes, even just statistically speaking). ๐Ÿˆ

This is supposed to be as easy as possible for everyone to contribute from the theoretic side - no need to know any programming languages, as the contents of the website can be managed by markdown-like files in the content directory. The content is in a standard markdown format and the key data in the markdown file header in YAML format.

More Repositories

1

YouTubeBlackNightCSS

๐ŸŽจ YouTube Black Night - Dark Themed Custom CSS
CSS
7
star
2

MemeMate

๐Ÿ’˜ Meme Mate is a Tinder like app to search for people in same meme taste around our location
Kotlin
7
star
3

NotifAyy

๐Ÿ“‘ NotifAyy - Get Notified About Site Changes on Your App
Python
6
star
4

GitVersioniser

๐Ÿ““ Automatic Semantic Versioniser & ๐Ÿ“‘Change Tracker. โžฅ This tool can be easily integrated with any git project through Github Actions to take the burden of manual updating of software versions from developers entirely.
Python
5
star
5

Scala

๐Ÿƒ Functional & Concurrent Programming
Scala
4
star
6

PythonCourse

๐Ÿ Machine Learning w/ Snake Language
Python
3
star
7

CryptoImage

๐Ÿ–ผ๏ธ Information Acquisition and Protection Engineering
HTML
3
star
8

ClinicDB

๐Ÿฅ Application that handles clinic database and manages visits, meds & patients.
Java
3
star
9

PingPong

๐ŸŽพ Ping Pong for two players in Kotlin - coop mode
Kotlin
2
star
10

AdaConcurrency

๐Ÿƒ Concurrency / Pararell Computing Projects in Ada language
Ada
2
star
11

WWW

๐ŸŒ Websites & Technology
CSS
2
star
12

ProgrammingInLogic

๐ŸŽ“ Prolog
Prolog
2
star
13

CandidateGithubProfiler

๐Ÿ“ƒ Research In Software Engineering
TeX
2
star
14

Hangman

๐ŸŽฒ Hangman Game for Android made in Kotlin
Kotlin
2
star
15

FamilyBudget

Fullstack Contenerized Web Application
Python
2
star
16

DesignAndImplementationOfWebSystems

๐Ÿ–ผ๏ธ Design & Implementation of Web Systems
HTML
2
star
17

ChineseCheckers

๐Ÿ€„๏ธ Chinese Checkers with online module
Java
1
star
18

PC

๐Ÿ‘ถ Programming Course (Beginnings)
Java
1
star
19

TechnologieSieciowe

๐Ÿ“• Architektura Internetu, protokoล‚y, modele i systemy sieciowe
Java
1
star
20

AdventOfCode2022

Python
1
star
21

Polichan

๐Ÿ•ถ๏ธ Project for Design & Implementation Of Web Systems
TypeScript
1
star
22

TicTacToe

๐ŸŽฒ Tic Tac Toe [8x8 grid] with online multiplayer functionality
Kotlin
1
star
23

DS-A

๐Ÿ“ˆ Data Structures & Alghoritms
Java
1
star
24

GoConcurrency

๐Ÿƒ Concurrency / Pararell Computing Projects in Go language
Go
1
star
25

BEng-Thesis-Paper

๐Ÿ“” Game Development - Research & Implementation
1
star
26

CAaOS

๐Ÿ“ Computer Architecture and Operating Systems
C
1
star
27

ToDoApp

๐Ÿ“‘ Todo App for Android that allows user store his tasks
Kotlin
1
star
28

ScientificCalculations

๐Ÿ“” Computer Edge-Cases & Scientific Math
Julia
1
star