-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathslides_glossary.html
More file actions
131 lines (116 loc) · 19.8 KB
/
slides_glossary.html
File metadata and controls
131 lines (116 loc) · 19.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Slides for
Glossary — Ruby on Rails Guides
</title>
<link rel="stylesheet" type="text/css" href="stylesheets/style.css" data-turbo-track="reload">
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print">
<link rel="stylesheet" type="text/css" href="stylesheets/highlight.css" data-turbo-track="reload">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="stylesheets/reset.css">
<link rel="stylesheet" href="stylesheets/reveal.css">
<link rel="stylesheet" href="stylesheets/myslide.css" id="theme">
<link rel="stylesheet" href="stylesheets/code.css">
<script src="javascripts/clipboard.js" data-turbo-track="reload"></script>
<script src="javascripts/slides.js" data-turbo-track="reload"></script>
</head>
<body>
<div class="reveal">
<!-- Any section element inside of this container is displayed as a slide -->
<div class="slides">
<section>
<h1>Glossary</h1><p>This glossary defines key technical terms used throughout this textbook. Terms are listed alphabetically with links to the relevant chapters where they are explained in detail.</p>
<p><small>Slides - use arrow keys to navigate, esc to return to page view, f for fullscreen</small></p>
</section>
<h1>Glossary</h1><section><a class='slide_break' href='glossary.html#slide-0'>▻</a>
<h2 id="a"><a class="anchorlink" href="#a"><span>1</span> A</a></h2><p><strong>ActiveRecord</strong>: A Rails implementation of the Active Record pattern that provides an object-relational mapping (ORM) layer. It allows you to interact with database tables as if they were Ruby objects. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>API (Application Programming Interface)</strong>: A set of rules and protocols that allows different software applications to communicate with each other. APIs define how to request data from a service and what data format to expect in response. See <a href="rest-api.html">REST APIs</a> and <a href="graphql-api.html">GraphQL APIs</a>.</p><p><strong>Authentication</strong>: The process of verifying who a user is. This typically involves checking credentials like username and password. See <a href="rails_authentication.html">Rails Authentication</a> and <a href="security.html">Security</a>.</p><p><strong>Authorization</strong>: The process of determining what actions a user is allowed to perform after they have been authenticated. See <a href="security.html">Security</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-1'>▻</a>
<h2 id="b"><a class="anchorlink" href="#b"><span>2</span> B</a></h2><p><strong>Backend</strong>: The server-side part of a web application that handles data processing, business logic, and database operations. The backend is not visible to users but powers the frontend.</p><p><strong>Backend Development</strong>: The practice of creating server-side applications that handle data, business logic, and provide services to frontend applications.</p><p><strong>BCrypt</strong>: A password hashing function used for securely storing passwords. Rails uses BCrypt through the <code>has_secure_password</code> method. See <a href="rails_authentication.html">Rails Authentication</a>.</p><p><strong>Browser Cache</strong>: A storage mechanism in web browsers that stores copies of web resources to improve loading speed. See <a href="caching.html">Caching</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-2'>▻</a>
<h2 id="c"><a class="anchorlink" href="#c"><span>3</span> C</a></h2><p><strong>Cache</strong>: A temporary storage area that holds frequently accessed data to improve performance. Caching reduces the need to fetch data from slower sources like databases. See <a href="caching.html">Caching</a>.</p><p><strong>Cache Eviction</strong>: The process of removing items from a cache when storage is full or items expire. See <a href="caching.html">Caching</a>.</p><p><strong>Cache Store</strong>: The storage mechanism used for caching data in Rails applications (e.g., memory, file, Redis, Memcached). See <a href="caching.html">Caching</a>.</p><p><strong>Client</strong>: A computer or application that requests services from a server. In web development, the client is typically a web browser.</p><p><strong>Cookie</strong>: A small piece of data sent from a web server to a browser that is stored and sent back with subsequent requests. Used for maintaining state and sessions. See <a href="rails_authentication.html">Rails Authentication</a>.</p><p><strong>CRUD</strong>: An acronym for Create, Read, Update, Delete - the four basic operations that can be performed on data in a database. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>CSRF (Cross-Site Request Forgery)</strong>: A security vulnerability where malicious websites can perform actions on behalf of authenticated users. See <a href="security.html">Security</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-3'>▻</a>
<h2 id="d"><a class="anchorlink" href="#d"><span>4</span> D</a></h2><p><strong>Database</strong>: An organized collection of data stored electronically. Databases allow for efficient storage, retrieval, and management of information.</p><p><strong>Deployment</strong>: The process of making a software application available for use, typically by uploading it to a server or cloud platform. See <a href="deploying_rails.html">Deploying Rails</a> and <a href="deploy-to-paas.html">Deploy to PaaS</a>.</p><p><strong>Devise</strong>: A popular Rails gem for handling authentication with features like user registration, password reset, and email confirmation. See <a href="rails_authentication.html">Rails Authentication</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-4'>▻</a>
<h2 id="e"><a class="anchorlink" href="#e"><span>5</span> E</a></h2><p><strong>Event Loop</strong>: A programming construct that waits for and dispatches events or messages in a program. Node.js uses an event loop for handling asynchronous operations. See <a href="node_basics.html">Node.js Basics</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-5'>▻</a>
<h2 id="f"><a class="anchorlink" href="#f"><span>6</span> F</a></h2><p><strong>Fragment Caching</strong>: A Rails feature that allows caching specific parts of a view or partial. See <a href="caching.html">Caching</a>.</p><p><strong>Framework</strong>: A pre-built structure that provides common functionality for developing applications. Frameworks help developers avoid writing code from scratch for common tasks.</p><p><strong>Frontend</strong>: The client-side part of a web application that users interact with directly. This includes the user interface and user experience components.</p></section>
<section><a class='slide_break' href='glossary.html#slide-6'>▻</a>
<h2 id="g"><a class="anchorlink" href="#g"><span>7</span> G</a></h2><p><strong>GraphQL</strong>: A query language and runtime for APIs that allows clients to request exactly the data they need. See <a href="graphql-api.html">GraphQL APIs</a>.</p><p><strong>GraphQL Playground</strong>: A web-based IDE for exploring GraphQL APIs with features like introspection and autocompletion. See <a href="graphql-api.html">GraphQL APIs</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-7'>▻</a>
<h2 id="h"><a class="anchorlink" href="#h"><span>8</span> H</a></h2><p><strong>HATEOAS (Hypermedia as the Engine of Application State)</strong>: A REST constraint that requires APIs to provide hypermedia links to guide clients through the application state. See <a href="rest-api.html">REST APIs</a>.</p><p><strong>HTTP (Hypertext Transfer Protocol)</strong>: The protocol used for transmitting data over the web. HTTP defines how messages are formatted and transmitted between web browsers and servers.</p><p><strong>HTTPS</strong>: A secure version of HTTP that encrypts data transmitted between the client and server.</p><p><strong>HTTP Methods</strong>: Standard operations in HTTP including GET, POST, PUT, DELETE, PATCH, etc. See <a href="rest-api.html">REST APIs</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-8'>▻</a>
<h2 id="i"><a class="anchorlink" href="#i"><span>9</span> I</a></h2><p><strong>Injection Attack</strong>: A security vulnerability where malicious code is inserted into a program through user input. Common types include SQL injection and XSS. See <a href="security.html">Security</a>.</p><p><strong>Integration Test</strong>: A test that exercises multiple components of an application working together. See <a href="testing.html">Testing</a>.</p><p><strong>Introspection</strong>: A GraphQL feature that allows clients to query the API about its schema and available operations. See <a href="graphql-api.html">GraphQL APIs</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-9'>▻</a>
<h2 id="j"><a class="anchorlink" href="#j"><span>10</span> J</a></h2><p><strong>JWT (JSON Web Token)</strong>: A compact, URL-safe means of representing claims to be transferred between two parties. Used for authentication and authorization. See <a href="adv_authentication.html">Advanced Authentication</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-10'>▻</a>
<h2 id="l"><a class="anchorlink" href="#l"><span>11</span> L</a></h2><p><strong>libuv</strong>: A cross-platform asynchronous I/O library used by Node.js for handling file system operations, networking, and other asynchronous tasks. See <a href="node_basics.html">Node.js Basics</a>.</p><p><strong>Load Balancer</strong>: A device that distributes network traffic across multiple servers to improve performance and reliability. See <a href="caching.html">Caching</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-11'>▻</a>
<h2 id="m"><a class="anchorlink" href="#m"><span>12</span> M</a></h2><p><strong>Middleware</strong>: Software that acts as a bridge between different applications or components. Middleware processes requests and responses between the client and server.</p><p><strong>Model</strong>: In Rails, a class that represents a database table and contains the business logic for data manipulation. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>MVC (Model-View-Controller)</strong>: A software architecture pattern that separates an application into three main components: Model (data and business logic), View (user interface), and Controller (handles user input and coordinates between Model and View).</p><p><strong>Mutation</strong>: In GraphQL, an operation that modifies data on the server. See <a href="graphql-api.html">GraphQL APIs</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-12'>▻</a>
<h2 id="n"><a class="anchorlink" href="#n"><span>13</span> N</a></h2><p><strong>Node.js</strong>: A JavaScript runtime built on Chrome's V8 engine that allows running JavaScript on the server side. See <a href="node_basics.html">Node.js Basics</a>.</p><p><strong>npm (Node Package Manager)</strong>: The default package manager for Node.js that allows installing and managing JavaScript libraries. See <a href="node_basics.html">Node.js Basics</a>.</p><p><strong>NVM (Node Version Manager)</strong>: A tool for managing multiple Node.js versions on a single system. See <a href="node_basics.html">Node.js Basics</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-13'>▻</a>
<h2 id="o"><a class="anchorlink" href="#o"><span>14</span> O</a></h2><p><strong>ORM (Object-Relational Mapping)</strong>: A programming technique for converting data between incompatible type systems in object-oriented programming languages. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>OWASP</strong>: The Open Web Application Security Project, a nonprofit foundation that works to improve software security. See <a href="security.html">Security</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-14'>▻</a>
<h2 id="p"><a class="anchorlink" href="#p"><span>15</span> P</a></h2><p><strong>Package.json</strong>: A file that contains metadata about a Node.js project, including dependencies and scripts. See <a href="node_basics.html">Node.js Basics</a>.</p><p><strong>Password Digest</strong>: An encrypted version of a password stored in the database instead of the plain text password. See <a href="rails_authentication.html">Rails Authentication</a>.</p><p><strong>Prepared Statement</strong>: A database feature that pre-compiles SQL statements to prevent SQL injection attacks. See <a href="security.html">Security</a>.</p><p><strong>Production</strong>: The live environment where a software application is used by real users. Production environments are optimized for performance and reliability.</p><p><strong>Protocol</strong>: A set of rules that define how data is transmitted and received between devices or applications.</p></section>
<section><a class='slide_break' href='glossary.html#slide-15'>▻</a>
<h2 id="q"><a class="anchorlink" href="#q"><span>16</span> Q</a></h2><p><strong>Query</strong>: In GraphQL, an operation that retrieves data from the server. See <a href="graphql-api.html">GraphQL APIs</a>.</p><p><strong>Query Cache</strong>: A Rails feature that caches database queries to improve performance. See <a href="caching.html">Caching</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-16'>▻</a>
<h2 id="r"><a class="anchorlink" href="#r"><span>17</span> R</a></h2><p><strong>Rails Console</strong>: An interactive Ruby shell with the Rails application loaded, used for testing and debugging. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>REST (Representational State Transfer)</strong>: An architectural style for designing networked applications. REST APIs use standard HTTP methods (GET, POST, PUT, DELETE) to perform operations on resources. See <a href="rest-api.html">REST APIs</a>.</p><p><strong>Route</strong>: A URL pattern that maps to a specific function or controller action in a web application.</p><p><strong>Ruby on Rails</strong>: A web application framework written in Ruby that follows the MVC pattern and emphasizes convention over configuration.</p></section>
<section><a class='slide_break' href='glossary.html#slide-17'>▻</a>
<h2 id="s"><a class="anchorlink" href="#s"><span>18</span> S</a></h2><p><strong>Schema</strong>: In GraphQL, a description of the data types and operations available in the API. See <a href="graphql-api.html">GraphQL APIs</a>.</p><p><strong>Server</strong>: A computer or software that provides services to other computers (clients) over a network. Web servers handle HTTP requests and serve web pages.</p><p><strong>Session</strong>: A way to store user-specific data on the server between requests. Sessions help maintain user state across multiple page visits. See <a href="rails_authentication.html">Rails Authentication</a>.</p><p><strong>SOAP</strong>: A protocol for exchanging structured information in web services using XML. See <a href="rest-api.html">REST APIs</a>.</p><p><strong>SQL Injection</strong>: A security vulnerability where malicious SQL code is inserted into database queries through user input. See <a href="security.html">Security</a>.</p><p><strong>SSL/TLS</strong>: Security protocols that provide encryption and authentication for data transmitted over networks. HTTPS uses SSL/TLS to secure web communications.</p><p><strong>System Test</strong>: A test that exercises the entire application stack, including the browser, to simulate real user interactions. See <a href="testing.html">Testing</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-18'>▻</a>
<h2 id="t"><a class="anchorlink" href="#t"><span>19</span> T</a></h2><p><strong>Test-Driven Development (TDD)</strong>: A software development methodology where tests are written before the actual code. See <a href="testing.html">Testing</a>.</p><p><strong>Token</strong>: A piece of data that represents a user's authentication status. Tokens are often used in stateless authentication systems like JWT (JSON Web Tokens).</p><p><strong>Type</strong>: In GraphQL, a definition of the structure and properties of data objects. See <a href="graphql-api.html">GraphQL APIs</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-19'>▻</a>
<h2 id="u"><a class="anchorlink" href="#u"><span>20</span> U</a></h2><p><strong>Unit Test</strong>: A test that focuses on testing individual components or functions in isolation. See <a href="testing.html">Testing</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-20'>▻</a>
<h2 id="v"><a class="anchorlink" href="#v"><span>21</span> V</a></h2><p><strong>V8</strong>: Google's JavaScript engine that powers Node.js and Chrome browser. See <a href="node_basics.html">Node.js Basics</a>.</p><p><strong>Validation</strong>: The process of checking that data meets certain criteria before processing it. Validation helps ensure data quality and security. See <a href="rails_database_and_model.html">Rails: Models and ActiveRecord</a>.</p><p><strong>Version Control</strong>: A system that tracks changes to source code over time, allowing developers to collaborate and maintain a history of modifications.</p><p><strong>View</strong>: In Rails MVC, the component responsible for rendering the user interface and displaying data to users. See <a href="rails_view_and_controller.html">Rails: View and Controller</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-21'>▻</a>
<h2 id="w"><a class="anchorlink" href="#w"><span>22</span> W</a></h2><p><strong>WebSocket</strong>: A communication protocol that provides full-duplex communication channels over a single HTTP connection. See <a href="rails_websockets.html">Rails WebSockets</a> and <a href="node_websockets.html">Node WebSockets</a>.</p></section>
<section><a class='slide_break' href='glossary.html#slide-22'>▻</a>
<h2 id="x"><a class="anchorlink" href="#x"><span>23</span> X</a></h2><p><strong>XSS (Cross-Site Scripting)</strong>: A security vulnerability where malicious scripts are injected into web pages viewed by other users. See <a href="security.html">Security</a>.</p></div></section>
</div>
</div>
<!-- End slides. -->
<!-- Required JS files. -->
<script src="javascripts/reveal.js"></script>
<script src="javascripts/search.js"></script>
<script src="javascripts/markdown.js"></script>
<script>
// Also available as an ES module, see:
// https://revealjs.com/initialization/
Reveal.initialize({
controls: false,
progress: true,
center: false,
hash: true,
// The "normal" size of the presentation, aspect ratio will
// be preserved when the presentation is scaled to fit different
// resolutions. Can be specified using percentage units.
width: 1000,
height: 600,
disableLayout: false,
// Factor of the display size that should remain empty around
// the content
margin: 0.05,
// Bounds for smallest/largest possible scale to apply to content
minScale: 0.2,
maxScale: 10.0,
keyboard: {
27: () => {
// do something custom when ESC is pressed
var new_url = window.location.pathname.replace('slides_', '') + window.location.hash.replace('/','slide-');
window.location = new_url;
},
191: 'toggleHelp',
13: 'next', // go to the next slide when the ENTER key is pressed
},
// Learn about plugins: https://revealjs.com/plugins/
plugins: [ RevealSearch, RevealMarkdown ]
});
</script>
</body>
</html>