Podróż w krainę Continuous Integration

  • View
    1.805

  • Download
    1

Embed Size (px)

DESCRIPTION

Over the past two years weve been pushing to improve our automated testing practices within Plusnet and to win full support for it within the company across the spectrum of fellow developers, project managers and upper management. It took a while to agree on software we want to use, and standards we want to follow, but now all new code is being continuously built and tested and the results of that are visible business-wide. We use PHP_CodeSniffer to verify that we follow our coding standards, PHPDocumentor to generate automated API documentation, PHPUnit to run test suites and phpUnderControl to run all these tools regulary, at least once a day and to generate aggregated reports. Finally, Sonar allows us to create and publish reports visible to everybody and more importantly reports that everybody can understand. Setting it all up can be a tough exercise, but if you prepare to it upfront you might actually find it quite exciting! So, you strongly believe this is the way you should be developing your code, but you dont really know where to start? Let me show you how our journey began. You dont know how to convince your fellow developers to follow you? Ill tell you how to establish a strong team that will follow you. Your managers seem to be more interested in delivering your project on time and dont really see a point in spending additional time on unit testing and documenting your code? Maybe you havent shown them the benefits of continuous integration in a way they can understand. Ill show you what worked for us.

Transcript

  • 1. Podr w krain Continuous IntegrationSebastian Marek, Software Architect
  • 2. @proofek 10 lat dowiadczenia w PHP wspautor 2 ksiek o tematyce PHP zwolennik automatyzacji procesw TDD i CI
  • 3. Dawno dawno temu
  • 4. U stp Gry Przeznaczenia coraz duszy czas utrzymania wzrastajca liczba problemw mao zrozumiay i mao przejrzysty kod skomplikowane i czasochonne testowanie
  • 5. Szukanie pomocy!
  • 6. Pierwsze frustracje sporadyczne buildy mieszanka php3 i php4 nauka w locie brak standardw
  • 7. Tworzenie druyny Stuart Grimshaw Simon Westcott Ben Selby Sebastian Marek Rowan Merewood Ben Longden
  • 8. Zwoanie rady Kto? menaderowie programici O czym? zagroenia szanse plan wdroeniehttp://www.flickr.com/photos/pedromourapinheiro/3272323691/in/photostream/
  • 9. Jak nie wiadomo o co chodzi to chodzi o pienidze Design debt Karne opaty Odsetki http://www.flickr.com/photos/your_teacher/1040476355/in/photostream/
  • 10. Najlepsze rozwizanie VS.
  • 11. Wsparcie i plan rozwojuhttp://www.flickr.com/photos/jannem/3312115991/in/photostream/
  • 12. Raporty i statystykihttp://www.flickr.com/photos/aussiegall/286709039/in/photostream/
  • 13. czenie si z mocniejszymi sojusznikami
  • 14. Automatyzacjahttp://www.flickr.com/photos/matthileo/3552898254/in/photostream/
  • 15. Front wschodni
  • 16. Zautomatyzowane buildy wtyczka do Cruisecontrol wsparcie dla PHPUnit Intergracja z phpDocumentor generowanie statystyk kodu Raport code coverage Integracja z raportem checkstyle Integracja z PHP Depend Integracja z PHPMD i wiele wiele wicej
  • 17. PHPUnitNajpopularniejsze narzdzie do unit testw oparte nastandardzie xUnit, ze wsparciem dla: mock obiektw testw bazodanowych (dbUnit) raportw code coverage selenium RC platform continuous integration, takich jak CruiseControl, Hudson, Bamboo
  • 18. phpDocumentor zautomatyzowane tworzenie dokumentacji dla PHP wsparcie dla: HTML, PDF, CHM, XML interfejs CLI i poprzez przegldark internetow atwo konfigurowalny
  • 19. PHP_Codesniffer Oparty na predefiniowanych standardach kodowania Wykrywa niezgodnoci ze standardami kodowania W peni konfigurowalny z moliwoci definiowania wasnych standardw Codebrowser
  • 20. Raport code coverage wiadomo iloci przetestowanego kodu Procentowe przedstawienie pokrycia kodu testami Konfigurowalne przedziay akceptowalnoci Format clover Format HTML
  • 21. Statystyki - PHP DependStatystyki: Cyclomatic Complexity NPath Complexity CodeRank Lines Of Code
  • 22. PHP Mess Detector Inteligentna analiza kodu: Potencjalne problemy Niezoptymalizowany kod Zbyt skomplikowane operacje Nieuywane parametry, metody, waciwoci
  • 23. phpUnderControl
  • 24. Buildbox na co dzie Rosnca ilo nowych moduw Wyduony czas budowania Czste zawieszenia Problemy ze stabilnoci Problemy ze sprztem
  • 25. Potrzeba udoskonalenia
  • 26. Hudson/Jenkins nastpny krok atwa instalacja atwa konfiguracja Wsparcie dla wtyczek Rozproszone buildy Internacjonalizacja
  • 27. Hudson/Jenkins
  • 28. Selenium Automatyczne testy aplikacji internetowych
  • 29. Wadca piercienihttp://www.flickr.com/photos/cosmic_bandita/2218419160/in/photostream/
  • 30. Front zachodni
  • 31. Sonar
  • 32. Sonar Platforma do zarzdzania jakoci kodu Nieustanna analiza kodu atwy w konfiguracji Wsparcie dla wtyczek
  • 33. Raporty dostpne dla wszystkich atwo zrozumiae raporty i statystyki Definicja celw Odpowiedzialno
  • 34. Widok typu radiator
  • 35. Raporty
  • 36. Raporty
  • 37. Raporty
  • 38. Raporty
  • 39. Raporty
  • 40. Armia musi poda za przywdc Id za przykadem Bd stanowczy, ale jednoczenie przyjazny i pomocny Szkolenia Proste i zrozumiae reguy/standardy Kij i mar