Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Web development
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Back-end development === [[Server-side|Back-end development]] involves building the server-side logic and [[database]] components of a [[web application]]. It is responsible for processing user requests, managing data, and ensuring the overall functionality of the application. Key aspects of back-end development include: ==== Server/ cloud instance ==== An essential component of the architecture of a web application is a [[Server (computing)|server]] or [[Cloud computing|cloud instance]]. A [[Cloud computing|cloud instance]] is a virtual server instance that can be accessed via the [[Internet]] and is created, delivered, and hosted on a public or private cloud. It functions as a physical server that may seamlessly move between various devices with ease or set up several instances on one server. It is therefore very dynamic, scalable, and economical. ==== Databases ==== [[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]]s:''' Structured databases that use tables to organize and relate data. Common Examples include - [[MySQL]], [[PostgreSQL]] and many more. * '''NoSQL databases:''' [[NoSQL|NoSQL databases]] are designed to handle [[Unstructured data|unstructured]] or [[Semi-structured data|semi-structured]] data and can be more flexible than [[relational database]]s. They come in various types, such as [[Document-oriented database|document-oriented]], [[Key–value database|key-value stores]], column-family stores, and [[graph database]]s. Examples: [[MongoDB]], [[Apache Cassandra|Cassandra]], [[ScyllaDB]], [[Apache CouchDB|CouchDB]], [[Redis]]. * '''Document stores:''' [[Document-oriented database|Document stores]] store data in a [[Semi-structured data|semi-structured]] format, typically using [[JSON]] or [[XML]] documents. Each document can have a different structure, providing flexibility. Examples''':''' [[MongoDB]], [[CouchDB]]. * '''Key-value stores:''' [[Key–value database|Key-value stores]] store data as pairs of keys and values. They are simple and efficient for certain types of operations, like [[Cache (computing)|caching]]. Examples: [[Redis]], [[Amazon DynamoDB|DynamoDB]]. * '''Column-family stores:''' [[Column-oriented DBMS|Column-family stores]] organize data into columns instead of rows, making them suitable for large-scale [[distributed systems]] and analytical workloads. Examples''':''' [[Apache Cassandra]], [[Apache HBase|HBase]]. * '''Graph databases:''' [[Graph database]]s are designed to represent and query data in the form of graphs. They are effective for handling relationships and network-type data. Examples: [[Neo4j]], [[Amazon Neptune]]. * '''In-memory databases:''' [[In-memory database]]s store data in the system's main memory ([[Random-access memory|RAM]]) rather than on disk. This allows for faster data access and retrieval. Examples: [[Redis]], [[Memcached]]. * '''Time-series databases:''' [[Time series database|Time-series databases]] are optimized for handling time-stamped data, making them suitable for applications that involve tracking changes over time. Examples: [[InfluxDB]], OpenTSDB. * '''NewSQL databases:''' [[NewSQL]] databases aim to provide the scalability of NoSQL databases while maintaining the [[ACID]] properties (Atomicity, Consistency, Isolation, Durability) of traditional relational databases. Examples: [[Spanner (database)|Google Spanner]], [[CockroachDB]]. * '''Object-oriented databases:''' [[Object-oriented databases]] store data in the form of objects, which can include both [[data]] and methods. They are designed to work seamlessly with object-oriented programming languages. Examples: [[db4o]], [[ObjectDB]]. 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. ==== Application programming interface (APIs) ==== [[API|Application Programming Interfaces]] are sets of rules and protocols that allow different software applications to communicate with each other. APIs define the methods and data formats that applications can use to request and exchange information. * [[REST]]ful APIs and [[GraphQL]] are common approaches for defining and interacting with web services. ===== Types of APIs ===== * '''[[Web API]]s:''' These are APIs that are accessible over the internet using standard web protocols such as HTTP. RESTful APIs are a common type of web API. * '''Library APIs:''' These APIs provide pre-built functions and procedures that developers can use within their code. * '''Operating System APIs:''' These APIs allow applications to interact with the underlying [[operating system]], accessing features like file systems, hardware, and system services. ==== Server-side languages ==== [[Programming language]]s aimed at server execution, as opposed to client browser execution, are known as [[Server-side scripting|server-side languages]]. These programming languages are used in web development to perform operations including [[data processing]], database interaction, and the creation of [[Dynamic web page|dynamic content]] that is delivered to the client's browser. A key element of server-side programming is [[server-side scripting]], which allows the server to react to client requests in real time. Some popular server-side languages are: # '''PHP:''' [[PHP]] is a widely used, [[Open-source software|open-source]] server-side scripting language. It is embedded in HTML code and is particularly well-suited for web development. # '''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. # '''Java:''' [[Java (programming language)|Java]] is a general-purpose, object-oriented programming language. Java-based frameworks like [[Spring Framework|Spring]] are commonly used for building enterprise-level web applications. # '''Node.js (JavaScript):''' While JavaScript is traditionally a client-side language, [[Node.js]] enables developers to run JavaScript on the server side. It is known for its event-driven, non-blocking [[I/O model]], making it suitable for building scalable and high-performance applications. # '''C# (C Sharp):''' [[C Sharp (programming language)|C#]] is a programming language developed by Microsoft and is commonly used in conjunction with the [[.NET Framework|.NET]] framework for building web applications on the Microsoft stack. # '''ASP.NET:''' [[ASP.NET]] is a web framework developed by Microsoft, and it supports languages like C# and [[Visual Basic (.NET)|VB.NET]]. It simplifies the process of building dynamic web applications. # '''Go (Golang):''' [[Go (programming language)|Go]] is a statically typed language developed by Google. It is known for its simplicity and efficiency and is increasingly being used for building scalable and high-performance web applications. # '''Perl:''' [[Perl]] is a versatile scripting language often used for web development. It is known for its powerful [[Text processing|text-processing]] capabilities. # '''Swift:''' Developed by Apple, [[Swift (programming language)|Swift]] is used for server-side development in addition to iOS and macOS app development. # '''Lua:''' [[Lua (programming language)|Lua]] is used for some embedded web servers, e.g. the configuration pages on a [[router (computing)|router]], including [[OpenWRT]]. ==== Security measures ==== 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. ==== Testing, debugging and deployment ==== Thorough [[Web testing|testing]] and [[debugging]] processes are essential for identifying and resolving issues in a web application. Testing may include [[unit testing]], [[integration testing]], and [[Acceptance testing|user acceptance testing]]. Debugging involves pinpointing and fixing errors in the code, ensuring the reliability and stability of the application. * '''[[Unit testing|Unit Testing]]:''' Testing individual components or functions to verify that they work as expected. * '''[[Integration testing|Integration Testing]]:''' Testing the interactions between different components or modules to ensure they function correctly together. * '''Continuous Integration and Deployment (CI/CD):''' [[CI/CD]] pipelines automate testing, [[Deployment environment|deployment]], and delivery processes, allowing for faster and more reliable releases.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)