Content deleted Content added
m Dating maintenance tags: {{Cn}} |
Tidy up. This article is a bit of a mess, but honestly it was one before so .. meh ... |
||
Line 4:
{{more citations needed|date=December 2012}}
{{Original research|date=May 2022}}
{{Manual|date=December 2023}}
}}
'''Web development''' is the work involved in developing a [[Web site|website]] for the [[Internet]] ([[World Wide Web]]) or an [[intranet]] (a private network).<ref name=":0">{{Cite web |title=What is Web Development? - Definition from Techopedia |url=https://www.techopedia.com/definition/23889/web-development |access-date=2018-12-07 |website=Techopedia.com |language=en}}</ref> Web development can range from developing a simple single [[Static Web page|static page]] of [[plain text]] to complex [[web application]]s, [[electronic business]]es, and [[social network service]]s. A more comprehensive list of tasks to which Web development commonly refers, may include [[Web engineering]], [[Web design]], [[Web content development]], client liaison, [[Client-side scripting|client-side]]/[[server-side scripting]], [[Web server]] and [[network security]] configuration, and [[e-commerce]] development.
Line 28 ⟶ 29:
==== Web 3.0 ====
Web 3.0 aims to turn the web into a sizable, organized database, providing more functionality than traditional search engines. Users can customize navigation based on their preferences, and the core ideas involve identifying data sources, connecting them for efficiency, and creating user profiles.<ref name=":02" />
Line 34 ⟶ 35:
This version is sometimes also known as [[Semantic Web]].<ref>{{Citation |last=Du |first=Xiaofeng |title=Semantic Service Description Framework for Address |date=2009 |url=http://link.springer.com/10.1007/978-0-387-78578-3_35 |work=Information Systems Development |pages=1033–1045 |editor-last=Barry |editor-first=Chris |access-date=2023-11-30 |place=Boston, MA |publisher=Springer US |language=en |doi=10.1007/978-0-387-78578-3_35 |isbn=978-0-387-78577-6 |last2=Song |first2=William |last3=Munro |first3=Malcolm |editor2-last=Lang |editor2-first=Michael |editor3-last=Wojtkowski |editor3-first=Wita |editor4-last=Conboy |editor4-first=Kieran}}</ref>
=== Evolution of web development technologies ===
Line 48 ⟶ 43:
* [[JavaScript]] and Dynamic HTML (1990s - early 2000s)<ref>{{Cite web |title=JavaScript History |url=https://www.w3schools.com/js/js_history.asp#:~:text=JavaScript%20was%20invented%20by%20Brendan,JavaScript%20for%20the%20Firefox%20browser. |access-date=2023-12-10 |website=www.w3schools.com |language=en-US}}</ref><ref>{{Cite web |title=A brief history of PHP |url=https://ifj.edu.pl/private/krawczyk/php/intro-history.html#:~:text=PHP%20was%20conceived%20sometime%20in,the%20Personal%20Home%20Page%20Tools. |access-date=2023-12-10 |website=ifj.edu.pl}}</ref>
* [[Ajax (programming)|AJAX]] (1998)<ref>{{Cite web |date=2007-06-23 |title=Wayback Machine |url=https://web.archive.org/web/20070623125327/http://www.alexhopmann.com/xmlhttp.htm |access-date=2023-12-10 |website=web.archive.org}}</ref>
* Rise of [[Content management system
* [[Mobile web
* [[Single-page application
* [[List of server-side JavaScript implementations|Server-
* [[Microservices]] and [[API|API-
* [[Progressive web app
* [[Jamstack|JAMstack Architecture]] (2010s -
* [[WebAssembly]] (Wasm) (2010s -
* [[Serverless computing
* [[Artificial intelligence|AI]] and [[Machine learning|Machine Learning]] Integration (2010s -
Web development in future will be driven by advances in browser technology, Web internet infrastructure, protocol standards, software engineering methods, and application trends.<ref name=":1" />
== Web development life cycle ==
{{How-to|section|date=December 2023}}
The Web Development Life Cycle is a method that outlines the stages involved in building websites and web applications. It provides a structured approach, ensuring optimal results throughout the development process.▼
{{More citations needed section|date=December 2023}}
▲The
A typical Web Development process can be divided into 7 steps-
Line 69 ⟶ 66:
Debra Howcraft and John Carroll proposed a methodology in which web development process can be divided into sequential steps. They mentioned different aspects of analysis.<ref name=":2">{{Cite web |last=Howcroft |first=Debra |last2=Carroll |first2=John |date=2000 |title=A proposed methodology for web development. |url=https://aisel.aisnet.org/ecis2000/73/}}</ref>
Phase
The analysis phase can be divided into 3 steps-
* Development of a
* Defining
* Objective
During this phase, the previously outlined objectives and available resources undergo analysis to determine their feasibility. This analysis is divided into six tasks, as follows:
* '''Technology
* '''Information analysis:''' Identification of user-required information, whether static (web page) or dynamic (pulled "live" from a database server).
* '''
* '''User
* '''Cost
▲'''User Analysis:''' Identification of all intended users of the site, a more intricate process due to the varied range of users and technologies they may use.
▲'''Cost Analysis:''' Estimation of the development cost for the site or an evaluation of what is achievable within a predefined budget.
▲'''Risk Analysis:''' Examination of any major risks associated with site development.
Following this analysis, a more refined set of objectives is documented. Objectives that cannot be presently fulfilled are recorded in a Wish List, constituting part of the Objectives Document. This documentation becomes integral to the iterative process during the subsequent cycle of the methodology.<ref name=":2" />
=== Planning
It is crucial for [[web developer]]s to be engaged in formulating a plan and determining the optimal architecture and selecting the [[Software framework|frameworks]].{{cn|date=December 2023}} Additionally, developers/consultants play a role in elucidating the total cost of ownership associated with supporting a website, which may surpass the initial development expenses.
Line 103 ⟶ 95:
=== Design and layout ===
Following the analysis phase, the development process moves on to the [[Web design|design]] phase, which is guided by the objectives document. Recognizing the incremental growth of websites and the potential lack of good design architecture, the methodology includes iteration to account for changes and additions over the life of the site. The design phase, which is divided into [[Information design|Information Design]] and [[Graphic design|Graphic Design]], results in a detailed Design Document that details the structure of the website, [[Data structure|database data structures]], and [[Common Gateway Interface|CGI]] scripts.*
The following step, design testing, focuses on early, low-cost testing to identify inconsistencies or flaws in the design. This entails comparing the website's design to the goals and objectives outlined in the first three steps. Phases One and Two involve an iterative loop in which objectives in the Objectives Document are revisited to ensure alignment with the design. Any objectives that are removed are added to the Wish List for future consideration.<ref name=":2" />
Line 109 ⟶ 101:
Key aspects in this step are-
* [[Page layout
* Review
* Approval
=== Content creation ===
No matter how visually appealing
* Developing appealing calls to action
Line 142 ⟶ 134:
* Test Lost Links
* Use code validators
* Check [[Web browser|
=== Maintenance and updating ===
Line 210 ⟶ 202:
[[Database management]] is crucial for [[Data storage|storing]], [[Data retrieval|retrieving]], and managing data in web applications. Various database systems, such as [[MySQL]], [[PostgreSQL]], and [[MongoDB]], play distinct roles in organizing and structuring data. Effective database management ensures the responsiveness and efficiency of data-driven web applications. There are 3 types of databases:
* '''[[Relational database
* '''NoSQL
* '''Document
* '''Key-
* '''Column-
* '''Graph
* '''In-
* '''Time-
* '''NewSQL
* '''Object-
The choice of a database depends on various factors such as the nature of the data, scalability requirements, performance considerations, and the specific use case of the application being developed. Each type of database has its strengths and weaknesses, and selecting the right one involves considering the specific needs of the project.
Line 239 ⟶ 231:
Some popular sever-side languages are:
# '''PHP
# '''Python:''' [[Python (programming language)|Python]] is a versatile, high-level programming language used for a variety of purposes, including server-side web development. Frameworks like [[Django (web framework)|Django]] and [[Flask (web framework)|Flask]] make it easy to build web applications in Python.
# '''Ruby:''' [[Ruby (programming language)|Ruby]] is an object-oriented programming language, and it is commonly used for web development. [[Ruby on Rails]] is a popular web framework that simplifies the process of building web applications.
Line 249 ⟶ 241:
# '''Perl:''' [[Perl]] is a versatile scripting language often used for web development. It is known for its powerful [[Text processing|text-processing]] capabilities.
==== Security
Implementing security measures to protect against common vulnerabilities, including [[SQL injection]], [[cross-site scripting]] (XSS), and [[cross-site request forgery]] (CSRF). [[Authentication]] and [[authorization]] mechanisms are crucial for securing data and user access.
Line 267 ⟶ 259:
Efficient web development relies on a set of tools and environments that streamline the coding and collaboration processes:
# '''
# '''
# '''
▲'''2. [[Version control|Version Control Systems]]:''' [[Git]] is a widely used version control system that allows developers to track changes, collaborate seamlessly, and roll back to previous versions if needed.
▲'''3. [[Collaboration tool|Collaboration Tools]]:''' Communication platforms like [[Slack (software)|Slack]], [[project management]] tools such as [[Jira (software)|Jira]], and [[Collaborative software|collaboration platforms]] like [[GitHub]] facilitate effective teamwork and project management.
== Security practices in web wevelopment ==
[[Internet security|Security]] is paramount in web development to protect against [[Cyberattack|cyber threats]] and ensure the confidentiality and integrity of user data. Best practices include encryption, secure coding practices, regular [[Information security audit|security audits]], and staying informed about the latest [[Vulnerability (computing)|security vulnerabilities]] and patches.
* '''Common
* '''Secure
* '''Authentication and
==
=== Agile manifesto and principles ===
Line 292 ⟶ 282:
=== Agile concepts in web development ===
# '''Iterative and
# '''Scrum and
# '''Cross-
# '''Customer
# '''Adaptability to
# '''User
# '''Continuous
[[File:Webdevelopmenttimeline.png|thumb|right|300x300px]]
|