• Stars
    star
    211
  • Rank 186,867 (Top 4 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 2 years ago
  • Updated about 1 year 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