Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Arquitetura de software

Olá Minha duvida é simples... Eu conclui todos os cursos da formação android e pretendo continuar melhorando, meu foco agora é estudar arquiteturas, e notei que em muitas descrições de vagas possuem requisitos dessas arquiteturas como MVC,MVVM, entre outras siglas por ai... gostaria de saber a opinião de quem esta na area qual é o nivel de maturidade que uma pessoa necessita ter sobre essas siglas para poder atuar na area como JR ? e por ultimo durante os cursos desta formação o Alex implementou varias fatorações manteve um padrão de ornanizacao e etc... tudo oq ele fez possui algum nome especifico em termos de arquitetura? existe algum curso aqui na alura que explica e detalhe mais na pratica isso tudo acontecendo ?

3 respostas

Olá Fernando, tudo bem com você?

Eu não tenho muita experiência na área, mas uma coisa é certa: cada empresa vai buscar um nível de conhecimento diferente em suas vagas, mesmo se pegarmos várias vagas para JR - ou até mesmo estágio, é possível ver um nível de discrepância bizarro entre os requisitos que cada uma exige. Então é complicado ter uma resposta definitiva, mas vamos tentar ser o mais razoável possível!

Se tratando dessas questões, acredito que conhecendo a motivação por traz desses padrões de projeto e arquiteturas, você já está no caminho certo. Saber colocá-los em prática também ajuda, mesmo que seja em um projeto pessoal pequeno, já que isso mostra que você realmente absorveu algo, mas, é claro, também é preciso saber explicar o porque de você ter escrito o seu código da forma como você fez! Aliás, essa última parte nem sempre é obrigatória, conheço muita gente (na verdade, a maioria dos meus colegas de faculdade) que começou como Dev Jr. sem saber praticamente nada de padrões de projeto e boas práticas, apenas com a teoria, lógica de programação e algum conhecimento em banco de dados.

Enfim, se tiver interesse em conhecer mais sobre boas práticas e outros padrões que o Alex aplicou durante as aulas, recomendo dar uma olhada na Formação de Arquitetura e Design de Projetos Java. Como o foco está nas boas práticas em Orientação a Objetos e padrões de projeto, essa formação é válida para qualquer programador, independente da linguagem. Inclusive, muito do que você vai aprender no módulo de testes dessa formação, também é abordado na Formação de Testes automatizados no Android. Apesar do foco ser outro, também temos uma formação mais avançada que trata das boas práticas para organizar a estrutura de um projeto Android: a Formação de Arquitetura Android. Aqui estamos focando nas telas e na organização de componentes do aplicativo, então fica a seu critério decidir se faz sentido fazer a formação - além disso, os cursos dessa formação utilizam a linguagem Kotlin.

Espero que isso ajude. Se algum ponto não ficou claro é só avisar!

Forte abraço e bons estudos!!

Olá Thiago tudo tranquilo Obrigado pela resposta e pela explicação vai me ajudar mesmo, na minha teoria escrever um código e ele gerar o resultado que o cliente espera é o principal, porem tem estas siglas que devemos seguir para manter padrões e etc conforme descreve algumas dessas formações que vc citou e vou buscar aprender mais... sobrou somente uma duvida que é referente a organização de como o Alex escreve os códigos deles durante os exemplos de projetos... gostaria saber se o padrão de como ele fez possui algum nome de sigla... pois acredito que absorvi muito bem oque mostrou.

solução!

Opa Fernando, entendi! O Alex é um cara que sempre busca utilizar as boas práticas de código, então não vou saber especificar os nomes dos padrões que ele utiliza. Inclusive, nem tenho certeza se existe um nome para a maioria das práticas que ele utilizou durante as aulas.

Geralmente, essas boas práticas e "padrões" são guiadas pelos princípios do SOLID que descrevem como escrever um código que respeite os princípios da Orientação à Objetos. Em relação aos Design Patters (os famosos padrões de projeto), pelo o que eu me lembre, ele não aplicou nenhum em específico. Talvez seja interessante ver alguns padrões arquiteturais, como o Clean Architecture que foram usados com mais ênfase no último curso da formação, onde lidamos com uma API web.

Agora, um curso que eu havia esquecido de mencionar - mas que talvez ajude com o seu objetivo, é o curso de Refatoração em Java: Boas práticas no seu código. Eu não cheguei a fazer esse curso, porém, se não me engano, ele é bastante focado na prática e deixa a teoria um pouco de lado.

De resto, é só seguir a Formação de Arquitetura e Design de Projetos Java mesmo. Dando ênfase, principalmente, aos princípios do SOLID e Clean Architecture, pode até ser que você encontre algum Design Pattern que o Alex tenha usado, mas realmente não lembro dele ter usado algum durante os cursos.

Acho que é isso, se tratando de padrões de projeto, dá uma olhada em Design Patters I e Design Patters II. Se tratando de padrões de arquitetura: Clean Architecture.