Podróż w krainę                    Continuous IntegrationSebastian Marek, Software Architect
@proofek 10 lat doświadczenia w  PHP współautor 2 książek o  tematyce PHP zwolennik automatyzacji  procesów TDD i CI
Dawno dawno temu
U stóp Góry Przeznaczenia              coraz dłuższy czas               utrzymania              wzrastająca liczba      ...
Szukanie pomocy!
Pierwsze frustracje   sporadyczne “buildy”   mieszanka php3 i php4   nauka w locie   brak standardów
Tworzenie drużyny   Stuart Grimshaw   Simon Westcott   Ben Selby   Sebastian Marek   Rowan Merewood   Ben Longden
Zwołanie rady                                      Kto?                                       menadżerowie               ...
Jak nie wiadomo o co chodzi                    to chodzi o pieniądze Design debt Karne opłaty Odsetki   http://www.flic...
Najlepsze rozwiązanie          VS.
Wsparcie i plan rozwojuhttp://www.flickr.com/photos/jannem/3312115991/in/photostream/
Raporty i statystykihttp://www.flickr.com/photos/aussiegall/286709039/in/photostream/
Łączenie sił z mocniejszymi sojusznikami
Automatyzacjahttp://www.flickr.com/photos/matthileo/3552898254/in/photostream/
Front wschodni
Zautomatyzowane buildy wtyczka do Cruisecontrol wsparcie dla PHPUnit Intergracja z  phpDocumentor generowanie statysty...
PHPUnitNajpopularniejsze narzędzie do unit testów oparte nastandardzie xUnit, ze wsparciem dla: mock obiektów testów baz...
phpDocumentor        zautomatyzowane         tworzenie dokumentacji         dla PHP        wsparcie dla: HTML,         P...
PHP_Codesniffer Oparty na predefiniowanych standardach kodowania Wykrywa niezgodności ze standardami kodowania W pełni ...
Raport “code coverage”   Świadomość ilości przetestowanego kodu   Procentowe przedstawienie pokrycia kodu testami   Kon...
Statystyki - PHP DependStatystyki: Cyclomatic Complexity NPath Complexity CodeRank Lines Of Code
PHP Mess Detector         Inteligentna analiza kodu:          Potencjalne problemy          Niezoptymalizowany kod      ...
phpUnderControl
Buildbox na co dzień   Rosnąca ilość nowych modułów   Wydłużony czas budowania   Częste zawieszenia   Problemy ze stab...
Potrzeba udoskonalenia
Hudson/Jenkins – następny krok   Łatwa instalacja   Łatwa konfiguracja   Wsparcie dla wtyczek   Rozproszone “buildy” ...
Hudson/Jenkins
Selenium     Automatyczne testy      aplikacji internetowych
Władca pierścienihttp://www.flickr.com/photos/cosmic_bandita/2218419160/in/photostream/
Front zachodni
Sonar
Sonar Platforma do zarządzania  jakością kodu Nieustanna analiza kodu Łatwy w konfiguracji Wsparcie dla wtyczek
Raporty dostępne dla wszystkich Łatwo zrozumiałe raporty i statystyki Definicja celów Odpowiedzialność
Widok typu radiator
Raporty
Raporty
Raporty
Raporty
Raporty
Armia musi podążać za przywódcą   Idź za przykładem   Bądź stanowczy, ale jednocześnie przyjazny i pomocny   Szkolenia...
You broke the build!
Wheres the build?
Works on my machine?!
Czas na ciebie!
Podsumowanie1. Rozpoznanie2. Próba3. Odpowiedni zespół4. Powoli, małymi krokami5. Bądź widoczny6. Automatyzacja
Źródła   PHPUnit - http://www.phpunit.de/   phpUnderControl - http://phpundercontrol.org/   Jenkins - http://jenkins-ci...
Pytania Pytania?http://joind.in/3199
Upcoming SlideShare
Loading in …5
×

Podróż w krainę Continuous Integration

2,322 views

Published on

Over the past two years we’ve 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 don’t really know where to start? Let me show you how our journey began. You don’t know how to convince your fellow developers to follow you? I’ll 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 don’t really see a point in spending additional time on unit testing and documenting your code? Maybe you haven’t shown them the benefits of continuous integration in a way they can understand. I’ll show you what worked for us.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,322
On SlideShare
0
From Embeds
0
Number of Embeds
147
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Podróż w krainę Continuous Integration

  1. 1. Podróż w krainę Continuous IntegrationSebastian Marek, Software Architect
  2. 2. @proofek 10 lat doświadczenia w PHP współautor 2 książek o tematyce PHP zwolennik automatyzacji procesów TDD i CI
  3. 3. Dawno dawno temu
  4. 4. U stóp Góry Przeznaczenia  coraz dłuższy czas utrzymania  wzrastająca liczba problemów  mało zrozumiały i mało przejrzysty kod  skomplikowane i czasochłonne testowanie
  5. 5. Szukanie pomocy!
  6. 6. Pierwsze frustracje sporadyczne “buildy” mieszanka php3 i php4 nauka w locie brak standardów
  7. 7. Tworzenie drużyny Stuart Grimshaw Simon Westcott Ben Selby Sebastian Marek Rowan Merewood Ben Longden
  8. 8. Zwołanie rady Kto?  menadżerowie  programiści O czym?  zagrożenia  szanse  plan  wdrożeniehttp://www.flickr.com/photos/pedromourapinheiro/3272323691/in/photostream/
  9. 9. Jak nie wiadomo o co chodzi to chodzi o pieniądze Design debt Karne opłaty Odsetki http://www.flickr.com/photos/your_teacher/1040476355/in/photostream/
  10. 10. Najlepsze rozwiązanie VS.
  11. 11. Wsparcie i plan rozwojuhttp://www.flickr.com/photos/jannem/3312115991/in/photostream/
  12. 12. Raporty i statystykihttp://www.flickr.com/photos/aussiegall/286709039/in/photostream/
  13. 13. Łączenie sił z mocniejszymi sojusznikami
  14. 14. Automatyzacjahttp://www.flickr.com/photos/matthileo/3552898254/in/photostream/
  15. 15. Front wschodni
  16. 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 więcej
  17. 17. PHPUnitNajpopularniejsze narzędzie do unit testów oparte nastandardzie xUnit, ze wsparciem dla: mock obiektów testów bazodanowych (dbUnit) raportów “code coverage” selenium RC platform continuous integration, takich jak CruiseControl, Hudson, Bamboo
  18. 18. phpDocumentor  zautomatyzowane tworzenie dokumentacji dla PHP  wsparcie dla: HTML, PDF, CHM, XML  interfejs CLI i poprzez przeglądarkę internetową  łatwo konfigurowalny
  19. 19. PHP_Codesniffer Oparty na predefiniowanych standardach kodowania Wykrywa niezgodności ze standardami kodowania W pełni konfigurowalny z możliwością definiowania własnych standardów Codebrowser
  20. 20. Raport “code coverage” Świadomość ilości przetestowanego kodu Procentowe przedstawienie pokrycia kodu testami Konfigurowalne przedziały akceptowalności Format clover Format HTML
  21. 21. Statystyki - PHP DependStatystyki: Cyclomatic Complexity NPath Complexity CodeRank Lines Of Code
  22. 22. PHP Mess Detector Inteligentna analiza kodu:  Potencjalne problemy  Niezoptymalizowany kod  Zbyt skomplikowane operacje  Nieużywane parametry, metody, właściwości
  23. 23. phpUnderControl
  24. 24. Buildbox na co dzień Rosnąca ilość nowych modułów Wydłużony czas budowania Częste zawieszenia Problemy ze stabilnością Problemy ze sprzętem
  25. 25. Potrzeba udoskonalenia
  26. 26. Hudson/Jenkins – następny krok Łatwa instalacja Łatwa konfiguracja Wsparcie dla wtyczek Rozproszone “buildy” Internacjonalizacja
  27. 27. Hudson/Jenkins
  28. 28. Selenium  Automatyczne testy aplikacji internetowych
  29. 29. Władca pierścienihttp://www.flickr.com/photos/cosmic_bandita/2218419160/in/photostream/
  30. 30. Front zachodni
  31. 31. Sonar
  32. 32. Sonar Platforma do zarządzania jakością kodu Nieustanna analiza kodu Łatwy w konfiguracji Wsparcie dla wtyczek
  33. 33. Raporty dostępne dla wszystkich Łatwo zrozumiałe raporty i statystyki Definicja celów Odpowiedzialność
  34. 34. Widok typu radiator
  35. 35. Raporty
  36. 36. Raporty
  37. 37. Raporty
  38. 38. Raporty
  39. 39. Raporty
  40. 40. Armia musi podążać za przywódcą Idź za przykładem Bądź stanowczy, ale jednocześnie przyjazny i pomocny Szkolenia Proste i zrozumiałe reguły/standardy Kij i marchewka
  41. 41. You broke the build!
  42. 42. Wheres the build?
  43. 43. Works on my machine?!
  44. 44. Czas na ciebie!
  45. 45. Podsumowanie1. Rozpoznanie2. Próba3. Odpowiedni zespół4. Powoli, małymi krokami5. Bądź widoczny6. Automatyzacja
  46. 46. Źródła PHPUnit - http://www.phpunit.de/ phpUnderControl - http://phpundercontrol.org/ Jenkins - http://jenkins-ci.org/ Sonar - http://www.sonarsource.org/ phpDocumentor - http://www.phpdoc.org/ PHP_CodeSniffer - http://pear.php.net/package/PHP_CodeSniffer/ PHP Depend - http://pdepend.org/ PHP Mess Detector - http://phpmd.org/ Selenium - http://seleniumhq.org/ xDebug - http://www.xdebug.org/
  47. 47. Pytania Pytania?http://joind.in/3199

×