Środowisko pracy informatyka zima 2015 Wykład 8 Narzędzia pracy Developera dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki 1
Kategorie 2 Programy wspomagające komunikację pracowników Chmury dyskowe Chmury obliczeniowe Narzędzia pracy grupowej Systemy kontroli wersji
Trello 3 Trello jest rozbudowaną wirtualna tablica, na której można przyklejać listy z nowymi zadaniami. Pod każdą listą możemy dodawać karty, w których określamy w dowolny sposób zadania i przypisujemy do nich kolejnych użytkowników. Karty te oferują proste funkcje, jak określenie tematu i jego opis, możemy też dodawać zadania, etykiety, komentarze czy pliki z naszego komputera.
Trello 4 Tablice (Boards) – to projekty lub foldery – kontenery. Do Tablic możemy zapraszać innych użytkowników i współdzielić z nimi całą zawartość. Tablice mogą mieć charakter prywatny do użytku tylko przez nas i/lub zaproszonych przez nas użytkowników lub publiczny, dostępny dla wszystkich. Listy (Lists) – funkcjonują w ramach Tablic. Budują wizualny podział dla Kart. Listy czyli zbiory Kart np. lista zakupów, to-do itd. Typowy podział po otwarciu nowej tablicy to „Do zrobienia”, „Pracuję nad tym”, „Skończone”. Przy tak utworzonych listach wystarczy je tylko zapełnić odpowiednimi zadaniami w postaci kart. Karty (Cards) — Możemy w ramach takiej kartki przypisać właściciela lub właścicieli (member), datę ważności karty (due date), listę zadań (checklist), dołączyć dowolny plik (file attachments), czy prowadzić rozmowę w formie komentarzy (comments). Karta również może zyskać etykietę (label), a sama etykieta jest kolorowym oznaczeniem, które z kolei można nazwać np. czerwony: pilne, fioletowy: spotkanie, żółty: problemy.
Trello – zarządzanie projektem 5 Przykład: tworzymy trzy listy: TODO – „do zrobienia”, DOING – „w trakcie” oraz DONE – „Wykonano”. By śledzić wszystkie zmiany w tablicy włączamy opcję subskrypcji Tablicy. W profilu możesz ustawić częstotliwość powiadomień (Change Notification Frequency). Do wyboru: Never, Periodically, Instantly.
Trello – zarządzanie projektem 6 Teraz można zapisać zadania w projekcie, np„Stworzenie logo”, „Przygotowanie szablonu”, „Uruchomienie silnika bloga”, „Napisanie powitalnego wpisu”. Współpracownicy zaczynając pracę nad jakimś elementem przenoszą go do z listy „To-Do” do listy „W trakcie”. Przypisujemy do zadań odpowiednich wykonawców ze swojego zespołu. Od teraz obok karty będzie znajdować się portret wybranej osoby. W międzyczasie ktoś może dołączyć do karty swoje projekty do zaopiniowania. Jeśli jakiś etap jest zamknięty karta ląduje w liście „Wykonano”.
Systemy kontroli wersji 7 System kontroli wersji jest narzędziem dla developerów (programistów, projektantów stron WWW). System kontroli wersji pozwala koordynować prace nad projektem, nad którym może pracować kilka osób. Umożliwia śledzenie zmian, jakie następują w danym dokumencie, a w razie potrzeby można powrócić do dowolnej wersji danego pliku wstecz oraz scalać zmiany Podstawowe funkcje systemu kontroli wersji przechowywanie i kontrola dostępu do plików tekstowych wchodzących w skład oprogramowania, śledzenie zmian zachodzących w poszczególnych plikach, przechowywanie całej historii zmian, udostępnianie każdej kolejnej wersji poszczególnych plików, możliwość tworzenia, śledzenia, różnych konfiguracji danego programowania, pełne dokumentowanie wprowadzanych zmian. Inne funkcje kontrola dostępu do plików dla różnych osób, synchronizacja zmian wprowadzanych przez różnych autorów, rozwiązywanie konfliktów pomiędzy kolidującymi ze sobą zmianami, praca w środowisku rozproszonym w sieci komputerowej, kontrola faz procesu rozwijania oprogramowania
Graf projektu 8 Gdy tworzymy nowy projekt, jego szkielet umieszczamy w katalogu trunk i od tego zaczyna się życie projektu w repozytorium. W katalogu trunk przechowywany będzie aktualny projekt – nie prowadzi się w nim pracy, ale zapisuje się w nim najświeższe przetestowane zmiany w projekcie W katalogu tags znajdują się snapshoty naszego projektu, wersje produkcyjne-stabilne, kolejne releases – jest to miejsce do odkładania projektu po zakończeniu pewnych większych etapów pracy (na przykład generacji 1.0, 2.0 etc.). Tag jest tworzony najczęściej jako kopia aktualnej wersji katalogu trunk lub konkretnego podkatalogu branchy. W katalogu branches znajdują się gałęzie rozwojowe – tutaj prowadzi się większość prac.
Praca zespołowa 9 Praca z repozytorium zespołu jest z reguły jest realizowana przez aktywne wykorzystanie gałęzi - branches. Gałąź jest kopią trunk, na której się pracuje. Wybieramy jeden z wariantów 1. Jeden użytkownik – jedna gałąź Każdy z programistów ma swoją gałąź w katalogu branches i na niej pracuje co jakiś czas uaktualniając ją zmianami w katalogu trunk. Po zaimplementowaniu danej funkcjonalności, przetestowaniu rozwiązania i uzyskaniu akceptacji kierownika projektu scala zmiany w swojej gałęzi do katalogu trunk. 2. Jedna funkcjonalność – jedna gałąź: programiści tworzą gałęzie do danej funkcjonalności, implementują ją, testują, po uzyskaniu akceptacji kierownika scalają gałąź do trunk i kasują ją.
Praca zespołowa – algorytm postępowania użytkownik pobiera swoją kopię roboczą projektu (głównie katalog trunk). 2. użytkownik tworzy swoja gałąź w katalogu branches i przełącza się na swoją gałąź 3. użytkownik wybiera funkcjonalność nad którą chce pracować i rozpoczyna iteracyjny proces implementowania danej funkcjonalności: a) by być,,aktualnym” użytkownik scala zmiany w trunk do swojej gałęzi – możliwe jest, że inni użytkownicy naniosą swoje zmiany do katalogu trunk projektu, b) implementuje i testuje daną funkcjonalność, zatwierdza zmiany w swojej gałęzi, c) jeśli naniesiona zmiana jest gotowa do upublicznienia użytkownik przełącza się na katalog trunk projektu, uaktualnia swoją kopię roboczą i scala zmiany ze swojej gałęzi do tego katalogu d) po naniesieniu zmian użytkownik przełącza się z powrotem do swojej gałęzi i rozpoczyna pracę nad nową funkcjonalnością (skok do punktu 3).
Systemy kontroli wersji - słownik 11 Repository - główny katalog w którym znajdują się pliki i katalogi naszego repozytorium. Revision - rewizja jest to wersja plików która znajduje się w repozytorium, każda zmiana zmienia numer rewizji. Head - najnowsza wersja/rewizja. Checkout - jest operacją pobrania zawartości repozytorium w celu utworzenia lokalnej kopii. Commit - aktualizacja zmian które wprowadziliśmy w plikach. Merge - scalanie różnych gałęzi projektu, np. naszego Brancha z aktualną główną gałęzią czyli Trunkiem. Collision - kolizja czyli konflikt przy scalaniu zmian, dochodzi do niego gdy scalane są pliki w których te same fragmenty pliku były edytowane.
Przykład – program SVN 12 TortoiseSVN jest Windowsowym klientem open-source'owym dla systemu kontroli wersji. Zarządza plikami i folderami w czasie. Pliki są przechowywane w centralnym repozytorium, o którego należy się zalogować podając URL (Przeglądarka repozytorium)
SVN Modyfikacja i zatwierdzanie zmian 13 Każdy zmodyfikowany lokalnie plik będzie miał czerwona ikonę (tzw. kopia robocza) Zmiana ta nie będzie propagowana na serwer ani na inne repozytoria aż do momentu wydania komendy „zatwierdź zmiany”. W czasie zatwierdzenia zmian można wpisać komunikat. W tym momencie plik występuje w kolejnej wersji (np. 2) Załóżmy, że na drugiej maszynie tez ktoś zmodyfikuje plik i próbuje go zaktualizować. Wyświetli się komunikat
SVN Modyfikacja i zatwierdzanie zmian 14 Każdą zmianę możemy wycofać – przywrócić plik do pewnej wersji HEAD oznacza wersje najnowsza. Pobraną wersję możemy przejrzeć lub edytować. Po edycji znajdzie się on w stanie konfliktu. Polecenie „Rozwiąż konflikt” rozwiąże konflikt i pozwoli zaktualizować zmiany (powstanie nowa wersja).
SVN Modyfikacja i zatwierdzanie zmian 15 W przypadku próby aktualizacji pojawi się błąd Pojawią się dodatkowo pliki będące w konflikcie (jako rozszerzenie numer wersji). Możemy wybrać „edytuj konflikty” i w przypadku programu Word pojawi się okienko recenzji/scalania zmian. Możemy też wybrać „rozwiąż” i wówczas SVN zaznaczy plik, który był modyfikowany jako drugi – jako kopię roboczą. Możemy ją zatwierdzić (powstanie nowa wersja) lub poprzez „Wycofaj zmiany” wczytać wersję z repozytorium.
SVN – Branching – merging Tworzenie lokalnego repozytorium 16 Wykorzystamy przygotowane w tym celu repozytorium Wersja nad którą będziemy pracować będzie znajdować się w katalogu trunk. Więc na początek katalog z projektem importujemy do repozytorium. Na katalogu z projektem kliknąć SVN->Importuj i wskazujemy miejsce.
SVN – Branching – merging Tworzenie lokalnego repozytorium 17 Wskazany podczas importu katalog automatycznie nie staje się repozytorium lokalnym SVN. Należy teraz z powrotem pobrać pliki. Zakładamy katalog, w którym będziemy pracować nad projektem i klikamy SVN->Pobierz
SVN – Branching – merging Tworzenie brancha 18 Klikamy prawym przyciskiem Trunk i przeciągamy na katalog Branches wybierając z menu kontekstowego „Kopiuj i zmieniaj nazwę wersjonowanego elementu” Ustawiamy nową nazwę Po zakończeniu kopiowania zatwierdzamy zmiany. Po zatwierdzeniu zmian wykonamy kopię projektu.
SVN – Branching – merging Tworzenie brancha 19 Teraz tworzymy izolowaną kopię naszego Brancha do innego katalogu. Wybieramy lokalny katalog i wykonujemy SVN->Pobierz W katalogu test3 założono dev-1.0 a w nim znajduje się cała kopia projektu, którą możemy testować i debugować. Po każdym dniu pracy należy synchronizować repozytoria lokalne ze zdalnym.
SVN – Branching – merging scalanie brancha 20 Przechodzimy do katalogu, gdzie znajduje się kopia robocza naszego Brancha i wykonujemy polecenie Scalaj.
SVN – Branching – merging scalanie brancha 21 Następnie wybieramy pierwszą dostępną opcję dla typu scalania a następnie wybieramy zakres wersji do scalenia. Ważne jest wybranie URL, z którego będziemy scalać
SVN – Branching – merging scalanie brancha 22 Aby wybrać tylko zakres wersji do scalenia warto kliknąć „Pokaż dziennik”. W tym wypadku scalimy wszystkie wersje. Warto jeszcze przetestować proces scalenia „Testuj scalanie” a następnie „Scalanie” Na koniec zatwierdzamy zmiany w repozytorium roboczym
SVN – Branching – merging tworzenie tagu 23 Po zakończeniu prac tworzymy etykietę (TAG). Tworzenie etykiety odbywa się tak samo jak gałęzi. Należy pamiętać o zatwierdzaniu zmian.
GitHUB 24 Git to open-sourcowy rozproszony system kontroli wersji, stworzony przez Linusa Torvaldsa jako narzędzie wspomagające rozwój jądra systemu Linux. Instalacja na Linuxie wymaga zainstalowania głównie git-core. Do pracy w Windows należy zainstalować „Git for windows”. Git można też używać przez przeglądarkę.
SVN a Git 25 Podstawową różnicą pomiędzy Git a SVN jest sposób przechowywania danych i informacji o zmianach. SVN przechowuje informacje jako zbiór plików i zmian dokonanych na każdym z nich w pewnym okresie. Git traktuje dane podobnie jak zestaw migawek (ang. snapshots) małego systemu plików. Za każdym razem jak tworzysz commit lub zapisujesz stan projektu, Git tworzy obraz przedstawiający to jak wyglądają wszystkie pliki w danym momencie i przechowuje referencję do tej migawki. Jeśli dany plik nie został zmieniony, Git nie zapisuje ponownie tego pliku, a tylko referencję do jego poprzedniej, identycznej wersji, która jest już zapisana.
Zalety GIT 26 Niemal każda operacja jest lokalna Ponieważ kompletna historia projektu znajduje się w całości na Twoim dysku, odnosi się wrażenie, że większość operacji działa niemal natychmiast. Git ma wbudowane mechanizmy spójności danych Dla każdego obiektu Git wyliczana jest suma kontrolna przed jego zapisem i na podstawie tej sumy można od tej pory odwoływać się do danego obiektu. Oznacza to, że nie ma możliwości zmiany zawartości żadnego pliku, czy katalogu bez reakcji ze strony Git. Standardowo Git wyłącznie dodaje nowe dane Dzięki temu każda operacja jest odwracalna
Trzy stany plików 27 W systemie Git każdy plik znajduje się w jednym z trzech stanów Zatwierdzony – dane zostały bezpiecznie zachowane w Twojej lokalnej bazie danych. Zmodyfikowany –plik został zmieniony, ale zmiany nie zostały wprowadzone do bazy danych. Śledzony –zmodyfikowany plik został przeznaczony do zatwierdzenia w bieżącej postaci w następnej operacji commit. Z powyższego wynikają trzy główne sekcje projektu Git: katalog Git, katalog roboczy przechowalnia (ang. staging area).
Sekcje projektu Git 28 Katalog Git – tu przechowuje się własne metadane oraz obiektową bazę danych projektu. To najważniejsza część Git i to właśnie ten katalog jest kopiowany podczas klonowania repozytorium z innego komputera. Katalog roboczy –obraz jednej wersji projektu. Zawartość tego katalogu pobierana jest ze skompresowanej bazy danych zawartej w katalogu Git i umieszczana na dysku w miejscu, w którym można ją odczytać lub zmodyfikować. Przechowalnia to prosty plik, zwykle przechowywany w katalogu Git, który zawiera informacje o tym, czego dotyczyć będzie następna operacja commit.
Praca z systemem Git 29 Podstawowy sposób pracy z Git: 1. Dokonujesz modyfikacji plików w katalogu roboczym. 2. Oznaczasz zmodyfikowane pliki jako śledzone, dodając ich bieżący stan (migawkę) do przechowalni. 3. Dokonujesz zatwierdzenia (commit), podczas którego zawartość plików z przechowalni zapisywana jest jako migawka projektu w katalogu Git. Jeśli jakaś wersja pliku znajduje się w katalogu git, uznaje się ją jako zatwierdzoną. Jeśli plik jest zmodyfikowany, ale został dodany do przechowalni, plik jest śledzony. Jeśli plik jest zmodyfikowany od czasu ostatniego pobrania, ale nie został dodany do przechowalni, plik jest w stanie zmodyfikowanym.
Przetwarzanie w chmurze 30 Chmura obliczeniowa to usługa, dzięki której za pośrednictwem Internetu możemy korzystać z mocy obliczeniowej serwera na dowolnym sprzęcie, w dowolnej lokalizacji, a wyniki obliczeń są synchronizowane na każde nasze urządzenie Usługi te to najczęściej: Wirtualne dyski – przechowywanie plików + udostępnianie + synchronizacja z dyskami naszych urządzeń Pakiety biurowe: np. aplikacje google pozwalające trzymać + edytować + udostępniać dokumenty typu: Tekst sformatowany, arkusz kalkulacyjny, prezentacja Całe maszyny wirtualne z systemem operacyjnym i możliwością instalacji oprogramowania
Klasyfikacja chmur 31 Kolokacja to wynajęcie miejsca w serwerowni z dostępem do internetu. Wstawiamy instalujemy i serwisujemy sprzęt sami Infrastructure as a Service Dostawca daje nam sprzęt (najczęściej jest to maszyna wirtualna) i dodatkowo czasem również zabezpieczenia. Naszym zadaniem jest dostarczyć system operacyjny, oprogramowanie i aplikacje. Platform as a Service Dostawca udostępnia platformę aplikacyjną i platformę do pisania aplikacji. Reszta SO jest niedostępna. Np. środowisko programowania i uruchamiania i udostępniania użytkownikom aplikacji w Javie Software as a Service Dostawca udostępnia tylko aplikację (lub jej część), z której możemy korzystać bez instalacji jej na swoim sprzęcie Software + Services – rozwiązanie mieszane. Część oprogramowania jest na naszym sprzęcie, część w chmurze.
Przykłady chmur – Google Docs 32 Pozwala na tworzenie prezentacji, dokumentów, arkuszy kalkulacyjnych, rysunków. Wiele opcji formatowania, jest prosty w obsłudze możliwość korzystania w nim z plików różnych formatów Program jest darmowy Microsoft Office (.doc i.docx,.xls i.xlsx,.ppt,.pps i.pptx) Sformatowane teksty: (.pdf,.pages,.ai,.xps) Obrazy rastrowe (.png,.jpg, tif) Grafikę wektorową (.svg,.ps,.eps, ttf) Projekty: Adobe Photoshop.psd, Autodesk AutoCad.dxf) Typy plików archiwum (.ZIP i.RAR)
Przykłady chmur – Google Docs 33 Dodatkowe funkcje aplikacji: -Możliwość nie tylko udostępniania, ale również pracy grupowej na dokumentach -Możliwość konwersji i eksportu formatów
Przykłady chmur Office Online 34 Office Online jest oparty na modelu SaaS Pakiet biurowy dający tylko niektóre możliwości dostępne dla Microsoft Office Daje możliwości pracy grupowej Produkt jest darmowy Dodatkowe cechy Każdy ma zawsze aktualną wersję dokumentu nad którym pracujemy indywidualnie, bądź zespołowo. Bezpieczeństwo - koniec z utratą dokumentu w przypadku awarii komputera. Dostęp do dokumentów wszędzie gdzie jest internet. Przeglądanie dokumentów przygotowanych w klasycznym Microsoft Office oraz ich edycję z przeglądarki internetowej Przeglądanie historii zmian plików. Dostęp z urządzeń mobilnych za pomocą dedykowanych aplikacji
Office Online 35
Microsoft Azure 36 Platforma chmurowa stworzona w modelu Platform as a Service. Udostępnia ona mechanizmy pozwalające przetwarzać dane (Windows Azure Compute), a także je składować (Windows Azure Storage, SQL Azure). Składowe platformy: Windows Azure – zapewnia środowisko uruchomieniowe dla aplikacji oparte na systemie operacyjnym bazującym na Windows Server, a także przestrzeń do składowania danych. System ten uruchamiany jest na maszynach wirtualnych wykorzystujących technologię zbliżoną do Hyper-V. Compute – odpowiada za zadania obliczeniowe hostowanych aplikacji. Storage – odpowiada za przechowywanie danych w chmurze. Fabric – odpowiada za zarządzanie i monitorowanie aplikacji uruchomionych w chmurze, a także nadzór maszyn działających w centrum obliczeniowym. SQL Azure – zapewnia możliwość używania relacyjnej bazy danych zaimplementowanej do uruchamiania w chmurze.
Azure – Visual Studio Online 37 Część platformy Azure umożliwiająca zespołowe projektowanie w środowisku Visual Studio. Posiada system kontroli wersji bazujący na Team Foundation Version Control lub GIT
Visual Studio Online 38
Chmury dyskowe 39 Chmura dyskowa to odpowiednik Pen drive’a. Rozwiązanie wygodne, gdy pracujemy na kilku komputerach: w pracy, w domu, w szkole, w podróży Pliki z wybranych katalogów komputera są kopiowane do chmury i aktualizowane. Po uruchomieniu innego urządzenia zawartość dysku lokalnego jest aktualizowana danymi z chmury. Google Drive wyewoluował z Dokumentów Google i ma całą ich funcjonalność - umożliwia nam otwarcie bezpośrednio z przeglądarki ponad 30 rodzajów plików, w tym pliki Photoshopa. Oferuje także skaner OCR, który umożliwia rozpoznawanie tekstu w zeskanowanych dokumentach oraz technologię rozpoznawania obrazów przydatną podczas wyszukiwania zdjęć wg lokalizacji. Pewną wadą rozwiązania Google jest natomiast fakt, że niestety nie możemy synchronizować dowolnych katalogów z dysku komputera. Jeżeli chodzi o kluczowy parametr usługi, czyli oferowaną przestrzeń, oddaje ona do dyspozycji użytkownika darmowe 5 GB miejsca na serwerach Google’a.
Chmury dyskowe 40 Dropbox wyróżnia się wyjątkową prostotą obsługi. Uznawana jest za najlepszą tego typu usługę na rynku. Jej dużym atutem jest popularność otwartego API (ang. Application Programming Interface), który deweloperzy chętnie wykorzystują przy integracji ze swoimi aplikacjami. Dropbox pozwala na udostępnianie plików poprzez skopiowanie linku prosto z eksploratora Windows oraz ich synchronizację pomiędzy różnymi urządzeniami. Oferuje jednak niestety tylko 2 GB darmowej przestrzeni dyskowej. W przeciwieństwie do Dysku Google, usługa Dropbox współpracuje z systemem Linux oraz mobilnym sprzętem Apple i BlackBerry. Spośród wad usługi należy tutaj wymienić przede wszystkim konieczność trzymania wszystkich plików w jednym katalogu
Chmury dyskowe 41 SkyDrive (od Windows 8 OneDrive) – część składowa usługi Office Onine Pozostawia konkurencję w tyle pod względem darmowej wirtualnej przestrzeni dyskowej 7 GB Możliwość synchronizacji i edycji dokumentów tworzonych za pomocą Office Możliwość zdalnego dostępu za pomocą webowej wersji do jakichkolwiek plików przechowywanych na dysku naszego komputera. SugarSync - alternatywa dla usługi Dropbox. Dołączany on jest do wszystkich nowych komputerów i tabletów firmy Lenovo oraz niektórych smartfonów. Obsługa praktycznie każdej platformy oprócz Linuksa. Potrafi synchronizować dowolne foldery na naszym komputerze. Daje możliwość przypisania konkretnych synchronizowanych folderów do konkretnych urządzeń. Użytkownik ma też możliwość udostępniania folderów chronionych hasłem oraz przesłania strumieniowo całego albumu z muzyką. Korzystając z SugarSync możemy liczyć na 5 GB darmowej przestrzeni.
Zestawienie 42
Koniec wykładu 43