projetos open source e pessoais como oportunidade de … · 2013. 12. 22. · classe cl_salv_table...
TRANSCRIPT
-
Projetos Open Source e pessoais como oportunidade de aprendizado
Por Fábio Pagoti 20131213
-
WRITE: me->get_short_bio( ).
• Formado em Sistemas de Informação pela USP
• ABAPer desde 2009 • Autor do blog ABAP101.com • Instrutor ABAP • Orgulha-se por nunca haver copiado
um programa standard
• 100% ABAP Objects • Fã do WordPress
-
Projetos Open Source em ABAP
• Screen Breaker (evita LOOP AT SCREEN) • ABAP FileMan (GUI_DOWNLOAD/OPEN DATASET) • ABAPDoc v2 (similar a JavaDoc) • ABAP Jan-Ken-Pon (Testes unitários) • ABAP Tic-Tac-Toe (Web Dynpro – MVC) • WB Objects Framework • ABAP2YUML
-
Projetos Open Source e pessoais como oportunidade de aprendizado
-
Esta apresentação não pretende discutir
• O que é um projeto Open Source
• Licenças / termos de uso do MiniSAP ou afins
• Possível interesse da SAP em código aberto
• Detalhes de programação ABAP
-
ABAPer de final de semana IF sy-daqui IS INITIAL. “ Do something… ENDIF.
-
ABAPer de final de semana
• Documentação para iniciar é abundante
• Se você não investe tempo em você mesmo, por que sua empresa deveria te pagar um treinamento?
• Cursos, por melhor que sejam, nunca serão o suficiente
• Você não deixa de ter vida social (se usar o Facebook sim)
• 2 horas de estudo por semana em 1 ano ~ tempo de 1 curso
-
ABAP2YUML e WB Objects Meu curso de final de semana de ABAP
-
YUML
• Yuml.me
• Grátis
• Serviço para geração de UML
• Online ou através de um DSL
-
YUML
[note: You can stick notes on diagrams too!{bg:cornsilk}],
[Customer]1-orders 0..*>[Order], [Order]++*-*>[LineItem],
[Order]-1>[DeliveryMethod], [Order]*-*>[Product], [Category] [ P r o d u c t ] , [ D e l i v e r y M e t h o d ] ^ [ N a t i o n a l ] ,
[DeliveryMethod]^[International]
-
Propostas do Projeto
• Tornar ridiculamente fácil a geração de UML através de código ABAP
• Não possuir dependências como a ferramenta standard
• Dar mais um motivo para acabar com o mundo procedural
• Exemplo de trabalho bem feito
-
Oportunidades de Aprendizado
• Todo mundo tem uma lista de “coisas a aprender”
• A minha: o R
o Predictive Analysis Library (PAL)
o eCATT
o BOL
o Violão
-
100% ABAP Objects
-
ABAP Unit & TDD (Test Driven Development)
-
BDD (Behavior Driven Development)
• GIVEN-WHEN-THEN
• Teste que o “funcional” entenda
• Documentação executável
-
GIVEN-WHEN-THEN
DADO
Classe CL_SALV_TABLE e
Método FACTORY
QUANDO
Método get_format é chamado
ENTÃO
Formatação é em itálico
-
Exemplo de GIVEN-WHEN-THEN
-
Reutilização de código standard
• Investigação
• Debug
• Interpretação de código alheio
-
WB Objects Framework
• Framework para carregar informações de objetos do repositório
• Classes e Interfaces Locais e Globais
• Útil para outros projetos que dependam desta informação:
o SAPLink
o ABAPDoc2
o etc
-
WB Objects Framework
-
WB Objects Framework
-
WB Objects Framework
-
Enhancement Framework
• Técnica mais poderosa e provavelmente menos usada de modificação do standard.
DADO
Transação SE21 e Pacote é Z*
QUANDO
Pacote é salvo
ENTÃO Mensagem “Deseja gerar UML” deve ser exibida
-
Enhancement Framework - Exemplo
-
Enhancement Framework - Exemplo
-
Controllers WEB & Web Dynpro
-
Shared Objects
• Substituto do EXPORT/IMPORT
Shared Objects
Exit User1
Report User1
WD User 2
Report User 2
-
Shared Objects – Tcodes SHMA & SHMM
-
Mas não é só código… … que bom! No dia-a-dia também não é.
-
Documentação
• Se é “Open”, é para os outros
• Se é para os outros, eles devem entender
• Se eles devem entender, é seu dever explicar
-
Contato com usuários
• Quem só quer baixar seu projeto e usá-lo é seu usuário.
• Quem quer ver seu produto melhor é seu cliente.
• Não os deixe na mão
-
Release Management
• .zip / .nugg ?
• Como controlo as versões?
• Como organizar os frameworks que dependo?
• Quem tem a versão 1 precisa desinstalar para usar a 2?
• Como devo anunciar as alterações?
• Como decidir qual a próxima melhoria?
-
Git & GitHub
• Git abre portas para o aprendizado • Usado pela SAP para alguns projetos
-
SAPLink
• SAPLink te permite espalhar o seu trabalho mundo afora.
-
Para finalizar, qual o status do projeto?
-
Amanhã é sábado! Codifique
-
Fábio Pagoti [email protected]
@fabiopagoti
fabiopagoti .com