Na verdade, a única coisa que você precisa em uma instalação do Magento 2 é um composer.jsonarquivo que requer o pacote magento/product-community-editiondo repositório do Composer https://repo.magento.com/ .
Agora, quando você executa, composer installele faz o download de muitos pacotes Magento e de terceiros (Composer, Symfony, Zend, etc ...) e os coloca na vendor/pasta. Graças ao instalador do Magento Composer, ele também copia muitos arquivos do Magento 2 para a raiz. Mas, na verdade, todo o seu código vem vendor/.
Agora, a app/codepasta não está lá por padrão. Você pode criar você mesmo e adicionar seu módulos locais nessa estrutura:app/code/<VendorName>/<ModuleName> .
Você também pode desenvolver seus módulos em um repositório separado do VCS (ou seja, GIT) em algum lugar e adicioná-los ao seu, o composer.jsonque fará com que eles também sejam instalados no vendor/diretório.