Narzędzia programistów
Dlaczego narzędzia są ważne
"Ciągle większa inteligencja
siedzi przed komputerem"
Jednak, każda pomoc jaką
możecie dostać jest warta
Najczęściej jednak ta pomoc
wymaga pracy również od Was
System kontroli wersji
Umożliwia powrót do poprzedniej wersji projektu
Fajne szczególnie dla symulacji/kodu fizycznego
(nie ma problemu: "tydzień temu mi działało")
Umożliwia równoległą pracę nad kodem wielu osób
Ci z Was którzy nie używają Git-a zapewne odkryli już że na dluższą metę nie da się tak pracować
Umożliwia równoległą pracę nad kilkoma wersjami programu, np. produkcyjną i developeską
System kontroli wersji
Ja lubię
Git
-a, aktualnie jest IMO najlepszym rozwiązaniem.
Jeśli potrzebujecie lepszych referencji: jądro Linuksa jest rozwijane w Gicie
Tutorial:
https://try.github.io/
Hosting repozytoriów
Github
: Darmowe projekty Publiczne
BitBucket
: Darmowe projekty Publiczne; Darmowe projekty zamknięte dla akademików i studentów
Kilin
: Repozytoria dowolnego rozmiaru (bitbucket i github ma limit 1GB)
System kontroli wersji
Bez systemu kontroli wersji nie da się
pracować profejsonalnie.
Jeśli firma w której będizecie pracować (jako programiści) nie używa takiego systemu, jest to bardzo poważny sygnał by uciekać.
Podobnie jeśli używa się CVS ;)
Bugtracker
O ilu rzeczach możecie pamiętać?
Ja mogę pamiętać o 4 rzeczach "do załatwienia".
System zadań (Issue tracker) pozwala na przechywywanie list zadań do zrobienia.
Ułatwia pracę zespołową.
Ułatwia zarządzanie zespołem.
Kto z Was wie (albo może łatwo sprawdzić) co musi jeszcze zrobić żeby oddać mi Wasz projekt?
Bugtracker odpowiada na takie pytania!
Bugtracker
Bugtrackerem może być arkusz kalkulacyjny (najlepiej dostępny online)
Są różne narzędzia:
Youtrack
: Używam, za darmo do 10 użytkownków (zarówno wersja w chmurze, jak i oprogramowanie)
JIRA
: 10$ za wersję dla 10 osób z rocznymi aktualizacjami. Darmowa dla projektów OpenSource.
BugZilla
: Wolne Oprogramowanie. Nie używam :)
FogBugz
: Darmowy hosting dla dwóch osób
Bugtracker
Jeśli w Waszej firmie nie używa się Bugtrackera raczej jest sygnał żeby zmienić pracę.
Narzędzia statycznej analizy kodu
Pozwalają wykrywać wzorce sugerujące błędy.
Polecam:
FindBugz
IDE
IntelijIDEA
ma bardzo dobre własne narzędzia do statycznej analizy kodu.
Integrated Developement Enviorment
Wasze środowisko programistyczne
Znam takie ide do Javy:
IntelijIDEA
(sam używam)
Eclipse (używam na zajęciach z Wami)
NetBeans
dobre dla początkujących.
Możecie używać dowolnego IDE na zajęciach projektowych.
Zastosowania IDE
Uruchamianie projektu; uruchamianie testów
Integracja z debuggerem
Integracja z Systemem Kontroli Wersji
Statyczna analiza kodu
Integracja z Issue Trackerem
Uzupełnianie składni
Nawigacja po kodzie
Refactoring kodu
Profilery
Narzędzia do znajdowania problemów wydajnościowych w kodzie.
W javie jest to Visual VM (dostępne jako polecenie jvisualvm).
Narzędzia formalne
Czasem dobrze jest mieć dowód że program działa (oczywiście ze względu na błędy w implementacji nie ma gwarancji poprawności).
Czasem chemy np. udowodnić że dwa programy są równoważne (ważne przy optymalizatorach)
Czasem chcemy udowodnić że format pliów jest kompatybilny wstecznie.
To tylko pobieżny przegląd
Made with Slides.com
BESbswy
BESbswy