Skip to content
Created How to Contribute (markdown) authored by SG's avatar SG
# Quality has highest priority
### You are not your code
Read: https://blog.codinghorror.com/the-ten-commandments-of-egoless-programming/
### Write readable code
Developers spend about 25% writing code, but 75% reading it. Writing readable code saves a lot of time.
* Keep the coding style consistent
* Prefer longer, unambiguous names over short but ambiguous ones
* Prefer slower but easily readable code over short/fast but hard to read code (if it doesn't noticeable affect performance)
* Even small things matter; If a character (e.g. whitespace) is superfluous, remove it, if it is missing, add it.
### Choose quality over quantity
While quick and dirty implementations may save time in the short run, they will cost more in the long run.
* "Quick and dirty" is almost never an option, there is only "clean and solid"
* Always mark temporary or unfinished solutions using either TODO or FIXME with an explaining comment
* Use FIXME for code that is wrong or missing
* Use TODO for code that works, but needs to be improved
# Adding features
1. Make sure there is an issue on GitHub or something equivalent
2. Create a new branch for the feature, based on latest `develop`, e.g. `feature/some-keywords`
Note: Always include the issue ID in a commit comment, e. g. #23 implemented update task
### Writing Migration
We use [flywaydb](https://flywaydb.org/) for [database migration](https://www.wikiwand.com/en/Schema_migration).
If you never heared of [database migration](https://www.wikiwand.com/en/Schema_migration) please dig into the topic, this manual will allways cover technical details!
# Migration scripts
Our migrations can be found here: https://github.com/FAForever/db/tree/develop/migrations
Name Convention: `Vxx_some-keywords.sql`
\ No newline at end of file