Resenha- OpenSAP SAPUI5 – Semanas 3 e 4

Acabo de submeter meu exame final do MOCC do OpenSAP Developing Web Apps with SAPUI5 e agora posso publicar os meus comentários sobre as duas últimas semanas.

TL;DR

Se as duas primeiras semanas foram bem parecidas com o walkthrough, posso dizer que as duas últimas foram diferentes. Minha opinião continua a mesma, se você tem interesse no mundo desenvolvimento SAP o treinamento é OBRIGATÓRIO!

Semana 3

A semana 3 começa com a criação de um novo projeto a partir de um template. Eu não gosto de usar templates, principalmente em um treinamento, já que você perde a visibilidade do que está sendo criado. Esse é um problema universal da geração de código. Já trabalhei em projetos usando um gerador de código ABAP e a experiência não foi positiva. Invariavelmente o código gerado era confuso e contra-intuitivo. Debugar um código de outro programador é sempre mais difícil do que debugar seu próprio código. Quando você usa um gerador de código, você tem a mesma dificuldade de debugar um código de outrem em seu próprio código!

Dito isso, começo a semana um pouco cismado. Após a geração do código baseado no template, percebo que o código gerado é muito bom. Sem complicações desnecessárias e muito objetivo. Para ser sincero até aprendi alguns truques novos.

Unidades da semana 3

Unidades da semana 3


O bom de fazer um treinamento planejado pelos criadores da ferramenta é ter a oportunidade de aprender a filosofia da ferramenta. Explico. Quando estava fazendo meu primeiro projeto em SAPUI5 eu não conseguia aceitar a criação do modelo de maneira automática pelo framework, ou pelo arquivo de configuração manifest.json. Mas é assim que os criadores do SAPUI5 pensaram e assim que é o “jeito certo” de fazer. Coloco entre aspas, pois não há um jeito certo, mas o que se espera de como seja feito.

Criar rotinas e hábitos é dica recorrente em artigos sobre produtividade. Quando você tem uma rotina pre-definida você não precisa desperdiçar energia pensando no que você precisa fazer. Você pode se focar unicamente na execução da tarefa. Quando existe uma maneira padronizada de se fazer algo, fica mais fácil de entender o que outra pessoa fez. Se você instancia os modelos a partir do manifest.json, você não precisa ficar procurando no código onde isso foi feito. Se todos fazem da mesma maneira, não precisamos ficar perdendo tempo em entender como a roda foi feita.

Com isso acabei me convencendo que o uso dos templates são uma boa idéia.

A semana continua e, com base no esqueleto gerado pelo template, a nova aplicação ganha corpo. A criação de aplicações responsivas, ou seja, adaptáveis aos diversos dispositivos, como desktops, tablets ou smartphones, é assunto permeado durante toda a semana. Esse é um dos principais argumentos de venda do SAPUI5 e é mesmo uma característica muito bem vinda. Lembro de quando fazia programas module pool para do tipo SAP Console. Esses programas seriam executados naqueles aparelhos usado para aquisição de dados.

Coletor de dados para ser usado com o SAP Console

Coletor de dados para ser usado com o SAP Console

Para se fazer um programa ABAP para ser executado no coletor de dados era necessário instalar um Add-on e fazer uma série de configurações. Esse não era o problema, mas sim o próprio programa ABAP seria muito trabalhoso de ser feito e, por um bom tempo, certeza de muitos chamados para resolução de erros em produção.

Sendo assim, um programa para ser executado no coletor de dados era exclusivo para isso. Para ser mais preciso, era exclusivo para aquele tipo de tela. Se você tentasse rodar em um aparelho com tamanho de tela diferente, botões sumiriam, campos seriam cortados e nem uma barra de rolagem seria mostrada. Ou seja, era necessário fazer telas diferentes para cada tamanho de tela. Responsividade nem fazia parte do dicionário nessa época.

Plataformas suportadas pelo SAPUI5

Plataformas suportadas pelo SAPUI5

Por isso responsividade é uma palavra muito “bonita” no mundo SAP. Responsividade significa economia de dinheiro e isso sim é um argumento de vendas infalível.

Após aprender a fazer uma tabela com layout responsivo, aprendemos a fazer filtros e fragmentar o código. Seria a mesma coisa que aprender a fazer sub-telas no ABAP. Graças ao SAPUI5, usar os fragmentos de tela chega a ser trivial e intuitivo.

Semana 4

A semana 4 aprendemos roteamento, atualização de dados usando OData e testes unitários. O que foi mostrados nas três semanas anteriores não chegaram a ser exatamente novidade para mim, mas essa semana fui muito legal para tomar conhecimento de conceitos que me chamam muita atenção: roteamento e testes unitários.

Unidades semana 4

Unidades da semana 4

A primeira vez que tomei contado com o conceito de roteamento em aplicações web foi com Ruby on Rails. Lembro de ficar impressionado com a simplicidade do conceito e como aquilo resolvia o problema de links estáticos. Com o SAPUI5 foi a mesma coisa. Usando roteamento corretamente juntamente com uma modelagem correta no Gateway você cria aplicações muito elegantes.

Na segunda unidade é mostrado como fazer para criar um novo registro usando OData. Nenhuma novidade aqui. Mas as unidades 3, 4 e 5 foram muito legais. É mostrado as ferramentas usada pelo SAPUI5 para testes unitários.

Testes unitários é um mundo a parte dentro do universo da programação. Infelizmente, não vejo no curto e médio prazo o uso disso no mundo desenvolvimento SAP. A velha desculpa de sempre, prazos apertados não permitem esse “luxo”. Interessante que em outras tecnologias é uma vergonha você entregar alguma rotina ou classe sem o devido teste unitário. Será que algum dia teremos programadores no mundo SAP fazendo bulling de outros programadores por não fazerem testes unitários? Não tenho muita esperança nisso.

O assunto de teste unitário ficou longe de um aprofundamento, mas com certeza me atiçou para começar a investigar mais a fundo o assunto. Sério mesmo que existia uma maneira de fazer teste automatizados para testar comportamento de controles na tela e eu não sabia?! Realmente preciso entender melhor isso.

Conclusão

Repito mais uma vez, se você tem o plano de entrar no mundo de desenvolvimento SAP, o curso é obrigatório. Se você é ABAPer e quer uma boa introdução ao SAPUI5, o curso é obrigatório também. Para falar a verdade, se você quer ter alguma relevância no mundo desenvolvimento SAP o curso é obrigatório.

O treinamento foi apresentado por pessoas integrantes da equipe de desenvolvimento da própria SAP. Ao contrário de muitos outros cursos que acompanhei na OpenSAP, esse foi o mais prático de todos. Acho somente que eles poderiam ter explorado mais os exercícios extras. O fato deles não publicarem a solução, apenas um validador do código exige que você tenha que realmente resolver o problema. Gostaria de ter tempo para fazer um validador desse para nossa lista de exercícios ABAP, mas esse sará mais um daqueles projetos que nascem já na gaveta…

Você pode gostar...

3 Resultados

  1. Custodio de Oliveira disse:

    Fala Furlan,

    Muito boa a resenha, como ja havia sido das semanas 1 e 2. Nao cheguei nas semana 3 ainda, estou em “self pace mode”.

    Posso estar enganado, mas os codigos de solucao dos exercicios nao foram disponibilizados na semana 0?

    Abraco!

  2. Muito legal o curso, finalizei também e gostei muito! Pra mim o data binding ainda me confunde, principalmente quando usa odata model. Mas estamos na caminhada!