Web garapen

**Web garapena** sarean erabiliko diren produktu digitalak sortzen dituen barne prozesua da. Internet edo intraneterakowebguneak sortzeko jarduera da, eta, horretarako, bezeroaren eta zerbitzariaren aldeko software-teknologiak erabiltzen dira. Horiek datu-baseen prozesuak eta web nabigatzailearen bidezko informazioa bistaratzea edo zenbait zeregin egiten dituzte.

Iraganean, sail bateko softwarea edo tamaina handiko enpresa-proiektua stand alone moduan garatzen zen, hau da, hizkuntza konpilatuak (C, C++, Delphi), erdi-konpilatuak (.NET, Mono, Java) edo interpretatuak (Python, PHP) erabiliz, bai funtzionalitatea, bai erabiltzailearen interfazea sortzeko. Hala ere, gaur egun gero eta ohikoagoa da garapena web ingurunean egitea, plataforma anitzetan modu homogeneoan exekutatu daitekeelako, eta askotan azkarragoa eta sendoagoa delako diseinuan, inplementazioan eta probetan zein azken erabileran.

Praktikan, web garatzailea da softwarearen funtzionamenduaz arduratzen den profesionala; web diseinatzaileak, berriz, orriaren itxura edo diseinua zaintzen du, eta webmasterrak bi alderdi horiek integratzen ditu. Batzuetan webmasterra webguneko edukiak eguneratzeaz ere arduratzen da.

Web garatzaile batek ez luke soilik programazio-lengoaia bat ezagutu behar, baizik eta HTML eta webaren oinarrizko funtzionamendua ere menderatu beharko lituzke.

Bestalde, web garapenaren esparruan hainbat espezializazio mota daude: frontend garatzaileak (nabigatzailean ikusiko den portaera eta diseinua zaintzen ditu), backend garatzaileak (zerbitzariaren funtzionamendua eta datu-tratamendua kudeatzen ditu), eta full-stack garatzaileak (bi alderdiak lantzen ditu). Gaur egun, web garapenaren sektorea azkar hazten eta etengabe aldatzen ari den industria da, gaur egungo teknologia digitalen oinarrietako bat.

## Bilakaera 
World Wide Web-a 1990eko hamarkadan hedatu zenean, webguneak nagusiki estatikoak ziren, HTML hutsez eraikiak eta edukiari lotutako funtzionalitate gutxirekin. 2000ko hamarkadaren hasieran, CSS eta JavaScript bezalako teknologien sendotzeak webgune dinamikoak sortzea ahalbidetu zuen, eta Ajax bezalako teknikek erabiltzaile-esperientzia interaktiboagoak ekarri zituzten.

Geroago, Web 2.0 ikuspegiak eduki partekatuan, sare sozialetan eta erabiltzailearen elkarreraginean oinarritutako plataforma berriak bultzatu ziren. Horrek APIen, datu-formatu arinen (JSON) eta web-zerbitzuen hazkundea ekarri zuen.

Azken urteetan, web aplikazio konplexuak (SPA, PWA eta antzeko arkitekturak) garatzeko moduak nagusitu dira, eta weba plataforma unibertsal bihurtu da, mugikorretarako, mahaigaineko ingurunerako eta baita IoT gailuetarako ere egokia.

## Metodologiak 
Web garapenean, metodologiak ingenieroak eta garatzaileak jarraitzen dituzten prozesuak dira, proiektu berri baten sorkuntza eta diseinua planteatzen dutenean.

### Metodologia tradizionalak: 
* **Waterfall (Ur-jauzia)**: garapen lineala; oso erabilia 90eko hamarkadan eta hasierako urteetan.
* **Big Design Up Front (BDUF)**: diseinu osoa aldez aurretik planifikatzea

### Gaur egungo metodologiak: 
* **Agile (Scrum, Kanban)**: iterazio laburrak, aldakortasun handiagoa eta bezeroarekiko komunikazio jarraitua.
* **DevOps**: garapena eta eragiketen arteko integrazioa, integrazio jarraitua eta bidalketa jarraitua (CI/CD) bultzatuz.
* **UX-driven development**: erabiltzaile-esperientzian oinarritutako garapena, datuetan eta probetan oinarritutako erabakiak hartuz.

## Teknologiak 
Web aplikazioak garatzeko erabiltzen diren laguntza-tresnak dira. Horiekin banandu daitezke aplikazioen lan-atal guztiak eta bakoitza modu isolatuan landu.

### Teknologia tradizionalak: 
* **HTML, CSS eta JavaScript** oinarrizko estandar moduan.
* Zerbitzariak: **PHP, ASP, Perl**, eta geroago **Java EE** eta **.NET**.
* Datu-baseak: **MySQL, PostgreSQL, Oracle**.

### Gaur egungo teknologiak: 
* **Frontend framework-ak**: React, Vue.js, Angular.
* **Backend framework-ak**: Node.js (Express, NestJS), Django, Laravel, Spring Boot.
* **API arkitektura modernoa**: REST, GraphQL.
* **Hodeiko eskalagarritasuna**: AWS, Azure, Google Cloud.
* **Kontenedorizazioa eta orkestrazioa**: Docker, Kubernetes.
* **Konpilazio tresnak**: Webpack, Vite, esbuild.
* **Datu-base modernoak**: NoSQL (MongoDB, Redis), data streaming (Kafka).

## Gaur egungo joerak 
* **PWA (Progressive Web Apps)**: web aplikazioak mugikorreko aplikazio natiboen funtzionaltasunarekin.
* **Serverless arkitekturak**: gertaera-pilatutako funtzioak (AWS Lambda, Cloud Functions).
* **Headless CMS eta Jamstack**: edukia API bidez kudeatzen duten sistemak.
* **AA** **eta web garapena**: eduki sortzailea, automatizazioak eta pertsonalizazioa web esperientzian.
* **WebAssembly (WASM)**: errendimendu handiko aplikazioak web nabigatzailean exekutatzeko.
* **Segurtasuna eta pribatutasuna**: OAuth2, OpenID Connect, enkriptazio estandarrak eta datuen babes-arauak (GDPR).
* **Real-time web**: WebSockets, WebRTC eta streaming bidezko komunikazioa.

## Ikus, gainera 
* Web garatzaile
* Web diseinu
* Internet
* Web semantiko
* Web posizionamendu

## Erreferentziak 
# Desarrollo Web - EcuRed
# SEM - Merca2.0
# Desarrollo Web Integral - Panoramas Digital Marketing
# What is Web Development? - Definition from Techopedia - techopedia.com
# Campbell, Jennifer (2017). Web Design: Introductory. Cengage Learning. p. 27
# Northwood, Chris (2018-11-19). The Full Stack Developer: Your Essential Guide to the Everyday Skills Expected of a Modern Full Stack Web Developer
# Discover The Difference Between Front-End Vs. Back-End Developer - Forbes
# A short history of the Web - CERN
# WebD2: A Brief History of HTML - washington.edu
# Soni, Anuj; Gupta, Sachin; Talwandi, Navjot Singh (September 2023). "Evolution Of Web Technologies in Recent Years". Journal of Emerging Technologies and Innovative Research
# Jazayeri, Mehdi (2007). "Some Trends in Web Application Development". Future of Software Engineering (FOSE '07). pp. 199–213
# Web2.0 - paulgraham.com
# How Web 2.0 Works - howstuffworks.com
# Hall, Heather (2022-05-01). "Web 2.0 Explained: Everything You Need To Know". History-Computer
# Du, Xiaofeng; Song, William; Munro, Malcolm (2009), Barry, Chris; Lang, Michael; Wojtkowski, Wita; Conboy, Kieran (eds.), "Semantic Service Description Framework for Address", Information Systems Development, Boston, MA: Springer US, pp. 1033–1045
# 20 Years of CSS - W3C
# JavaScript History - W3 Schools
# A brief history of PHP - ifj.edu.pl
# The story of XMLHTTP - Wayback Machine
# Howcroft, Debra; Carroll, John (2000). "A proposed methodology for web development"
# Keil, Mark; Cule, Paul E.; Lyytinen, Kalle; Schmidt, Roy C. (November 1998). "A framework for identifying software project risks". Communications of the ACM
# Salas-Zárate, María del Pilar; Alor-Hernández, Giner; Valencia-García, Rafael; Rodríguez-Mazahua, Lisbeth; Rodríguez-González, Alejandro; López Cuadrado, José Luis (May 2015). "Analyzing best practices on Web development frameworks: The lift approach". Science of Computer Programming
# Las tecnologías más actuales para el Desarrollo Web - Bambú Mobile
# ¿Qué metodología es mejor para el desarrollo web? - Rootstack