Giter Club home page Giter Club logo

desipartart's Introduction

desipartart - Design Analysis by VCS

desipartart: Design Partition is Art

Concept:

Can we investigate and assess the quality and features of the design of some software by looking at how files have changed over time? By looking at which files change together, based on change sets from the history from a version control system?

Look at index.html for more.

TODOs

  • Treat files as unique entities based on full path

  • Look at "packages" based on directories, but not nested (like Java packages)

  • Look at nesting, based on directories - split paths

  • Follow file renames (includes moving folder?)

  • (Optionally) include/exclude self-links

  • (Optionally) include/exclude unlinked files

  • Exclude edges representing fewer than N changes

    • Combine with exclude "unlinked" files - unlinked if edge is excluded
  • Combine trees based on paths - for example, treat these two files as being in the same package even though the paths differ:

    • src/main/java/org/ayeseeem/example/Example.java
    • src/test/java/org/ayeseeem/example/ExampleTest.java

    Could either merge src/main/ and src/test (merge one into the other), or perhaps just strip src/main/ and src/test - less meaningful, but maybe easier?

  • Keep track of dates and warn if log is not in chronological order (implying --reverse was not used to create the log).

    • Or better yet, automatically detect/fix order
    • Does order matter if not using/following renames?
  • Exclude/Include commits on input based on prefix (or Conventional Commits prefix), regex, SHA.

    • Update live based on Exclude/Filter by.

Visualisation Details

  • Display shorter filenames? (what about duplicates?)
  • Is there a "pending" animation we can add to graph?
  • Highlight linked files when you select a Node. Or an Edge.

Implementation Details

Worries

  • How come package-info.java is linked to so many files? Because it was added with a lot of files? Do we want/need to distinguish between file add and file change?
  • Why are there so few (no) leaf nodes?

Licence

The licence for this code is TBD, but it will be a liberal licence like Apache or MIT.

desipartart's People

Contributors

ayeseeem avatar

Watchers

 avatar  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.