Existem 3 níveis de código no Magento 2

* Library
* Core
* Business Logic

Não é necessário declarar o tipo, basta a o nome da classe e o namespace coincidir com a estrutura e o nome do arquivo que a classe poderá ser utilizada sem qualquer declaração.

Em uma instalação nativa do Magento, há apenas um vendor que é o “Magento” para criar código customizado, você pode criar Vendors adicionais.

Para adicionar código sob app/code, a estrutura é app/code/<vendor>

Código PHP adicionado na pasta vendor/ é localizado usando o composer autoloader

Códigos nativos estão localizados em app/code/Magento

Arquivos de template e de layout estão localizados na pasta View

Na pasta View temos as areas:

* frontend
* adminhtml
* base

E dentro da cada, há as pastas

* templates (contem arquivos .phtml)
* layout (contem arquivos de layout)
* web (contem arquivos requisitados pelo navegador diretamente, como CSS e JavaScript)

Todos os elementos de design, agora estão localizados em app/design