Shims ease migration as complete parts of the code, such as validation and other model property settings can be reused immediately without refactoring them right away.
See the Shim plugin for details.
Note: It does not hurt to have them, if you don't use them. The overhead is minimal.
The following can be used in 3.x (mainly via Shim plugin support):
The session component of the core is deprecated and will throw a warning as it will soon be removed. Better use the plugin one right away. It is a 1:1 clone of it.
namespace App\Controller;
use Tools\Controller\Controller;
class AppController extends Controller {
public $components = array('Shim.Session');
}
It also contains the new consume() method.