Contributors
Subscribers
Protocol - set of rules or procedures for transmitting data between two or more entities of a communications system.
A web browser (commonly referred to as a browser) is a software application for retrieving, presenting, and traversing information resources on the World Wide Web. Although browsers are primarily intended to use the World Wide Web, they can also be used to access information provided by web servers in private networks or files in file systems. (Render, parsing, optimization etc.)
Web hosting is the service that enables an individual or organization to publish a website on the Internet. Types of Web Hosting, Essential Web Hosting Features (Domain name registration, Speed, Storage, Bandwidth, Scalability, Uptime, Email Accounts, Support)
Website security is the act/practice of protecting websites from unauthorized access, use, modification, destruction, or disruption (important principles of modern web security, security best practices)
Software Development Life Cycle (SDLC) is a process used by the software industry to design, develop and test high quality softwares. The SDLC aims to produce a high-quality software that meets or exceeds customer expectations, reaches completion within times and cost estimates.
GraphQL is an open-source data query and manipulation language for APIs, and a runtime for fulfilling queries with existing data.
REST and SOAP are 2 different approaches to online data transmission. Specifically, both define how to build application programming interfaces (APIs), which allow data to be communicated between web applications.
functional programming is a programming paradigm where programs are constructed by applying and composing functions. It is a declarative programming paradigm in which function definitions are trees of expressions that map values to other values, rather than a sequence of imperative statements which update the running state of the program.
Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which can contain data and code: data in the form of fields (often known as attributes or properties), and code, in the form of procedures (often known as methods).
Architectural patterns that separates an applications into three main logical components Model, View, and Controller
Object Oriented Design. Software design pattern is a general, reusable solution to a commonly occurring problem within a given context in software design. It is not a finished design that can be transformed directly into source or machine code. Rather, it is a description or template for how to solve a problem that can be used in many different situations. Design patterns are formalized best practices that the programmer can use to solve common problems when designing an application or system.
Test-driven development (TDD) is a software development process relying on software requirements being converted to test cases before software is fully developed, and tracking all software development by repeatedly testing the software against all test cases. This is opposed to software being developed first and test cases created later.
RAIL stands for response, animation, idle and load. RAIL is a user-centric performance model that breaks down the user’s web experience into four key actions.
Measuring performance provides an important metric to help you asses the success of your app, site, or web service. For example, you can use performance metrics to determine how your app performs in comparison to a competitor or you can compare your app's performance across releases. The metrics you choose to measure should be relevant to your users, site, and business goals. They should be collected and measured in a consistent manner and analyzed in a format that can be consumed and understood by non-technical stakeholders.
Lighthouse is an open-source, automated tool for improving the quality of web pages. You can run it against any web page, public or requiring authentication. It has audits for performance, accessibility, progressive web apps, SEO and more.
Google Chrome’s DevTools (or similar solutions). Hot to find Performance Bottlenecks, analyze runtime performance.
ECMA means European Computer Manufacturer's Association. ECMAScript is a programming language standard that web browsers follow while interpreting Javascript.
Using asynchronous JavaScript (such as callbacks, promises, and async/await), you can perform long network requests without blocking the main thread.
The meaning of every primitive type is obvious except of undefined and null which are almost the same. In JavaScript, objects can be seen as a collection of properties.
Functions in JavaScript run in a specific context, and using the "this" variable we have access to it. All standard functions in the browser run under the Window context. Functions defined under an object or a class (another function) will use the context of the object it was created in. However, we can also change the context of a function at runtime, either before or while executing the function.
A scope in JavaScript defines what variables you have access to. There are two kinds of scope – global scope and local scope. Whenever you create a function within another function, you have created a closure. The inner function is the closure. This closure is usually returned so you can use the outer function’s variables at a later time.
A module is a piece of program that specifies which other pieces it relies on and which functionality it provides for other modules to use (its interface).
In general JavaScript is running code in a non-blocking way. This means that code which is is taking some time to finish (like accessing an API, reading content from the local file system etc.) is being executed in the background and in parallel the code execution is continued. This behaviour is being described by term asynchronous programming. An Event loop is browser’s mechanism to perform non-blocking operations by providing WebAPIs (setTimeout, setInterval, etc.) which are capable of maintaining callback references in memory.
You can achieve results from performing asynchronous operations using the callback approach or by using promises. But there are some minor differences between the two.
A regular expression is a sequence of characters that forms a search pattern. When you search for data in a text, you can use this search pattern to describe what you are searching for. A regular expression can be a single character, or a more complicated pattern. Regular expressions can be used to perform all types of text search and text replace operations.
DOM - Document Object Model. Event delegation is a better technique to handle events in our web app. This is possible because JavaScript has an event bubbled up (propagated) in the hierarchy in the DOM tree.
Application Programming Interfaces (APIs) are constructs made available in programming languages to allow developers to create complex functionality more easily. They abstract more complex code away from you, providing some easier syntax to use in its place.
localStorage is a way to store data on the client’s computer. It allows the saving of key/value pairs in a web browser and it stores data with no expiration date. stores data only for a session, meaning that the data is stored until the browser (or tab) is closed. Stores data that has to be sent back to the server with subsequent XHR requests. Its expiration varies based on the type and the expiration duration can be set from either server-side or client-side.
JSON Web Token (JWT) is an easy way to secure an API. When a user authenticates first on a server, using for instance a standard login form, the server creates a token. This token includes some personal data, such as username or email address. Then, this token is signed server-side (to prevent token integrity), and sent back to the user. Within each next request, user sends the token to establish emitter identity.
JavaScript modules are a way to structure JavaScript code. Code in a module is isolated from code in other modules and is not in the global scope. JavaScript has had modules for a long time. However, they were implemented via libraries, not built into the language. ES6 is the first time that JavaScript has built-in modules.
When a function is created in JavaScript, the JavaScript engine adds a prototype property to the function. This prototype property is an object (called a prototype object) that has a constructor property by default. The constructor property points back to the function on which prototype object is a property. We can access the function’s prototype property using functionName.prototype.
Web Components are a collection of building blocks. Templates are where we define reusable code. Custom Elements allow us to define our own element. ShadowDOM provides a DOM encapsulation within DOM.
Lazy Loading is an approach through which you can prioritize content, delaying loads for less relevant or visible content. Consequently, your apps or websites load faster, delivering an enhanced user experience.
A design pattern is a term used in software engineering for a general, reusable solution to a commonly occurring problem in software design.
Tags, content, attributes, elements etc.
Semantic HTML means writing HTML that is descriptive and meaningful in regards to content and context.
An HTML form is used to collect user input. Form validation is an feedback on the user's input and actions.
As for developers, it is important to make the code visually appealing and understandable to other developers and users. There are some basic norms that are good to follow to attain this consistency in website development.
Provide the user a good way to navigate and interact with your site.
The purpose of any website is to drive traffic. And a vast portion of those visitors is coming from search engines.
CSS Syntax, Selectors, CSS Typography, Division and Span, etc.
Responsive web design provides an optimal experience, easy reading and easy navigation with a minimum of resizing on different devices such as desktops, mobiles and tabs
Float is a CSS positioning property.
The position property can help you manipulate the location of an element.
The display property specifies the display behavior (the type of rendering box) of an element.
The box model is the ruleset a browser uses to determine an element’s size and how it interacts with other elements.
CSS Grid is a powerful tool that allows for two-dimensional layouts to be created on the web. The CSS Grid Layout Module offers a grid-based layout system, with rows and columns, making it easier to design web pages without having to use floats and positioning.
The Flexible Box Layout Module, makes it easier to design flexible responsive layout structure without using float or positioning.
A CSS framework is a library allowing for easier, more standards-compliant web design using the Cascading Style Sheets language. For example there are few of them, the most popular: Reactstrap, Material UI, Tailwind CSS, Chakra UI, Bootstrap, Materialize CSS, Bulma
CSS methodologies to structure and organize CSS
Styled Components are one of the new ways to use CSS in modern JavaScript.
They generate locally scoped class names that are easy to reason about, without introducing complex conventions.
Emotion is a performant and flexible CSS-in-JS library. Building on many other CSS-in-JS libraries, it allows you to style apps quickly with string or object styles. It has predictable composition to avoid specificity issues with CSS. With source maps and labels, Emotion has a great developer experience and great performance with heavy caching in production.
CSS preprocessors are scripting languages that extend the default capabilities of CSS. (Sass - CSS extension language. PostCSS is a software development tool that uses JavaScript-based plugins to automate routine CSS operations)
Smoke Testing is a software testing process that determines whether the deployed software build is stable or not. End-to-end testing is a technique that tests the entire software product from beginning to end to ensure the application flow behaves as expected. The most popular examples: Smoke, Unit test, Black Box, Code Coverage, Selenium, Pupeteer.
The JavaScript testing framework is a dynamic framework based on JS. For example there are few of them, the most popular: Jest, react-testing-library, Cypress, Enzyme, Mocha, Chai, Ava, Jasmine.
TypeScript is a programming language developed and maintained by Microsoft. It is a strict syntactical superset of JavaScript and adds optional static typing to the language.
Build tools can save you valuable time. They can do a lot of useful stuff: download libraries, run tests, bundle packages, automatize tasks, and so much more.
Task runners allows to automate many tasks (repetitive tasks: making a change, compressing the js and css file, minimize code to gain performance.). Gulp is a cross-platform, streaming task runner that lets developers automate many development tasks. NPM is the default ‘Node Package Manager’ for the JavaScript runtime environment Node.js.
Module bundlers are tools that process your modern JavaScript applications, internally build dependency graphs which map every modules your projects need and generate one or module bundles.
Code formatters and code linters used to have the same code format everywhere (like "tabs" and "spaces") and use the best code practices for good quality (like "let"/"const" rather than "var")
Package managers are tools that automatically handle the dependencies of a project.
There are several cloud providers that offer the necessary services to build and deploy an application. Amazon Web Services, Google Cloud Platform, Microsoft Azure, Heroku etc.
Continuous Integration (CI) is the practice of merging all developers' working copies to a shared mainline. Continuous Delivery (CD) is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually.
Version control, also known as source control, is the practice of tracking and managing changes to software code. Version control systems are software tools that help software teams manage changes to source code over time. Git (Git branching models), GitHub, GitLab, Bitbucket, Mercurial, SVN.
Micro-frontends is an architectural style for building web-based applications. Micro-frontends are taking the concept of micro-services to the frontend.
Serverless architecture (also known as serverless computing or function as a service, FaaS) is a software design pattern where applications are hosted by a third-party service, eliminating the need for server software and hardware management by the developer. Applications are broken up into individual functions that can be invoked and scaled individually.
A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of the browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.
A multi-page application (or an MPA) is a web application that consists of multiple web pages that are downloaded when a user visits different parts of the page.
A relational database is a type of database. It uses a structure that allows us to identify and access data in relation to another piece of data in the database. Often, data in a relational database is organized into tables.
Set of properties that a database transaction in a relational database is supposed to have (Atomicity, Consistency, Isolation, Durability)
Database normalization is the process of structuring a database, usually a relational database, in accordance with a series of so-called normal forms in order to reduce data redundancy and improve data integrity.
A NoSQL (originally referring to "non-SQL" or "non-relational")[1] database provides a mechanism for storage and retrieval of data that is modeled in means other than the tabular relations used in relational databases.
CAP theorem is also called brewer's theorem. It states that is impossible for a distributed data store to offer more than two out of three guarantees (Consistency, Availability, Partition Tolerance)
Object–relational mapping (ORM, O/RM, and O/R mapping tool) in computer science is a programming technique for converting data between incompatible type systems using object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language. Data migration is the process of selecting, preparing, extracting, and transforming data and permanently transferring it from one computer storage system to another.
The web app manifest is a JSON file that tells the browser about your Progressive Web App and how it should behave when installed on the user's desktop or mobile device. A typical manifest file includes the app name, the icons the app should use, and the URL that should be opened when the app is launched.
A service worker is a type of web worker. It's essentially a JavaScript file that runs separately from the main browser thread, intercepting network requests, caching or retrieving resources from the cache, and delivering push messages.
PWAs provide numerous advantages to companies, such as: increase of mobile traffic, improvement of load and installation speed, reduced use of device storage, average conversion increase, average session increase, engagement increase, lower bounce rate when compared to that of mobile websites, increase in page views
Internet connections can be flakey or non-existent on the go, which is why offline support and reliable performance are common features in progressive web apps. Even in perfect wireless environments, judicious use of caching and other storage techniques can substantially improve the user experience. There are several ways to cache static application resources (HTML, JavaScript, CSS, images, etc.), and data (user data, news articles, etc.).
A WebSocket is a persistent connection between a client and server. WebSockets provide a bidirectional, full-duplex communications channel that operates over HTTP through a single TCP/IP socket connection. At its core, the WebSocket protocol facilitates message passing between a client and server.LocationsBrowsers offer a common JavaScript geolocation service you can use to enrich your HTML driven experiences. A common use of geolocation is to show where stores are located and possible driving directions.
Identifying the real geographic location of an Internet-connected device is possible by linking to the location of the IP address, MAC address, or via Wi-Fi positioning methods.
Web-enabled devices are capable of determining their orientation; that is, they can report data indicating changes to their orientation with relation to the pull of gravity. In particular, hand-held devices such as mobile phones can use this information to automatically rotate the display to remain upright, presenting a wide-screen view of the web content when the device is rotated so that its width is greater than its height.
The Payment Request API allows merchants to easily collect payment information with minimal integration. The API is an open and cross-browser standard that replaces traditional checkout flows by allowing merchants to request and accept any payment in a single API call. The API eliminates manual and tedious entry by storing the user's information securely in the browser. The browser passes addresses and credit card (or other payment) details directly to the website. And, because the browser is collecting payment information from the user, making a payment goes from " n " taps to one tap.
The Credential Management API lets a website store and retrieve password, public key, and federated credentials. These capabilities allow users to sign in without typing passwords, see the federated account they used to sign in to a site, and resume a session without the explicit sign-in flow of an expired session.
PRPL is an acronym that describes a pattern used to make web pages load and become interactive, faster: Push (or preload) the most important resources. Render the initial route as soon as possible. Pre-cache remaining assets. Lazy load other routes and non-critical assets.
Notifications can be used by the service worker to show new information to the user, or at least alert them when something has been updated. Notifications can work without push, but are very useful when combined with them.
Push is used to deliver new content from the server to the app without any client-side intervention, and its operation is handled by the app's service worker.
PWA testing strategy can have 2 areas of activity: standard web application testing (functional testing; non-functional testing (UI Testing, Cross-browser testing, Performance testing) and PWA features testing (installation on the home screen, offline mode, push notifications)
PWA Development: creation of the PWA framework and architecture; design of database structure; development of the PWA module, classes and libraries; completion of the development and implementation of all functionalities.
Lightweight injection tokens helps optimize the bundle size of client applications that use your library. The lightweight injection token design pattern is especially important for library developers. It ensures that when an application uses only some of your library's capabilities, the unused code can be eliminated from the client's app bundle.