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.
- Statyczne serwisy WWW - języki HTML i CSS
- Sztuka programowania.Programowanie strukturalne w języku PHP
- Budowanie dynamicznych serwisów WWW - techniki klasyczne
- Podstawy programowania obiektowego
- Tworzenie aplikacji webowych w oparciu o framework "Comfort"
- Podstawy języka JavaScript
- Bezpieczeństwo aplikacji internetowych
- Język SQL - techniki zaawansowane
- 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:
- wizytówki firm
- strony domowe
- strony reklamowo-informacyjne ( dla restauracji, kwiaciarni, kancelarii prawnych, itp.)
- strony o tematyce hobbystycznej ( billard, lotnictwo, itp)
- inne nieduże serwisy, których głównym zadaniem jest udostępnianie informacji na jakiś temat
Podsumowując - już po pierwszym tygodniu zajęć, będziesz potrafił zbudować funkcjonalną stronę
dla siebie lub zaprzyjaźnionej firmy.
- Wprowadzenie
- 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
- 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
-
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.
- Wprowadzenie do programowania
- Instalacja interpretera języka PHP w Apache'u
- 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
- Programowanie - przydatne wskazówki:
- standardy kodowania (nazewnictwo zmiennych i funkcji, stosowanie wcięć)
- nazewnictwo plików
- projektowanie algorytmów
- wyszukiwanie błędów
-
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.
- 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
- 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
-
Formularze html.
- Wprowadzenie
- Architektura serwisu - podejscie klasyczne
- Tworzenie formularzy i wysyłanie danych
- Kontrolki:
- pole tekstowe
- lista rozwijana
- textarea
- checkbox
- radio button
- 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 :-) ).
- Wprowadzenie - czym jest programowanie obiektowe i jakie płyną z niego korzyści
- Pojęcie klasy i obiektu
- Metody
- Właściwości
- Konstruktor
- Dziedziczenie
- 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:
- wygoda i jak najmniej pisania po raz setny tego samego kodu - oszczędzamy nasze palce ;-)
- maksymalna elastyczność
- oparcie o wzorzec MVC (model - widok - kontroller)
- podstawowy zestaw przydatnych komponentów (walidacja danych, obsługa sesji)
- szybki w nauce
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).
- Wprowadzenie
- Rozpoczęcie projektu - czyli jak w kilka sekund uruchomić stronę startową
- Architektura frameworka
- wzorzec MVC
- tworzenie kontrolera
- sterowanie widokiem
- wykorzystanie modelu
- przepływ danych
- Sterowanie interfejsem serwisu - klasa View
- przekazywanie danych do widoku
- wyświetlanie komunikatów
- inteligentne ładowanie zawartości
- inne aspekty
- Rozwijanie aplikacji - dodawanie podstron informacyjnych
- 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
- Przechwytywanie danych z formularzy - klasa Request
- 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()
- Walidacja danych - klasa Validator.
- id()
- postcode()
- length()
- nip()
- email()
- login()
- password()
- bank_account()
- date()
- compare_date()
- accepted_values()
- inne
- 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ę):
- sklep internetowy
- serwis ogłoszeniowy
- serwis maklerski
- społecznościowy serwis newsów
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.
- Wprowadzenie
- Tworzenie funkcji
- Zdarzenia: onClick(), onMouseOver(), onMouseOut(), onFocus(),inne
- Dostep do elementow na stronie
- Modyfikacja CSS
- 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ć.
- Wprowadzenie
- Podstawowe zabezpieczanie aplikacji
- raportowanie błedów
- prawa dostępu w systemie linux
- analiza logów Apache'a i PHP
- walidacja danych
- Ataki SQL Injection
- Ataki XSS/CSRF
- Upload niebezpiecznych plików na serwer
- PHP safe_mode
- 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.
- Wprowadzenie
- Złączenia:
- wewnętrzne
- zewnętrzne
- klauzule JOIN, USING, ON
- Podzapytania:
- klauzule IN, EXISTS
- używanie podzapytań do konstruowania kolumn
- Funkcje agregujace:
- Grupowanie:
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) :-)
- Uzyskanie konta u dostawcy
- Połączenie FTP - program CoreFTP.Kopiowanie plików na serwer
- Instalacja bazy danych - klient mysql oraz PHPMyAdmin
- Testowanie aplikacji
- Praca online