### 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 ));
```