Managing dependecies
- Build tools allows project manage and import dependencies. - Helps with stopping conflicts with different versions and transient dependencies 
 
- Always validate them - Understand the other dependencies that one dependency defined in config that will be brought in to the class path 
- check that these dependecies can be trusted - Do they meet requirements for app, deployment, environments, security, legal etc 
 
- Do not just trust them - They are still code 
- Most will come from open source 
- Are they being maintained? - ow you will need to do this? 
 
- How many contributors? 
- Documentation? 
- Are tests passing? Code coverage? 
- Maturity? 
- Check Issues? Are they resolved? 
 
 
- Vulnerable Dependencies - From a security point of view, you should scan your dependencies for known vulnerabilities. 
- Always update version which fixes these issues - There should be a plugin 
- Check issues on github 
 
- If cannot, make sure application can replace library easily 
- This applies to code in production 
 
- Always fix dependencies - And have schedule to update 
- Have a way of monitoring when an update is needed due to a vulnerabilities 
 
Bill of materials (BOM)
- http://java.jonathangiles.net/JBP-1 
Minimise Dependencies
- http://java.jonathangiles.net/JBP-2 
Versioning
- Have fixed versions 
- http://java.jonathangiles.net/JBP-3 
Maintance
- Always keep depencies up to date 
- http://java.jonathangiles.net/JBP-4 
Better to copy
- depending on the license, it might be better to copy the functionality then import the whole library which contains lots of unneeded code and transitive dependencies 
- http://java.jonathangiles.net/JBP-8 
Links
- https://pointersgonewild.com/2022/02/11/code-that-doesnt-rot/ 
Last updated
Was this helpful?