Updated Architectural Decision Records (markdown)
parent
8e3443e75d
commit
39e298ff5f
|
@ -9,7 +9,7 @@ It has been made so that new developers can more easily work on the project. The
|
|||
This page was first written on **23.08.2018**, so decisions made before that are post fact.
|
||||
Last Modified: **23.08.2018**
|
||||
|
||||
### 1.0.0 - 1.6.2 (1st - 27th December 2016)
|
||||
### 1.0.0 - 1.6.2 (1st - 27th December 2016)
|
||||
|
||||
First Java Project by Rsl1122.
|
||||
|
||||
|
@ -18,7 +18,7 @@ First Java Project by Rsl1122.
|
|||
**Important Features:** `/plan inspect` and `/plan analyze` commands display information in game
|
||||
**Plugin at this state:** https://www.spigotmc.org/resources/planlite-player-analytics-lite.34889/
|
||||
|
||||
### 2.0.0 (28th December 2016 - 16th January)
|
||||
### 2.0.0 (28th December 2016 - 16th January 2017)
|
||||
|
||||
**Development Goal:** Display statistics on a website, hosted from a web server on the plugin.
|
||||
**Development Goal:** Start recording own data
|
||||
|
@ -145,6 +145,10 @@ Impact: Due to default values being absent from the locale keys, it becomes diff
|
|||
|
||||
**Development goal:** Support BungeeCord networks
|
||||
|
||||
**Architectural Decision:** Abstraction Layer between Plan and server platforms: [Abstract Plugin Framework](https://github.com/Rsl1122/Abstract-Plugin-Framework)
|
||||
|
||||
Impact: Hard to change code in the abstraction framework when Plan doesn't work.
|
||||
|
||||
**Architectural Decision:** Database Schema based on Server table
|
||||
|
||||
Impact: Multiple servers are supported, more join operations in queries. Most of old data has to be discarded due to bad database schema
|
||||
|
@ -190,12 +194,14 @@ Impact: 1.7.X servers supported again
|
|||
|
||||
**Architectural Decision:** Refactor plugin to different "Systems"
|
||||
|
||||
Impact: Easier to develop.
|
||||
Impact: Easier to develop. Serves as an Abstraction layer between a platform specific plugin and the functionality. Testing is easier.
|
||||
|
||||
**Bad Architectural Decision:** Make "Systems" accessible via static `getInstance()` methods
|
||||
**Architectural Decision:** Make "Systems" accessible via static `getInstance()` methods
|
||||
|
||||
This decision came from exposure to Kingdoms API, which uses getInstance() methods that seemed convenient.
|
||||
Unforseen at the time, this increases their usage everywhere and this can lead to a lot of code smells further down the line.
|
||||
This decision came from exposure to Kingdoms API, which uses `getInstance()` methods that seemed convenient.
|
||||
Implementation on Plan does not work, because on Kindoms the modules are singletons, on Plan they are not.
|
||||
|
||||
Impact: Increased usage of static everywhere and this can lead to a lot of code smells further down the line. Testing is difficult.
|
||||
|
||||
### 4.2.0 (2nd May - 7th April 2018)
|
||||
|
||||
|
|
Loading…
Reference in New Issue