Coder Social home page Coder Social logo

vanzaj / code_smells Goto Github PK

View Code? Open in Web Editor NEW

This project forked from luzkan/smells

0.0 0.0 0.0 3.44 MB

馃摋 The Code Smells Catalog

Home Page: https://luzkan.github.io/smells/

License: MIT License

JavaScript 13.64% Python 4.86% TypeScript 81.51%

code_smells's Introduction

Bad Code Smells

A Comprehensive Online Catalog

Visit the WebsitePreprintSpringer PaperThe 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.

code_smells's People

Contributors

luzkan avatar rruiter87 avatar calypsow777 avatar splitdiff avatar mishaevtikhiev avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    馃枛 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 馃搳馃搱馃帀

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google 鉂わ笍 Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.