¡Descarga Programació d'aplicacions en tecnologia web y más Apuntes en PDF de Programación Web y Tecnologías solo en Docsity!
Introducció a les Tecnologies Web
Aplicacions
En un sentit genèric, una aplicació és un programa informàtic desenvolupat amb un llenguatge de programació i pensat per a ser executat en un entorn operatiu. Actualment, solem parlar dels següents tipus d’aplicacions:
- Aplicacions natives
- Aplicacions híbrides
- Aplicacions web Aplicacions natives Programació específica per a una plataforma específica (cpu i sistema operatiu)
- PROS:
- Accés sense restriccions a la plataforma (hw i sw)
- Alt rendiment
- Funcionament offline
- CONS:
- Cost de desenvolupament
- Cost de manteniment
- Procés actualització
- Requereixen instal·lació (espai)
Aplicacions híbrides
- Programació genèrica per a un entorn operatiu multiplataforma.
- PROS:
- Cost de desenvolupament
- Cost de manteniment
- Funcionament offline
- CONS:
- Accés limitat a la plataforma nativa
- Rendiment
- Requereixen instal·lació (espai) Aplicacions web
- Programació genèrica per a l’execució en un navegador.
- PROS:
- Cost de desenvolupament
- Cost de manteniment
- Actualitzacions
- No cal instal·lació
- CONS:
- Funcionament online
- Accés molt limitat a la plataforma
El número de comandes en HTTP és força limitat: Protocol HTTP/S > Peticions GET en HTML També podem generar una petició GET directament des d’un link: _
Test de GET
_
Protocol HTTP/S > Peticions POST en HTML Protocol HTTP/S > Recepció al costat servidor Tots els llenguatges de costat servidor tenen mètodes per tal d’extreure tota la informació de les peticions HTTP. En el cas de PHP, es fa a través d’unes variables denominades superglobals. Per ara, són especialment interessants $_GET, $_POST i $_SERVER Protocol HTTP/S > Recepció de GET en PHP Protocol HTTP/S > Recepció de POST en PHP
Protocol HTTP/S > Sessions en PHP Protocol HTTP/S > Dades El protocol HTTP/S permet enviar pràcticament qualsevol tipus de dades. Inicialment, la naturalesa de les dades a enviar s’especifiquen a la capçalera seguint l’estàndard MIME i dins del camp content-type.
Tipus d’aplicacions web
Al llarg dels anys han aparegut diferents tecnologies que han permès ampliar el ventall de possibilitats a l’hora de crear una aplicació web. Una aplicació web pot ser:
- Estàtica. Les dades que es presenten són fixes. Per tant, l’usuari final sempre obté el mateix resultat.
- Dinàmica. Les dades que es presenten es generen en el moment de fer la petició i, per tant, el resultat pot variar d’un moment a l’altre. Aplicacions web estàtiques En aquest cas, el servidor atén les peticions del client i simplement localitza i enviar els arxius demanats. web dinàmiques costat servidor Server Side Aplicacions Rendering (SSR) L’usuari envia una petició a una aplicació del costat servidor (PHP, Python...) que s’encarrega d’obtenir les dades i de generar el resultat a enviar al client (HTML, CSS, JS). Aplicacions web dinàmiques costat servidor Server Side Rendering (SSR) – Dades Les dades normalment s’emmagatzemen en SGBD generalment relacional (p.e. MySQL) encara que també podrien venir de SGBD no relacionals o NoSQL(com ara MongoDB). L’aplicació de costat client s’encarrega de connectar al SGBD, gestionar les dades i generar la resposta (HTML, CSS i JS)
Aplicacions web dinàmiques costat client Client Side Rendering (CSR)
- PROS:
- Single Page Application
- Alta interactivitat
- CONS:
- Temps de càrrega
- SEO
- Dependència del navegador
PWA: entre natives i web
Les Progressive Web Application (PWA) són aplicacions web instal·lables i que, òbviament, s’executen dins de l’entorn operatiu d’un navegador. L’aparença és el d’una aplicació nativa convencional. A nivell tecnològic implica l’ús d’un service worker, una capa desenvolupada en javascript, capaç de treballar en segon pla i que fa de proxy entre el navegador i el servidor web. Actualment en procés de fort desenvolupament.
Desenvolupar una aplicació web
Avui dia el desenvolupament d’una aplicació web inclou un bon número d’habilitats, coneixements i tecnologies associades. És habitual veure els següents rols professionals:
- Desenvolupador Frontend
- Desenvolupador Backend
- Desenvolupador Full Stack Desenvolupar al Frontend Són les persones encarregades de la correcta execució de l’aplicació web en el navegador. Ha de tenir coneixements de:
- Tecnologies i frameworks del costat client
- UX
- Usabilitat
- Accessibilitat
- Disseny web
- Responsive Web Design – Mobile First
- Progressive Enhancement
- Seguretat
- SEO Desenvolupar al Backend Son les persones encarregades de la correcta execució de l’aplicació en el servidor tant pel que fa al seu objectiu (la lògica de negoci) com altres temes com ara la seguretat, el rendiment i l’escalabilitat. Ha de tenir coneixements de:
- Tecnologies i frameworks del costat servidor
- Arquitectures de servidors
- Arquitectures del software
- Disseny i administració de BBDD
- Seguretat Tecnologies de Backend Desenvolupar FullStack
Sistemes Gestors de Bases de Dades (SGBD)
Tipologies de Sistemes Gestors de Bases de Dades (SGBD)
A vista d’ocell, avui dia hi ha dos grans tipologies de SGDB:
- SGBD Relacionals. Les dades s’emmagatzemen en taules interconnectades a través de claus compartides. Té avantatges (facilitat d’ús, permeten reduir al màxim l’espai d’emmagatzematge necessari, fer noves consultes complexes...) però, depenent de l’aplicació, poden tenir problemes importants (rendiment, escalabilitat, flexibilitat...)
- SGBD No Relacionals (NoSQL). Comencen a tenir un rol important en aquest segle i neixen com a resposta a les limitacions que els SGBDR tenen per les aplicacions que requereixen un alt volum d’informació i un tràfic molt elevat (Big Data, IoT ...). Solen ser molt flexibles i escalables cosa que, evidentment, no és a cost zero (també tenen inconvenients).
Sistemes Gestors de Bases de Dades NoSQL
Sistemes Gestors de Bases de Dades Relacionals (SGBDR)
Sistemes Gestors de Bases de Dades
Relacionals (SGBDR). SQL
- DDL – Data Definition Language
- DQL – Data Query Language
- DML – Data Manipulation Language
- DCL – Data Control Language
Sistemes Gestors de Bases de Dades Relacionals (SGBDR)
- Són els sistemes tradicionals i segueixen tenint un paper molt important en el ecosistema de desenvolupament actual.
- Compleix amb ACID (a no ser que ho fem malament...)
Disseny de Bases de Dades Relacionals. Model conceptual. Cardinalitat Disseny de Bases de Dades Relacionals. Model conceptual. Entitats dèbils. Una clau primària “normal” de ´l’entitat transacció no és suficient: la seva de transacció ha d’incloure la clau del compte. Això s’anomena identifying relationship
Disseny de Bases de Dades Relacionals. Model lògic. Un model de dades lògic descriu les dades amb el major detall possible, independentment de com s'implementaran físicament en la base de dades. Característiques:
- Inclou totes les entitats i relacions entre elles.
- Tots els atributs per a cada entitat.
- La clau principal per a cada entitat.
- S'especifiquen les claus externes.
- Es normalitzen les dades. Disseny de Bases de Dades Relacionals. Model lògic. Formes normals Primera forma normal (1FN)
- Totes les dades són atòmiques.
- Totes les columnes contenen el mateix tipus de dades. Segona forma normal (2FN)
- Complir 1FN
- Els atributs que no formen part de cap clau han de dependre funcionalment de tota la clau primària. Tercera forma normal (3FN)
- Complir la 2FN
- Els atributs no-clau no poden dependre de manera transitiva d'una clau candidata. Disseny de Bases de Dades Relacionals. Model conceptual i lògic Disseny de Bases de Dades Relacionals.Model físic. Es crea una descripció completa de la BBDD i específica per al SGBD on l’implantarem
Diagrama físic:
Programació Orientada a Objectes en PHP
Necessitat
La Programació Orientada a Objectes és un paradigma de programació que ha canviat la forma i visió en què es desenvolupen les aplicacions actuals. Excepte per a aplicacions molt específiques (i que podem considerar anecdòtiques), avui dia, és quasi obligatori saber programar en objectes.
D’on venim...
En els primers moments de la informàtica “moderna” hi havia un context molt limitat:
- Molt poca capacitat de càlcul
- Molt poca capacitat d’emmagatzematge (memòria primària i secundària)
- Molt poques eines de desenvolupament (en el millor dels casos, assembler )
- Sense connexió dels sistemes (o quasi) Com a conseqüència: aplicacions petites/simples, difícils de mantenir i, sovint, de la mà d’una única persona.