No mês passado fui aprovado na certificação Oracle Certified Master, Java EE Enterprise Architect, e hoje eu gostaria de compartilhar as minhas dicas para os novos candidatos. Confesso que essa foi a prova mais difícil, demorada e cansativa que eu já fiz, mas que também foi a que mais me fez aprender e crescer como profissional. Esta certificação é composta por 5 fases:
Fase 1: Curso Obrigatório
Nesta fase o candidato é obrigado a fazer pelo menos um curso oficial da Oracle de Java em qualquer empresa parceira. Esse curso pode ser feito em qualquer momento da certificação – antes, durante ou depois. A minha dica é: se o candidato já tem experiência em Java e arquitetura, deixe para fazer o curso no fim. Se caso não, use os cursos para adquirir conhecimento para a prova fazendo os antes. Existe um grade completa de cursos de Java para o candidato adquirir know-how básico para essa certificação.
Fase 2: Java Enterprise Architect Certified Master Exam
Nesta fase o candidato tem que passar em um exame de 64 questões com a pontuação mínima de 57%. O conteúdo do exame cobre conhecimentos em princípios de design, arquiteturas de software, integrações entre soluções, mensageria, especificações e tecnologias Java, padrões de projetos e segurança.
Livros de estudos:
- Livro Sun Certified Enterprise Architect for Java EE Study Guide Mark Cade, Humphrey Sheil
- Livro Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) Paul Allen, Joseph Bambara
- Oracle Certified Master, Java EE Enterprise Architect Practice Guide by Amritendu De
Mesmo os dois primeiros livros tenham o mesmo objetivo, cada um pontua e reforça aspectos diferentes, sendo necessário o estudo de ambos. Outro detalhe importante é que essa certificação cobre muitas outras coisas que estes livros não abordam. Sendo assim, é importante que o candidato faça primeiramente a leitura deles para poder diagnosticar assim o que sera necessário estudar a parte.
Resumo:
Durante os estudos e simulados eu acabei fazendo um resumo de todo o que se precisa saber e memorizar para se passar nessa parte da prova. Sendo assim, os candiados podem usar esse resumo para memorização e para saber quais são os tópicos necessários de estudo a parte caso não conhecimento sobre o assunto. [Donwload do Resumo].
Simulado:
Sobre simulados, eu perdi muito tempo fazendo muitos simulados pela web mas quase todos estão defasados. O único que foi suficiente e que valeu a pena mesmo, foi esse da whizlabs. Use o cupom de desconto “whizoffer10” para ter 10% de desconto.
Fase 3: Java Enterprise Architect Certified Master Assignment
Nesta fase o candidato é responsável por desenvolver um projeto completo baseado em um documento de requisitos. Neste documento vem descrito o cenário de negócio da corporação, os requisitos do produto a ser desenvolvido e que você esta sendo contratado para ser arquiteto responsável pela elaboração e a criação dessa nova solução. Como em qualquer projeto, o arquiteto precisa analisar o cenário da corporação, bem como seus requisitos e fazer a tomada de decisões de design.
Livros Sobre Decisões de Design
A minha primeira dica é relacionada aos livros que você pode ler para aprender quais são as decisões de design mais comuns em soluções corporativas e quais são os prós e contras de cada uma delas. Segue os livros:
- POJO in Action by Chris Richardson – Esse livro apresenta versões de produtos Java antigas, mas as decisões de projeto ainda continuam a mesma. Eu indico como leitura inicial para que os candidatos aprendam o core básico das decisões, desprezando os produtos tecnológicos antigos utilizados pelo autor.
- Patterns of Enterprise Application Architecture by Martin Fowler – Esse livro é o mais indicado para essa fase dois da certificação aonde Martin Fowler descreve detalhadamente cada decisão de design dentro de uma solução corporativa acompanhando com os seus prós e contras. Ele pode até ser utilizado como “regra de bolo” para suas decisões de projeto durante a certificação.
- Domain Drive Design by Erick Vans – Esse livro aborda o principal design da atualidade que é o fato de se construir e documentar soluções orientadas a objetos sem gerar amarrações com tecnologias ou plataformas. Nele Erick Vans te ensina a visualizar e construir uma solução puramente orientada e objetos, independentemente de plataforma ou tecnologia.
- Design Patterns: Elements of Reusable Object Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides – Esse livro contém o catalogo de padrões mais básicos do paradigma da orientação a objetos que sem dúvidas nenhuma você precisa para resolver as estruturas das classes/componentes na solução.
- Real World Patterns Rethinking Practices by Adan Bien – Esse livro trás o estudo feito pelo Adan Bien que readapta e aposenta os antigos padrões da versão J2EE para as versões mais atuais do JEE 6+. Nele você aprendera como e quais padrões continuar usando e aqueles que não precisam mais ser utilizados.
Cada livro te oferece conhecimento voltado para uma parte da solução da certificação e o ideal seria que o candidato investisse na leitura destes livros antes de encarar a prova, uma vez que o tempo de entrega da segunda fase é de apenas seis meses.
Estudo de Casos Fictícios
A segunda dica é sobre livros e artigos que apresentam exemplos de soluções desenvolvidas para a segunda fase da prova, servindo também como estudo de caso para que os novos candidatos tenham uma noção básica e inicial de como a coisa é feita. Segue as dicas:
- Enterprise Enterprise JavaBean 3.0 by Bill Burke (chapter 21) – Nesse livro Bil Burke apresenta passos de como desenvolver uma solução JEE utilizando EJB3 recheado de detalhes e explicações que podem ser utilizados para aprender inúmeros detalhes semelhantes da segunda fase da prova.
- Sun Certified Enterprise Architect for Java EE Study Guide by Mark Cade and Humphrey Sheil – Nesse livro os autores cobrem todas as partes da certificação, apresentando nos capítulos finais uma solução exemplo com detalhes interessantes.
- Sun Certified Enterprise Architect for Java EE Study Guide (Exam 310-051) by Paul Allen and Joseph Bambara – Nesse livro os autores também cobrem todas as partes da certificação, apresentando nos capítulos finais uma solução exemplo com detalhes interessantes.
- Oracle Certified Master, Java EE Enterprise Architect Practice Guide by Amritendu De – Esse livro é o mais recente sobre essa certificação que foi lançado após eu ser aprovado no qual eu ainda não tive a oportunidade de ler, mas que como os outros, também possuem uma solução exemplo nos capítulos finais.
- Epractizelab Simulator – Simulador pago da empresa Epractizelab que traz um exemplo de um projeto e a solução que também pode ser utilizado como estudo. Como eu não comprei, não posso opinar se é bom ou não. Para todas as dúvidas acesse http://www.epractizelabs.com/certification/sun/scea-5-part23-exam.html
- Revista Mundo Java Edição 35 Artigo SCEA5 Certificação de Arquiteto – Artigo completo sobre um projeto e a solução fictício escrito por Marcio Varchavsky.
Criando a Solução:
Segue algumas dicas para você começar a sua solução. Preste atenção na extração de requisitos:
- Descrição da história da empresa.
- Descrição dos sistemas legados.
- Descrição de casos de uso.
- Descrição da infraestrutura necessária.
Documentação de requisitos da certificação é obscura, incompleto e pode até vir propositalmente com alguns erros. Você poderá precisar fazer algumas correções e ou suposições em cima do contexto para complementar o projeto, tornando o implementável. É justamente por isso que faz parte da entrega da solução um documento de decisões de projeto no qual você deverá descrever suas suposições e como elas afetaram a sua solução final. Preste atenção na extração dos requisitos não-funcionais e destaque as descrições associadas a cada exigência. Exemplos:
- Número de demanda para uso da solução
- Expectativa de aumento de escalabilidade.
- Tempo de resposta de usuário final.
- Tempo de resposta de comunicação nas integrações com outros sistemas.
Faça Suposições
Na questão das suposições, você tem dois caminhos a seguir:
- Suponha que alguma coisa já exista na solução proposta e assim não faça nada relacionado com aquilo e documente essa suposição.
- Suponha que alguma coisa não exista na solução proposta e assim necessitando ser adicionando e considerado na arquitetura como parte da sua solução proposta. Tenha cuidado com esse caminho, uma vez que você estará aumentando seu projeto e consequentemente abrindo mais espaços para inconsistências e erros.
A minha dica sobre isso é: não assuma ou invente coisas que adicione complexidade ao seu projeto. Faça suposições de coisas que estão faltando com o objetivo de complementar as possíveis faltas de informações. Resista a tentação de fazer coisas mirabolantes.
Diagramas
Segue algumas dicas para a construção dos diagramas:
- Os diagramas precisam estar desacoplados de qualquer detalhe de tecnologia ou framework especifico, independente de fornecedor.
- A essência dos diagramas é apresentar a estrutura que resolve os problemas do contexto proposto e não a infraestrutura de tecnologia e frameworks adotada.
- Mantenha os diagramas em alto nível. Ou seja, não se preocupe em mostrar coisas de baixo nível como algoritmos, detalhes de API, etc.
- Comece com o diagrama de implantação, depois classes, depois sequencia e por fim o de componentes.
- Não se esqueça de ir documentando todas as suposições e as decisões de design que você for fazendo ao longo da construção de diagramas.
Fase 4: Java Enterprise Architect Certified Master Essay Exam
Na última fase da prova, o candidato precisara responder a 8 perguntas relacionadas ao projeto desenvolvido. A minha dica aqui é a seguinte: responda às questões de arquiteturas durante a fase de projeto, ao mesmo tempo em que você produz o documento de decisões. Segue abaixo uma listagem de possíveis perguntas que poderá encontrar na prova:
- How does your design handle availability? Why did you choose it? pros and cons of your approach?
- How does your design handle reliability? Why did you choose it? pros and cons of your approach?
- How does your design handle scalability? Why did you choose it? pros and cons of your approach?
- How does your design handle performance? Why did you choose it? pros and cons of your approach?
- How does your design handle security? Why did you choose it? pros and cons of your approach?
- How does your design handle extensibility? Why did you choose it? pros and cons of your approach?
- How does your design handle maintainability? Why did you choose it? pros and cons of your approach?
- Set of design patterns on which layer and why?
- How does your design support session/state handling?
- How does your design handle persistence?
- How does your client tier talk to business tier?
- How does your design handle Qos 5 Sec in peak time?
- How does your design handle transactions?
- How does your design handle authentication and authorization?
- What technology u have used in presentation and business tier why?
- How many SB’s you used and purpose of them?
- Why have you chosen framework If any If not why not ?
Não deixe para pensar e elaborar essas respostas na hora da prova por que você não terá tempo hábil para isso. Respondendo elas antecipadamente, te ajudara a chegar a ultima prova bem preparado e até mostrar erros que você cometeu durante a elaboração do projeto, levando você refatorar alguma coisa.
Fase 5: Course Submission Form
Depois de fazer o curso obrigatório e ser aprovado nas três provas que compõem a certificação, nesta fase o candidato entrará na ferramenta da VUE para enviar a confirmação do curso obrigatório feito para o sistema da Oracle com o objetivo de notificar que o candidato finalizou a grade da certificação. Com isso, a Oracle enviara posteriormente o kit de credencial de profissional arquiteto Java. Para todas as informações, acesse a grade oficial da prova.
Eu me coloco a disposição para qualquer eventual dúvida relacionado a arquitetura ou sobre a certificação. Agora é renovar a metas e continuar avançando. Até a próxima pessoal!