### Keep Organized
- **Let go code scraps:** Don't comment out old code. Delete them. You can find them in your git history.
- **Don't ignore warning:** Treat warning as error. Fix them as you go on.
### Use Source Control
- **Keep commit small:** Keep it small, localized and self contained. 
- **Write clean and helpful commit message:** What is changed? Why change it?
- **Write code comment:** Explain "why this code is written" and "How it fit into the whole picture"
- **Do Code Review**
### A Template of code document
- Summary
- How to use it in the code
- Discussion
Reference:
 - WWDC 2019 Great Developer Habbits: https://developer.apple.com/videos/play/wwdc2019/239/
### Minimizing Function Footprint
It's good practice when writing plugins to only take up one slot within $.fn. This reduces both the chance that your plugin will be overridden, and the chance that your plugin will override other plugins. In other words, this is bad:
```javascript
(function( $ ) {
 
    $.fn.openPopup = function() {
        // Open popup code.
    };
 
    $.fn.closePopup = function() {
        // Close popup code.
    };
 
}( jQuery ));
```
It would be much better to have one slot, and use parameters to control what action that one slot performs.
```javascript
(function( $ ) {
 
    $.fn.popup = function( action ) {
 
        if ( action === "open") {
            // Open popup code.
        }
 
        if ( action === "close" ) {
            // Close popup code.
        }
 
    };
 
}( jQuery ));
```