Redux is a state management library for JavaScript applications, often used with React. It helps manage the global state of an application in a centralized way, ensuring data remains consistent and predictable.
Store
Holds the entire application state.
There is only one store per application.
Actions
Represent events that trigger state changes.
Are simple JavaScript objects with a type
property and optional data (payload
).
Reducers
Functions that calculate the new state based on an action.
They are pure functions, meaning they have no side effects.
Dispatch
A method used to send actions to the store.
Selectors
Functions that extract specific values from the state.
Simplifies state management in large applications.
Prevents prop drilling in React components.
Makes state predictable by enforcing structured updates.
Enables debugging with tools like Redux DevTools.
If Redux feels too complex, here are some alternatives:
React Context API – suitable for smaller apps
Zustand – a lightweight state management library
Recoil – developed by Facebook, flexible for React
Salesforce Apex is an object-oriented programming language specifically designed for the Salesforce platform. It is similar to Java and is primarily used to implement custom business logic, automation, and integrations within Salesforce.
Cloud-based: Runs exclusively on Salesforce servers.
Java-like Syntax: If you know Java, you can learn Apex quickly.
Tightly Integrated with Salesforce Database (SOQL & SOSL): Enables direct data queries and manipulations.
Event-driven: Often executed through Salesforce triggers (e.g., record changes).
Governor Limits: Salesforce imposes limits (e.g., maximum SOQL queries per transaction) to maintain platform performance.
Triggers: Automate actions when records change.
Batch Processing: Handle large data sets in background jobs.
Web Services & API Integrations: Communicate with external systems.
Custom Controllers for Visualforce & Lightning: Control user interfaces.
Memcached is a distributed in-memory caching system commonly used to speed up web applications. It temporarily stores frequently requested data in RAM to avoid expensive database queries or API calls.
Key-Value Store: Data is stored as key-value pairs.
In-Memory: Runs entirely in RAM, making it extremely fast.
Distributed: Supports multiple servers (clusters) to distribute load.
Simple API: Provides basic operations like set
, get
, and delete
.
Eviction Policy: Uses LRU (Least Recently Used) to remove old data when memory is full.
Caching Database Queries: Reduces load on databases like MySQL or PostgreSQL.
Session Management: Stores user sessions in scalable web applications.
Temporary Data Storage: Useful for API rate limiting or short-lived data caching.
Memcached: Faster for simple key-value caching, scales well horizontally.
Redis: Offers more features like persistence, lists, hashes, sets, and pub/sub messaging.
sudo apt update && sudo apt install memcached
sudo systemctl start memcached
It can be used with PHP or Python via appropriate libraries.
TortoiseGit is a graphical user interface (GUI) for Git, specifically designed for Windows. It is an extension for Windows Explorer, allowing users to manage Git repositories directly via the context menu.
✅ Windows Explorer Integration → No separate tool needed; everything is accessible via the right-click menu
✅ User-Friendly → Ideal for those unfamiliar with the Git command line
✅ Visual Support → Changes, diffs, logs, and branches are displayed graphically
✅ Push, Pull, Commit & Merge → Perform standard Git operations via the interface
✅ Support for Multiple Repositories → Manage multiple projects simultaneously
TortoiseGit requires a Git installation (e.g., Git for Windows) to function.
➡ Download & More Info: https://tortoisegit.org/
The Fetch API is a modern JavaScript interface for retrieving resources over the network, such as making HTTP requests to an API or loading data from a server. It largely replaces the older XMLHttpRequest
method and provides a simpler, more flexible, and more powerful way to handle network requests.
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(response => response.json()) // Convert response to JSON
.then(data => console.log(data)) // Log the data
.catch(error => console.error('Error:', error)); // Handle errors
Making a POST Request
fetch('https://jsonplaceholder.typicode.com/posts', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({ title: 'New Post', body: 'Post content', userId: 1 })
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
✅ Simpler syntax compared to XMLHttpRequest
✅ Supports async/await
for better readability
✅ Flexible request and response handling
✅ Better error management using Promises
The Fetch API is now supported in all modern browsers and is an essential technique for web development.
A Single Page Application (SPA) is a web application that runs entirely within a single HTML page. Instead of reloading the entire page for each interaction, it dynamically updates the content using JavaScript, providing a smooth, app-like user experience.
✅ Faster interactions after the initial load
✅ Improved user experience (no full page reloads)
✅ Offline functionality possible via Service Workers
❌ Initial load time can be slow (large JavaScript bundle)
❌ SEO challenges (since content is often loaded dynamically)
❌ More complex implementation, especially for security and routing
Popular frameworks for SPAs include React, Angular, and Vue.js.
Backbone.js is a lightweight JavaScript framework that helps developers build structured and scalable web applications. It follows the Model-View-Presenter (MVP) design pattern and provides a minimalist architecture to separate data (models), user interface (views), and business logic.
✔ Simple and flexible
✔ Good integration with RESTful APIs
✔ Modular and lightweight
✔ Reduces spaghetti code by separating data and UI
Although Backbone.js was very popular in the past, newer frameworks like React, Vue.js, or Angular have taken over many of its use cases. However, it still remains relevant for existing projects and minimalist applications. 🚀
A Bearer Token is a type of access token used for authentication and authorization in web applications and APIs. The term "Bearer" means "holder," which implies that anyone in possession of the token can access protected resources—without additional verification.
Authorization: Bearer <token>
.GET /protected-data HTTP/1.1
Host: api.example.com
Authorization: Bearer abcdef123456
💡 Tip: To enhance security, use short-lived tokens and transmit them only over HTTPS.
OAuth (Open Authorization) is an open standard protocol for authorization that allows applications to access a user's resources without knowing their credentials (e.g., password). It is commonly used for Single Sign-On (SSO) and API access.
OAuth operates using tokens, which allow an application to access a user's data on their behalf. The typical flow is as follows:
The Model is the data and logic layer in the MVC architecture. It manages the application's data and ensures that it is correctly stored, retrieved, and processed.
✅ Data Management: Stores and handles data, often in a database.
✅ Business Logic: Contains rules and calculations (e.g., discount calculation for orders).
✅ Data Validation: Checks if input is correct (e.g., if an email address is valid).
✅ Database Communication: Performs CRUD operations (Create, Read, Update, Delete).
class BlogPost extends Model {
protected $fillable = ['title', 'content']; // Erlaubte Felder für Massenverarbeitung
// Beziehung: Ein Blogpost gehört zu einem Benutzer
public function user() {
return $this->belongsTo(User::class);
}
}
🔹 fillable
: Specifies which fields can be saved.
🔹 belongsTo(User::class)
: Indicates that each blog post belongs to a user.
✔ The Model handles all data and business logic of the application.
✔ It ensures a clear separation between data and presentation.
✔ Changes to the data structure only need to be made in the Model, not throughout the entire application.