Slides

#DNAD15 - Diminuindo sofrimento com código legado de linguagens não mainstreams

Description
Sistemas legados são o terror da maioria dos devs: código dos outros escrito muitas vezes sem seguir boas práticas e em uma linguagem quase completamente desconhecida. A proposta da palestra é discutir sobre: o que é legado? o que é linguagem não mainstream no contexto do dia a dia dos projetos? indicar alguns caminhos a seguir quando se tem um legado a ser enfrentado, utilizando perl como exemplo de linguagem não mainstream.
Categories
Published
of 56
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Related Documents
Share
Transcript
  • 1. Diminuindo sofrimento com código legado de linguagens não mainstreams
  • 2. Jac Abreu Lopes Developer sem preconceitos De Java a Perl sem mimimis @JacAbreu
  • 3. Motivação Trabalhar diariamente com um sistema feito em Perlcriado há 10 anos
  • 4. Motivação Códigos importantes ao negócio intocados e intocáveis
  • 5. Como deixar um dev chocado: Abordar um developer feliz, trabalhando com a sua tecnologia preferida e avisar que ele trabalhará com algum sistema legado
  • 6. E AÍ?
  • 7. O que é legado?
  • 8. O que é legado? Sistema feito pelos outros?
  • 9. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga?
  • 10. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga? Sistema com “cara” de antigo?
  • 11. O que é legado? Sistema feito pelos outros? Sistema feito em tecnologia antiga? Sistema com “cara” de antigo? Sistema sem testes?
  • 12. Feito pelos outros? https://github.com/jruby/jruby + =
  • 13. Tecnologia antiga? C++: 1985 (30 anos) Python: 1991 (24 anos) Java: 1995 (20 anos) Ruby: 1995 (20 anos)
  • 14. “Cara” de antigo? Vim (1991), Vi (1976)
  • 15. “Cara” de antigo? Vim (1991), Vi (1976)
  • 16. Software sem testes é legado? Geralmente sim.
  • 17. O que é legado? Ninguém tem conhecimento das regras de negócio.
  • 18. O que é legado? Ninguém tem conhecimento das regras de negócio. Não atende completamente às necessidades do negócio.
  • 19. O que é legado? Ninguém tem conhecimento das regras de negócio. Não atende completamente às necessidades do negócio. Evolução arriscada ou muito custosa
  • 20. “fui alocado sozinho num […] pequeno sistema "legado" extremamente mal feito. [...] E eu posso dizer "mal feito" porque efetivamente ele não executava como devia, ou seja, era tecnicamente falho e devolvia muitos erros.” Fabio Akita O Mito do Legado http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado
  • 21. O que é uma linguagem não mainstream?
  • 22. O que é uma linguagem não mainstream?
  • 23. O que é uma linguagem não mainstream?
  • 24. O que é uma linguagem não mainstream?
  • 25. http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/
  • 26. O quão popular é uma linguagem? ✓ Google Trends ✓ Resultados de busca ✓ Empregos ✓ Projetos no GitHub ✓ Tiobe ✓ PYPL PopularitY of Programming Language ✓ RedMonk Programming Language Rankings
  • 27. Linguagens não mainstream são aquelas que não costumam ser utilizadas em greenfield
  • 28. O que que o legado tem?
  • 29. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema
  • 30. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema Frameworks próprios
  • 31. O que que o legado tem? Abordagens diferentes nos diferentes módulos do sistema Frameworks próprios Débitos técnicos acumulados
  • 32. “Faça qualquer coisa, pois legado ninguém vê” “É legado, não precisa se preocupar, pode fazer de qualquer jeito”
  • 33. Sistema utilizado é sistema observado. Sistema utilizado é sistema passível de requisições de evolução.
  • 34. Fazer “qualquer coisa” de “qualquer jeito” leva a perder o controle do sistema Não se dê ao luxo de perder o controle
  • 35. Se tem alguém programando, provavelmente tem comunidade. Encontre-a.
  • 36. No caso de Perl ✓ http://sao-paulo.pm.org/ ✓ http://yapcbrasil2015.org/ ✓ http://perl.org.br/
  • 37. No caso de Perl (with lasers) ✓ Metacpan https://metacpan.org A modern CPAN search site, with an open source backend
  • 38. Não é porque é antigo que não tem boas práticas Perl::Tidy Parses and beautifies perl source
  • 39. Não é porque é antigo que não tem boas práticas Perl Best Practices Standards and Styles for Developing Maintainable Code. Partes desatualizadas após o Moo/Moose, mas ainda vale a leitura.
  • 40. Não é porque é antigo que não tem boas práticas Perl::Critic Critique Perl source code for best-practices Módulo que implementa as indicações do Perl Best Practices - contempla Moo/Moose
  • 41. Abordagem Saiba o objetivo do código e decida: abordagem cirúrgica ou reformadora?
  • 42. Não reinvente a roda Frameworks coorporativos são válidos em casos muito especiais e se mantidos por uma equipe e não por uma pessoa.
  • 43. Não reinvente a roda Se necessário, “forke” um framework mais próximo às necessidades do projeto e adapte.
  • 44. Seja um bom escoteiro Legado não é bagunça. Um trecho de código bem escrito vale mais do que nenhum. O próximo dev irá te agradecer.
  • 45. Documente tudo! Documente o que entendeu e principalmente o que não entendeu.
  • 46. Testes de negócio Escreva testes automatizados de negócio para garantir que entende o que o código faz.
  • 47. Abra sua mente
  • 48. Abra sua mente
  • 49. 1. http://www.itexto.net/devkico/?p=2073 2. http://www.itexto.net/devkico/?p=2106 3. http://www.computerworld.com.au/article/393903/cobol_dead_yet/ 4. http://www.akitaonrails.com/2012/08/15/off-topic-o-mito-do-legado 5. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 6. https://github.com/search?utf8=%E2%9C%93&q=language%3APerl&type=Repositories&ref=searchresults 7. http://www.tiobe.com/index.php/content/paperinfo/tpci/programminglanguages_definition.html 8. http://sogrady-media.redmonk.com/sogrady/files/2015/01/lang.rank_.plot_.q1152.png 9. http://redmonk.com/sogrady/2015/01/14/language-rankings-1-15/ 10. http://www.cbsi.net.br/2015/03/dada-como-em-extincao-cobol-ainda-ta.html 11. https://en.wikipedia.org/wiki/Measuring_programming_language_popularity 12. http://pypl.github.io/PYPL.html 13. https://www.blackducksoftware.com/resources/data/this-years-language-use 14. http://trendyskills.com/ 15. http://pt.slideshare.net/garux/communities-perl-edition-riojs 16. http://pt.slideshare.net/garux/descobrindo-a-linguagem-perl 17. https://help.github.com/articles/where-can-i-find-open-source-projects-to-work-on/ 18. https://github.com/trending 19. http://blog.microfocus.com/news/the-legacy-myth-legendary-it/2218/ 20. http://search.cpan.org/~shancock/Perl-Tidy-20140711/lib/Perl/Tidy.pod 21. http://shop.oreilly.com/product/9780596001735.do 22. https://github.com/search?utf8=%E2%9C%93&q=framework 23. http://search.cpan.org/~thaljef/Perl-Critic-1.125/lib/Perl/Critic.pm 24. https://en.wikipedia.org/wiki/Programming_languages_used_in_most_popular_websites 25. https://www.perl.org/ 26. http://onyxneon.com/books/modern_perl/index.html Referências
  • 50. @JacAbreu
  • Search
    Similar documents
    View more...
    Related Search
    We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks