Kurssi on suunniteltu web-kehityksen peruskurssiksi ohjelmoijille,
joilla ei juurikaan ole kokemusta webin perustekniikoista (HTML5, CSS3 ja JavaScript).
Kurssilainen oppii tavan, jolla JavaScriptiä hyödynnetään selaimessa ja samalla
HTML5-rakenteet ja CSS3-tekniikan alkeet tulevat myös tutuiksi.
Opit käyttämään JavaScriptiä tehokkaasti ja luotettavasti osana web-ratkaisuasi.
Saat myös varsin kattavan yleiskuvan hyvinkin laajasta tekniikkakirjosta,
jota ratkaisussa voidaan hyödyntää.
Osallistujien tulee ymmärtää HTML5-rakenteet sekä CSS3-tekniikan perusteet,
sekä hallita ohjelmointi jollakin lausekielellä.
Kurssi laajentaa osallistujan JavaScript-taidot uudelle tasolle. Lisäksi syntyy
kokonaisvaltaisen näkemyksen siitä, miten laajempi JavaScript-projekti ja millaisia
tekniikoita sen toteuttamisessa käytetään.
Osallistujan tulee jo hallita JavaScriptin perustaidot
sekä tuntea HTML5- ja CSS-tekniikkat.
Mahtoiko joku uskoa vuosituhannen alkuvaiheilla, että JavaScriptistä kasvaisi kieli,
jolla voi toteuttaa web-projektin kokonaisvaltaisesti? Niin vain on käynyt ja ratkaisumalli
on jopa muodostunut tietynasteiseksi trendiksi.
Selaimessa JavaScriptin käyttö on itsestäänselvyys ja SPA-malli on lyönyt läpi
web-ui-kehityksesä. NodeJS laajentaa JavaScriptin käytön myös palvelinympäristöön ja
sen järjettömän laaja kirjo laajennuskirjastoja mahdollistaa oikeastaan millaisen
palvelinsovelluksen toteuttamisen tahansa.
Samaan aikaan myös työkalupaletti on laajentunut, nyt oikeasti jo löytyy apuvälineitä
kehitysprosessin tueksi. Apuvälineet myös integroituvat mukavasti tuoreimpiin IDE-versioihin,
jotka taas tarjoavat intellisensen lisäksi tutun projektirakenteen sekä tietenkin
mahdollisuuden joissain (satunnaisissa ja harvinaiseksi jäävissä) yhteyksissä
käyttää myös muita ohjelmointikieliä.
Modernit web-sovellukset
Webin evoluutio
Standardiversiot ja niiden tuki
Sovellusarkkitehtuurit
Työkalupaletti
HTML5 ja CSS3-Perusteet
HTML5 rakenteet
Elementit ja attribuutit
CSS-tekniikan peruskäyttö
Perustyylit
CSS3 valitsimet
Mikä on bootstrap
JavaScriptin perusteet
Tyyppijärjestelmä ja muuttujat
Merkkijonojen ja päivämäärien käsittely
Ehtolauseet
Silmukointilauseet
Funktiot
Taulukoiden käsittely
Kertaus perusteista
Tyyppijärjestelmä ja prototyypit
JavaScriptin oliokäsite
Taulukot
Erilaiset funktiorakenteet
Oliotekniikat: kapselointi ja periyttäminen
this-avainsana
Lokalisointi ja kansainvälistäminen
JavaScript web-sivulla
Skriptin liittäminen sivulle
Tapahtumankäsittelijät
HTML-elementtien etsiminen
Elementtien ja attribuuttien muokkaus
Työskentely lomakkeiden kanssa
HTML5 lomake-elementit
Syötteiden lukeminen
Tiedon validointi
Lomaketiedon lähettäminen palvelimelle
Kommuninointi palvelimelle
Katsaus NodeJS-pohjaiseen web-palvelimeen
Mitä on asynkroonisuus
HTTP-protokolla
AJAX ja Fetch
Asynkrooniset rakenteet
Callback vs. Event vs. Promise
ES6 Promise-objekti sekä async-metodit
Web Workers
JavaScript-projekti
JavaScript-käännös, Babel
TypeScript ja JSX
CSS-preprosessorit: less ja sass
Kehitysprosessi: webpack, gulp ja grunt
npm-skriptit
Yksikkötestaus
Modularisointi
Paketointi ja minifiointi
NodeJS -palvelinohjelmointi
Web-palvelin express-modulilla
NodeJS-modulit
Tietokannan käsittely
RESTful rajapinnan toteutus
Web Socket -palvelin
NodeJS pilvipalvelualustalla
Selaintekniikoita
LocalStorage ja SessionStorage
Canvas ja piirto API
File API
Selaintekniikoita
File API
Web Socket
Local Storage, Session Storage
Indexed DB
Canvas ja piirto API
Angular/React -katsaus
SPA-arkkitehtuuri ja kirjastot
Sovelluksen perusrakenne
Komponentit
Reititys