Difference between /usr/local and /opt in Linux

/usr/local
Here are the programs which split their components in bin/sbin, etc, lib and other

/opt
Here are installed programs which NOT split their components like Google Chrome, Skype, some code editors