Aplikacje Internetowe - profesjonalne szkolenia z zakresu webdevelopingu

Aplikacje Internetowe - szkolenia z zakresu tworzenia serwisów WWW

Szkolenie: Projektant/programista aplikacji internetowych - zajęcia wieczorowe

Program szkolenia

Program szkolenia został tak opracowany, aby w efektywny sposób przekazać fundamentalną wiedzę z zakresu projektowania oraz tworzenia aplikacji internetowych.
W ciągu 10 tygodni intensywnej nauki i treningu (łącznie 90 godzin zegarowych), przyswoisz wiedzę i nabędziesz umiejętności, pozwalających Ci podjąć pracę jako programista WWW.

  1. Statyczne serwisy WWW - języki HTML i CSS
  2. Sztuka programowania.Programowanie strukturalne w języku PHP
  3. Budowanie dynamicznych serwisów WWW - techniki klasyczne
  4. Podstawy programowania obiektowego
  5. Tworzenie aplikacji webowych w oparciu o framework "Comfort"
  6. Podstawy języka JavaScript
  7. Bezpieczeństwo aplikacji internetowych
  8. Język SQL - techniki zaawansowane
  9. Umieszczanie serwisów w internecie. Praca zdalna.

I. Statyczne serwisy WWW - języki HTML i CSS

Dzięki pierwszej części szkolenia, zrozumiesz jak działają serwisy WWW oraz nauczysz się tworzyć strony internetowe w językach HTML i CSS. Dowiesz się także, czym jest serwer WWW,protokół HTTP oraz zdobędziesz podstawowe umiejętności z zakresu instalacji/konfiguracji serwera Apache.

Po ukończeniu tego bloku , będziesz umiał budować takie serwisy jak:

Podsumowując - już po pierwszym tygodniu zajęć, będziesz potrafił zbudować funkcjonalną stronę dla siebie lub zaprzyjaźnionej firmy.

  1. Wprowadzenie
  2. Serwer Apache
    • zasada działania WWW
    • protokół HTTP (Hypertext Transfer Protocol)
    • instalacja serwera
    • tworzenie pliku konfiguracyjnego od podstaw.Dyrektywy:
      • Listen
      • DocumentRoot
      • LoadModule
      • DirectoryIndex
    • obsługa hostów wirtualnych (czyli jeden serwer - wiele serwisów)
    • plik "hosts" - tworzenie "wirtualnych" domen
  3. Programowanie w języku HTML
    • wprowadzenie
    • HTML 4.01,HTML 5,XHTML 1.0,XHTML 2.0 - czyli fakty i mity oraz co wybrać
    • struktura dokumentu HTML
    • projektowanie układu logicznego i określanie treści strony
      • div
      • p
      • table
      • a
      • img
      • span
      • ul, ol
      • br
      • inne
    • określanie informacji o stronie
      • meta (kodowanie znaków, słowa kluczowe, opis, itp)
      • title
  4. Kaskadowe arkusze stylów(CSS) - definiowanie wyglądu strony
    • wprowadzenie
    • atrybut style
    • CSS w zewnętrznym pliku
    • selektory:selektory typu, klasy, identyfikatory, grupowanie, pseudoklasy dynamiczne
    • nakładanie styli na dokument - definiowanie wyglądu
    • ustalanie pozycji elementow: position, margin, float
    • rozmiar elementow: width, height, padding, border
    • manipulacja tekstem: color, font-size, font-weight, text-align, text-decoration, inne
    • inne właściwośći: bakcground-image, repeat, position, inne

II. Sztuka programowania. Programowanie strukturalne w języku PHP

Aby móc budować serwisy dynamiczne - tj. takie, których treść zmienia się w zależności od działań użytkownika - musisz nauczyć się programować w określonym języku programowania. W naszym przypadku, będzie to jeden z najlepszych języków do zastosowań WWW - czyli PHP.

Ale bez obaw - programowanie nie jest trudne :-) Krok po kroku dowiesz się na czym ono polega, czym są zmienne, pętle i funkcje. Co najważniejsze, na zajęciach będziesz uczył się pisać samodzielnie kolejne programiki - zawsze mając do dyspozycji pomoc doświadczonego programisty, który udzieli Ci także wskazówek, jak szukać błędów czy formatować kod.

Położenie nacisku na zrozumienie, jak w programie przepływają dane oraz jak konstruować algorytmy - w połączeniu z dużą ilością ćwiczeń, pozwoli Ci opanować podstawy programowania w bardzo krótkim czasie.

  1. Wprowadzenie do programowania
  2. Instalacja interpretera języka PHP w Apache'u
  3. Podstawowe elementy języka:
    • wyświetlanie danych ( instrukcja echo )
    • zmienne
    • korzystanie z wbudowanych funkcji:rand(), date(), strpos(), strlen(), inne
    • odbieranie danych od użytkownika - tablice $_GET,$_POST
    • instrukcja warunkowa "if"
    • pętla while
    • instrukcja warunkowa switch
    • tablice asocjacyjne
      • idea
      • tworzenie
      • funkcje isset oraz unset
      • pętla foreach
    • tworzenie własnych funkcji
    • dołączanie podprogramów - instrukcje: require,require_once,include,include_once
    • operacje na plikach - instrukcje : fopen, fwrite, fgets, fclose, feof
  4. Programowanie - przydatne wskazówki:
    • standardy kodowania (nazewnictwo zmiennych i funkcji, stosowanie wcięć)
    • nazewnictwo plików
    • projektowanie algorytmów
    • wyszukiwanie błędów
  5. Trening - tworzenie prostych programików:
    • loteria
    • organizer
    • notatnik
    • sprawdzanie loginu i hasła
    • tłumacz en -> pl
    • generator tabelek html
    • usypiacz
    • prawo jazdy
    • wyszukiwarka tekstu w pliku
    • inne programiki:-)

III. Budowanie dynamicznych serwisów WWW - techniki klasyczne

Kiedy poznasz już języki HTML/CSS i opanujesz podstawy programowania - przejdziemy do tworzenia niewielkich, dynamicznych serwisów WWW.

Dowiesz się, jak zbierać dane od użytkowników używając wygodnych formularzy ( z listami rozwijanymi, polami tekstowymi czy checkbox'ami) - a następnie jak zapisywać je w bazie danych. Następnie, nauczysz się jak te dane pobierać wygodnie z bazy - po czym prezentować je np. w postaci tabelki. Dzięki temu, bez problemów będziesz mógł wyposażyć swoje strony w ankiety, system dodawania opinii - czy zbudować blog internetowy.

Poznasz także mechanizm sesji - dzięki któremu umożliwisz użytkownikom logowanie się do Twoich serwisów oraz decydowanie, co mogą w nich robić a czego nie.

  1. Podstawy relacyjnych baz danych - system MySQL.
    • Wprowadzenie
    • Instalacja, uruchamianie i zatrzymywanie serwera
    • Tworzenie nowej bazy danych, przeglądanie baz, łączenie się z bazą (klientem mysql)
    • Budowa relacyjnej bazy danych
    • Tworzenie tabel - instrukcja CREATE TABLE
    • Przeglądanie listy tabel - instrukcja SHOW TABLES
    • przeglądanie struktury tabeli - SHOW FIELDS IN
    • Wstawianie danych - instrukcja INSERT
    • Pobieranie danych - podstawy instrukcji SELECT, klauzule WHERE, LIKE
    • Usuwanie rekordów - instrukcja DELETE
    • Aktualizacja danych - instrukcja UPDATE
    • Sortowanie - klauzula ORDER BY
    • Ograniczanie wyników - klauzula LIMIT
  2. Komunikacja z bazami z poziomu PHP. Biblioteka ADODB.
    • Wprowadzenie
    • Instalacja
    • Tworzenie obiektu i nawiązywanie połączenia
    • Aktualizacja danych - metoda Execute
    • Pobieranie danych i wyświetlanie danych z bazy:
      • jednego wiersza : GetRow
      • wielu wierszy : GetAll
      • jednej komorki: GetOne
    • Debuggowanie
    • Obsługa transakcji
  3. Formularze html.
    • Wprowadzenie
    • Architektura serwisu - podejscie klasyczne
    • Tworzenie formularzy i wysyłanie danych
    • Kontrolki:
      • pole tekstowe
      • lista rozwijana
      • textarea
      • checkbox
      • radio button
  4. System szablonów Smarty
    • Wprowadzenie
    • Instalacja
    • Przekazywanie i wyświetlanie zmiennych oraz tablic w szablonie
    • Instrukcje warunkowe
    • Dolączanie plików

IV. Podstawy programowania obiektowego

Programowanie obiektowe jest techniką programistyczną, która pozwala podzielić nasze programy na niezależne moduły - dzięki temu, dużo łatwiejsza staje się ich konserwacja, rozbudowa - czy wielokrotne wykorzystanie tego samego modułu w kilku aplikacjach.

Wiele osób ma przed nią obawy - jednak jak zobaczysz , nie taki diabeł straszny jak go malują (a przy tym, bardzo przydatny :-) ).

  1. Wprowadzenie - czym jest programowanie obiektowe i jakie płyną z niego korzyści
  2. Pojęcie klasy i obiektu
  3. Metody
  4. Właściwości
  5. Konstruktor
  6. Dziedziczenie
  7. Metody statyczne

V. Tworzenie aplikacji webowych w oparciu o framework "Comfort"

W części trzeciej, nauczyłeś się budować niewielkie serwisy w oparciu a tzw. techniki klasyczne. Tzn - w wielu plikach umieszczaliśmy pomieszany kod w językach HTML/CSS/PHP.

Jest to podejście skuteczne - jednak przy bardziej złożonych serwisach sprawia wiele problemów (trudno jest rozdzielić pracę na kilka osób, modyfikacja serwisu jest utrudniona, istnieje duża podatność na przypadkowe błędy). Oprócz tego - musimy w każdym kolejnym serwisie "klepać" ten sam kod - co znacząco redukuje naszą wydajność i skutecznie wywołuje ziewanie ;-).

Dlatego w tej częsci szkolenia, poznasz opracowany przez naszą firmę framework "Comfort". Framework - jest to szkielet aplikacji internetowej wraz z najczęściej wykorzystywanymi komponentami (np. odpowiedzialnymi za logowanie czy weryfikację danych).

Korzystając z jakiegoś frameworku (jest ich wiele na rynku: CakePHP, CodeIgniter, Symfony), drastycznie przyspieszasz proces budowania aplikacji. Kolejne moduły powstają bardzo szybko, a sama architektura jest przejrzysta i wygodna w rozbudowie.

Framework Comfort spelnia kilka warunków, które zostały postawione przed rozpoczęciem prac nad nim:

Uczestnicy szkolenia, będą mogli bezpłatnie korzystać z tego frameworka we własnych aplikacjach - zarówno prywatnych jak i komercyjnych (a w niedalekiej przyszłości, framework zostanie udostępniony na zasadach Open Source).

  1. Wprowadzenie
  2. Rozpoczęcie projektu - czyli jak w kilka sekund uruchomić stronę startową
  3. Architektura frameworka
    • wzorzec MVC
    • tworzenie kontrolera
    • sterowanie widokiem
    • wykorzystanie modelu
    • przepływ danych
  4. Sterowanie interfejsem serwisu - klasa View
    • przekazywanie danych do widoku
    • wyświetlanie komunikatów
    • inteligentne ładowanie zawartości
    • inne aspekty
  5. Rozwijanie aplikacji - dodawanie podstron informacyjnych
  6. Komunikacja z bazą danych - klasa DB.
    • konfiguracja połączenia
    • metody:
      • prep() - przygotowanie zapytań
      • Execute() - wykonywanie
      • GetAll() - wczytywanie wielu wierszy
      • GetRow() - wczytywanie jednego wiersza
      • GetOne() - wczytywanie jednej komórki
      • StartTrans(),CompleteTrans() - obsługa transakcji
      • deb() - debuggowanie
      • conn() - dostęp do instancji ADODB
  7. Przechwytywanie danych z formularzy - klasa Request
  8. Obsługa logowania do serwisu. Klasa Session.
    • włączenie w aplikacji obsługi sesji
    • metody:
      • login()
      • logout()
      • save_form()
      • get_form()
      • is_logged()
      • logged_id()
      • logged_login()
  9. Walidacja danych - klasa Validator.
    • id()
    • postcode()
    • length()
    • nip()
    • email()
    • login()
    • password()
    • bank_account()
    • date()
    • compare_date()
    • accepted_values()
    • inne
  10. mod_rewrite i użycie przyjaznych linków
W tej części szkolenia, zbudujemy na zajęciach następujące aplikacje( przy czym bardzo duży nacisk położymy na pracę samodzielną, abyś jak najlepiej utrwalił przekazywaną wiedzę):

VI. Podstawy języka JavaScript

Język JavaScript jest narzędziem, które pozwala odciążyć nasz aplikację i przenieść część działań na barki przeglądarki WWW. Dzięki temu, możemy np. sprawdzać dane u użytkownika zanim wyśle je do serwera. Pozwala on także na uzyskanie ciekawych efektów wizualnych.
  1. Wprowadzenie
  2. Tworzenie funkcji
  3. Zdarzenia: onClick(), onMouseOver(), onMouseOut(), onFocus(),inne
  4. Dostep do elementow na stronie
  5. Modyfikacja CSS
  6. Walidacja danych

VII. Bezpieczeństwo aplikacji internetowych - podstawy

Po wystawieniu on-line , nasze aplikacje webowe będą narażone na ataki różnych osób.
Dlatego ta część szkolenia skoncentruje się na pokazaniu, jakiego rodzaju ataki najczęściej występują oraz co najważniejsze - jak się przed nimi zabezpieczyć.

  1. Wprowadzenie
  2. Podstawowe zabezpieczanie aplikacji
    • raportowanie błedów
    • prawa dostępu w systemie linux
    • analiza logów Apache'a i PHP
    • walidacja danych
  3. Ataki SQL Injection
  4. Ataki XSS/CSRF
  5. Upload niebezpiecznych plików na serwer
  6. PHP safe_mode
  7. inne zagadnienia

VIII. Język SQL - techniki zaawansowane

SQL jest językiem przy pomocy którego komunikujemy się z serwerem baz danych. Pozwala na pobieranie oraz aktualizację informacji w bazie - korzystaliśmy z niego, ale w dość podstawowym zakresie.

Jednak znajomość tego języka na bardziej zaawansowanym poziomie jest niezbędna, jeśli chcemy pisać wydajne i eleganckie aplikacje. Jak zobaczysz - jedno odpowiednio skonstruowane zapytanie do serwera, potrafi zaoszczędzić dziesiątki linii kodu w PHP, nie wspominając już o wydajności.

  1. Wprowadzenie
  2. Złączenia:
    • wewnętrzne
    • zewnętrzne
    • klauzule JOIN, USING, ON
  3. Podzapytania:
    • klauzule IN, EXISTS
    • używanie podzapytań do konstruowania kolumn
  4. Funkcje agregujace:
    • SUM()
    • AVG()
    • MIN()
    • MAX()
  5. Grupowanie:
    • GROUP BY
    • HAVING

IX. Umieszczanie aplikacji w Internecie - praca zdalna

Do tej pory pracowaliśmy lokalnie na naszych komputerach - w tym momencie nadszedł czas, aby umieścić stworzone serwisy w internecie (oraz zarządzać nimi) :-)

  1. Uzyskanie konta u dostawcy
  2. Połączenie FTP - program CoreFTP.Kopiowanie plików na serwer
  3. Instalacja bazy danych - klient mysql oraz PHPMyAdmin
  4. Testowanie aplikacji
  5. Praca online