Introduction to web development
A web application is application software that runs on a web server.
Web applications are accessed by the user through a web browser with an active network connection.
No design fits all.
The entire application is deployed as a single unit.
PROS | CONS |
---|---|
All-in-one | Technology Stack |
Simplicity | Reliability |
Updates |
Loosely-coupled, independent services.
PROS | CONS |
---|---|
Scalability | Needs Expertise |
Low coupling | Testing |
Updates | Development |
No need for provisioning, and managing webservers.
PROS | CONS |
---|---|
No server management | Needs Expertise |
Charged by usage | Vendor locked-in |
Scalability | Development |
A stack is a combination of technologies to develop web applications.
Linux (OS)
Apache (Web Server)
MySQL or MariaDB (Database)
Perl, PHP, or Python (Language)
Cross-platform (operating system)
Apache (Web Server)
MariaDB or MySQL (Database)
PHP (Language)
Perl (Language)
MongoDB (Database)
Express.js (Application Controller Layer)
AngularJS/Angular (Web Application Framework)
Node.js (JavaScript language)
Objectivity.
The whole team should use the same stack.
Evaluate solutions according to your needs.
Evaluate solutions according to your needs.
Focus on applications when the main target is mobile devices.
Developed for specific operating systems.
Developed across multiple platforms.
Native | Hybrid and Cross Platform |
---|---|
Higher performance | Usually cheaper |
Direct access to features | Faster to market |
Best responsive user experience | One codebase, multiple platforms |
Description | React Native | Flutter (SDK) |
---|---|---|
Single codebase | Yes | Yes |
Community Support | Highest | High |
Hot-reload | Yes | Yes |
Documentation | Excellent | Excellent |
Open Source | Yes | Yes |
Language | Javascript/Typescript | Dart |
Stack Overflow Survey 2022 of Usage | 12.57% | 12.64% |
Choose the one you feel more comfortable with.
Usability
Everything has to be in a ticket.
Decisions are SPIKE tickets.
They are limited in TIME not complexity.
The output are other tickets with the actions to take.
Tickets must be as small as possible.
Tickets must have a well-defined AC that can be checked.
## Spike Plan
## Title
The title of the Spike.
- Example: Team needs to choose an architecture for the project.
## Context
Outline the reason and context for the spike.
- Example: Team needs to create a web app for XXX.
## Goals/Deliverables
What are the goals and deliverables of this spike?
- Example:
-- Architecture stack to be used by the whole team.
-- Tickets to create it.
# Spike Outcome/Result
## Goals/Deliverables
Summarise from the spike plan goal.
## Technologies, Tools, and Resources used
List of information needed by someone trying to reproduce this work.
-- PHP/Python/Node evaluated as programming languages. Pros/Cons of each one.
-- Apache/serverless evaluated as web servers. Pros/Cons of each one.
## What we found out
Pros/Cons of each solution evaluated, considerations, etc.
## Open issues/risks [Optional]
List out the issues and risks identified. Make notes to help the team manage and respond.
-- The library X doesn't seem well maintained.
-- We would be tying us up to this hosting provider.
## Recommendations
List out the output of the SPIKE.
-- Due to this and that we think we should go for the solution #X.
Technical Review
https://reinvently.com/blog/fundamentals-web-application-architecture/
https://www.mulesoft.com/resources/api/microservices-vs-monolithic
https://github.com/Tooramvale/_spike-templates
https://www.leadingagile.com/2016/09/whats-a-spike-who-should-enter-it-how-to-word-it/
Juan Carlos Blanco Delgado
Gorka Guridi