A presentation explaining to (high-school) students what Web development is, including career information.
O prezentare pentru elevi și studenți oferind informații despre ceea ce înseamnă dezvoltarea de apllicații Web.
HCI 2018 (6/10) Design Patterns for Social (Web/mobile) Interactions
Ce înseamnă să fii dezvoltator Web
1. Ce înseamnă să fii dezvoltator Web
Dr. Sabin Buragawww.purl.org/net/busaco
Dr. Sabin Buraga
Facultatea de Informatică, UAIC Iași
www.purl.org/net/busaco
3. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
Web
WWW
“pânză de păianjen mondială”
4. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
Serviciu Internet
WWW Internet
5. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
cerere
client
Web server
(browser) Web
răspuns
bazat pe modelul client/server al Internet-ului
7. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
Funcționează conform reglementărilor
Consorțiului Web
MIT, ERCIM, Keio University
Adobe, HP, IBM, Oracle, Microsoft,…
www.w3.org
8. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
Scopuri principale:
independența de dispozitiv
independența de software
scalabilitatea
multimedia
9. world wide web
Dr. Sabin Buragawww.purl.org/net/busaco
Scopuri principale:
independența de dispozitiv
independența de software
scalabilitatea
multimedia
caracter deschisopen standards
11. arhitectura Web-ului
Dr. Sabin Buragawww.purl.org/net/busaco
Resursele sunt identificate prin adresa lor
identificator uniform de resurse
URI – Uniform Resource Identifier
http://slideshare.net/busaco/presentations
12. arhitectura Web-ului
Dr. Sabin Buragawww.purl.org/net/busaco
Accesul la conținutul – reprezentarea –
resurselor Web
se realizează printr-un protocol
HTTP – HyperText Transfer Protocol
13. arhitectura Web-ului
Dr. Sabin Buragawww.purl.org/net/busaco
adrese Web protocoale Web
URI = URL + URN HTTP, HTTPS, SPDY
codificarea nume de protocoalele
datelor domenii Internet
Unicode DNS TCP/IP
16. Ce tipuri de aplicații Web există?
Dr. Sabin Buragawww.purl.org/net/busaco
17. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Sit Web
sistem găzduind
o serie de pagini (resurse) Web înrudite
ale unei organizații, companii sau persoane
18. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Aplicație Web
colecție interconectată de pagini Web
cu conținut generat dinamic
oferă o funcționalitate specifică
19. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Interacțiune Web
interacțiunea dintre sit/aplicație și utilizatori
are loc via o interfață Web
20. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Interacțiune Web
interacțiunea dintre sit/aplicație și utilizatori
are loc via o interfață Web
uzual, sit Web = aplicație Web
21. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Diverse exemplificări:
Amazon, Coursera, Dropbox, Expedia, Flickr,
info.uaic.ro, PHPMyAdmin, Reddit, Quora,
SlideShare, Twitter, Vimeo, webmin, WordPress
…și multe, multe altele
22. tipuri de aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Centrate pe documente
Interactive
Tranzacționale
Colaborative evoluția în timp
Orientate spre portaluri a complexității
De tip ubicuu
Web social
Web semantic
31. Dr. Sabin Buragawww.purl.org/net/busaco
Orientate spre portaluri
localizare unitară a informațiilor
tehnice, de afaceri, guvernamentale,…
specie: Web-ul cetățenesc
33. Dr. Sabin Buragawww.purl.org/net/busaco
De tip ubicuu
servicii mobile bazate pe locația utilizatorului,
disponibile pe mai multe plaforme:
desktop, dispozitive mobile, tabletă,…
Web-ul mobil
35. Dr. Sabin Buragawww.purl.org/net/busaco
Web social
mediatizare (syndication)
spații de lucru virtuale
filtrare colaborativă
divertisment social
social (game) computing
43. Dr. Sabin Buragawww.purl.org/net/busaco
Aplicație Web = Interfață + Program + Date
mitul 1: cea mai importantă este interfața
mitul 2: cel mai important este programul
mitul 3: cele mai importante sunt datele
HTML, CSS, Ajax, Flash, SVG, WebGL, widget-uri,…
45. Dr. Sabin Buragawww.purl.org/net/busaco
Aplicație Web = Interfață + Program + Date
mitul 1: cea mai importantă este interfața
mitul 2: cel mai important este programul
mitul 3: cele mai importante sunt datele
server: C#, Java, JS, PHP, Ruby,…; client: JavaScript
47. Dr. Sabin Buragawww.purl.org/net/busaco
Aplicație Web = Interfață + Program + Date
mitul 1: cea mai importantă este interfața
mitul 2: cel mai important este programul
mitul 3: cele mai importante sunt datele
JSON, XML, relaționale (SQL), grafuri (NoSQL),…
48. Dr. Sabin Buragawww.purl.org/net/busaco
Aplicație Web = Interfață + Program + Date
mitul 1: cea mai importantă este interfața
mitul 2: cel mai important este programul
mitul 3: cele mai importante sunt datele
fapt: sunt importante toate!
49. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Uzual, implică trei strate (3-tier application)
Internet
(Web)
Client Server de aplicații Stocare
(interface) (application) (persistence)
50. Fruit / Presentation
Dr. Sabin Buragawww.purl.org/net/busaco
Cream / Markup
Custard / Page Logic
Jelly / Business Logic
Sponge / Database
C. Henderson, “Scalable Web Architectures”, 2007
51. Fruit / Presentation
Dr. Sabin Buragawww.purl.org/net/busaco
Cream / Markup
Custard / Page Logic
Jelly / Business Logic
Sponge / Database
C. Henderson, “Scalable Web Architectures”, 2007
52. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Majoritatea aplicațiilor Web sunt dezvoltate
pe baza MVC (Model-View-Controller)
53. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
View Model
(prezentare+interacțiune) (structura datelor)
Controller
(procesare)
54. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
View Model
la nivel de client(i) Web stocare persistentă
Controller
aplicație (server și/sau client)
55. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
HTML, CSS, SVG, WebGL,… SQL, NoSQL, XML, RDF,…
View Model
la nivel client(i) Web stocare persistentă
servere de aplicații, framework-uri
Controller
aplicație (server și/sau client)
56. arhitectura unei aplicații web
Dr. Sabin Buragawww.purl.org/net/busaco
Stilul arhitectural MVC poate fi încurajat/impus
de diverse framework-uri Web
exemplificări:
ASP.NET MVC (limbaje .NET precum C#)
Backbone (JavaScript),
CakePHP (PHP)
Play (Java, Scala)
Rails (Ruby)
…
57. studiu de caz: Flickr
Dr. Sabin Buragawww.purl.org/net/busaco
58. studiu de caz: flickr
Dr. Sabin Buragawww.purl.org/net/busaco
Partajare on-line a conținutului grafic (fotografii)
Aplicație reprezentativă a Web-ului social
Agregare de comunități – imaginea ca obiect social
Suport pentru adnotari via termeni de conținut
(tagging) + comentarii
59. studiu de caz: flickr
Dr. Sabin Buragawww.purl.org/net/busaco
Interacțiune facilă cu utilizatorul
UX (User Experience)
Interacțiune cu alte aplicații via API-uri deschise
Unicode
internationalization (i18n) & localization (l10n)
60. studiu de caz: flickr
Dr. Sabin Buragawww.purl.org/net/busaco
Internet
(Web)
Servere de
Servere Web
stocare foto
Servere de baze
de date
61. studiu de caz: flickr – tehnologii
Dr. Sabin Buragawww.purl.org/net/busaco
PHP (procesare – application logic, acces la API,
șabloane de afișare via Smarty, modul de e-mail)
Perl (validarea datelor)
Java (managementul nodurilor de stocare)
MySQL (stocare în format InnoDB)
ImageMagick (prelucrare de imagini)
Ajax (interacțiune asincronă)
Linux (platformă de rulare)
63. studiu de caz: flickr
Dr. Sabin Buragawww.purl.org/net/busaco
Interfețe de
programare (API-uri)
oferite de Flickr
www.flickr.com/services/api/
64. studiu de caz: flickr
Dr. Sabin Buragawww.purl.org/net/busaco
Datele privitoare la fotografiile stocate de Flickr
pot fi reutilizate și în alte contexte – via API-uri
aplicații Web hibride (mashup-uri)
www.programmableweb.com
66. Cum dezvoltăm o aplicație Web?
Dr. Sabin Buragawww.purl.org/net/busaco
67. dezvoltarea aplicațiilor Web
Dr. Sabin Buragawww.purl.org/net/busaco
Cerințe (requirements)
Analiză & proiectare (software design)
Implementare (build)
Testare (testing)
Exploatare (deployment)
Mentenanță (maintenance)
Evoluție (evolution)
68. Soluții “în nori” de editare a codului-sursă
Dr. Sabin Buragawww.purl.org/net/busaco
design Web & programare la nivel de client
Mozilla Thimble, JS Bin, jsFiddle
programare Web folosind servere de aplicații
CodeRun, PhpFiddle
experimentarea interogărilor SQL asupra datelor
SQL Fiddle
testarea de API-uri Google invocate asincron via Ajax
Google Code Playground
programare generală (C, C#, Java, Python, Ruby,…)
Compilr
70. Development as a Service
A. Iqbal, M. Haunsenblas, S. Decker (2012)
Dr. Sabin Buragawww.purl.org/net/busaco
71. Google App Engine, Heroku,
Jelastic, Windows Azure
Dr. Sabin Buragawww.purl.org/net/busaco
BitBucket, GitHub, Web: Cloud9 IDE, eXo Cloud,…
SourceForge desktop: Eclipse, <oXygen/>, Visual Studio
72. aplicații Web: componente tipice
Dr. Sabin Buragawww.purl.org/net/busaco
client(i)
firewall
proxy
middleware
server(e) Web
server(e) de aplicații
framework-uri, biblioteci, alte componente
server(e) de stocare persistentă – e.g., baze de date
server(e) de conținut multimedia
server(e) de management al conținutului (CMS)
aplicații tradiționale
74. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
obiectiv principal
durată
cost
abordare
tehnologii
procese
rezultat
resurse umane
profilul echipei
75. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
obiectiv principal
crearea unui produs software utilizabil
în cât mai scurt timp posibil
76. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
durata
aproximativ 2—6 luni
77. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
cost
de ordinul miilor de Euro
78. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
abordare
metode agile
asamblare de componente
prototipizare – inclusiv wireframes, mock-ups
79. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
tehnologii
componente (servicii Web, API-uri publice,
framework-uri, biblioteci, plugin-uri, extensii etc.)
proiectare/programare “vizuală”
multimedia
…și altele
80. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
programare (server + client)
creare/adaptare
documen- de conținut
tare testare
arhitectura info
cerințe + navigare mentenanță
public beta lansare
http://sixrevisions.com/web-development/agile/
81. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
rezultat
reutilizabilitate mare a codului, recurgerea la
componente/limbaje/platforme standard
aplicații implementate uzual conform standardelor
designul vizual este, de cele mai multe ori, unicat
82. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
resurse umane
uzual, 3—9 indivizi
strategii: in-house, outsourcing (offshore), near-shore
83. parametrii unui proiect web
Dr. Sabin Buragawww.purl.org/net/busaco
profilul echipei
specialiști în interacțiune – e.g., designeri Web
+
dezvoltatori (programatori) Web
+
arhitecți de baze de date
+
specialiști în marketing și/sau relații cu publicul
85. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Management
site editor
project manager
86. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Dezvoltare (arhitectură)
system architect
creative lead
Web interface designer(s)
graphic artist(s)
HCI engineer
data (content) architect
component architect
security architect
87. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Programare
server-side programmers
client-side programmers
data/component integration programmers
91. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Operații tehnice asupra serverului Web
Webmaster
hardware & network technicians
network administrator(s)
database administrator(s)
backup operator
uptime monitor
security monitor(s)
92. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Marketing
content producer(s) & copywriter(s)
content editor(s)
branding & advertising expert(s)
direct e-marketer
public relations personnel
93. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Web Designer: mainly a front-end developer
graphics applications, (X)HTML, CSS,
cross-browser compatibility,
experiență în design vizual + responsive design,
cunoștințe privind interacțiunea Web,
JavaScript (+biblioteci, precum jQuery),
familiar cu paradigme de interacțiune naturală
(gestures, touch, augmented reality),…
94. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Web Developer: mainly a back-end developer
cel puțin 1 limbaj obiectual, server-side scripting,
protocoale & standarde Internet/Web,
cunoștințe de baze de date (inclusiv XML și/sau
NoSQL), familiaritate cu sisteme CMS/wiki,
cunoștințe privind servicii Web (în special REST),
familiar cu alte paradigme de programare
(e.g., funcțională, distribuită), cunoștințe referitoare
la securitate & performanță Web,…
96. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Web Technician
asistent (ajutor) al webmaster-ului,
designerului sau dezvoltatorului Web
poate efectua operații tehnice
(e.g., instalare, configurare, monitorizare,…)
97. personal
Dr. Sabin Buragawww.purl.org/net/busaco
Web Maintainer: maintains information
actualizează conținutul disponibil pe Web
via o interfață WYSIWYG, uzual
98. Dr. Sabin Buragawww.purl.org/net/busaco
echipa proiectului Web
management funcționalitate conținut (date)
Web Project Software Domain
Manager Engineer(s) Expert
Multimedia Business
Designer(s) Expert