As you know, Web Development has its own, special vocabulary that easily consists of several thousand terms. And as we all know, even as experienced developers we’re unlikely to be aware of all of them. Do you like to try your own knowledge again? How many of the following 33 terms * do you know?
ACID (Atomicity, Consistency, Isolation, Durability): A set of properties of database transactions intended to guarantee validity even in the event of errors, power failures, etc. In the context of databases, a sequence of database operations that satisfies the ACID properties (which can be perceived as a single logical operation on the data) is called a transaction. The acronym was coined in 1983 by Andreas Reuter and Theo Härder.
Bfcache (back/forward cache): A browser optimization to improve the web browsing experience. Bfcache is an in-memory cache that stores a complete snapshot of a web page to enable fast back and forward navigation.
CC/PP (Composite Capability/Preference Profiles): A specification for defining capabilities and preferences of user agents, establishing a delivery context that can be used to guide the process of tailoring content. CC/PP is a vocabulary extension of the Resource Description Framework (RDF). w3.org/TR/CCPP-struct-vocab2
Data swamp: A deteriorated and unmanaged data lake that is either inaccessible to its intended users or is providing little value.
Dependency injection: A technique whereby one object supplies the dependencies of another object. A “dependency” is an object that can be used, for example as a service. Instead of a client specifying which service it will use, something tells the client what service to use. The “injection” refers to the passing of a dependency (a service) into the object (a client) that would use it. The service is made part of the client’s state. Passing the service to the client, rather than allowing a client to build or find the service, is the fundamental requirement of the pattern. The intent behind dependency injection is to achieve separation of concerns of construction and use of objects. This can increase readability and code reuse.
ECT (Effective Connection Type): The measured network performance, returning a cellular connection type, like 3G, even if the actual connection is tethered broadband or Wi-Fi, based on the time between the browser requesting a page and effective type of the connection. ECT’s values of
4gare determined using observed round-trip times and downlink values. wicg.github.io/netinfo
Facade pattern: A software design pattern commonly used in object-oriented programming. Analogous to a facade in architecture, a facade is an object that serves as a front-facing interface masking more complex underlying or structural code. A facade can improve the readability and usability of a software library by masking interaction with more complex components behind a single (and often simplified) API; provide a context-specific interface to more generic functionality (complete with context-specific input validation); and serve as a launching point for a broader refactor of monolithic or tightly-coupled systems in favor of more loosely-coupled code.
Generator function: A function that can be exited and later re-entered, and that can therefore be used to generate a sequence of results instead of a single result. The context of a generator function (variable bindings) is saved across re-entrances. Generators are particularly useful for asynchronous programming as they mitigate problems with callbacks, such as “callback hell” and Inversion of Control (IoC).
Holey: A property of an array that misses elements, and cannot be optimized as effectively anymore.
HTTP flood attack: A type of distributed denial of service (DDoS) attack in which the attacker makes unwanted
POSTrequests in order to attack a web server or application. These attacks often use interconnected computers that have been taken over with the aid of malware. Instead of using malformed packets, spoofing, or reflection techniques, HTTP floods require less bandwidth to attack the targeted sites or servers.
Indexed color: A technique to manage digital images’ colors in a limited fashion, in order to save computer memory and file storage, while speeding up display refresh and file transfers. Indexed color is a form of vector quantization compression. When an image is encoded this way, color information is not directly carried by the image pixel data, but stored in a separate piece of data called a palette, that is, an array of color elements.
Intent to Prototype: A software vendor expression to develop a particular software or software feature. This implementation may not necessarily lead to a public release but instead serve to assess feasibility, desirability, and cost.
Jinjava: A Java-based template engine based on the Django template syntax to render Jinja templates. Jinjava is used widely around the HubSpot marketing and sales software. github.com/HubSpot/jinjava
KHTML: A browser engine developed by the KDE project. KHTML is the engine used by the Konqueror web browser. Although it has not seen significant development since 2016, it is still actively maintained.
Medium integer: An integral data type of 24 bits, with a signed range from –8,388,608 to 8,388,607, and an unsigned range from 0 to 16,777,215.
Microtask: A task to be run after a currently executed script. Microtasks are run in order, and include promise callbacks, intersection observer callbacks, and mutation observer callbacks.
Observer pattern: A software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods. The observer pattern is mainly used to implement distributed event handling systems.
Open-Closed Principle: The idea that “software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification,” that is, that such an entity can allow its behavior to be extended without modifying its source code.
Page parking: The quick opening of several web pages to revisit the respective pages and files at a later time. According to UX research firm Nielsen Norman Group, page parking is particularly popular among young adult users, or so-called millennials.
Quality Assistance: An Agile model in which not testers or other experts dedicated to software quality are responsible for testing, but the developers themselves. With the Quality Assistance approach, testers support developers with guidance and coaching.
Remote method invocation: The calling of a method on a remote object, the object-oriented programming analog of a remote procedure call (RPC).
Restricted production: A statement like
continuethat, when followed by a line terminator, triggers the automatic insertion of a semicolon (ASI).
Scrollport: The visual viewport of a scroll container in a document. A scroll container is created by applying
overflow: scrollto a container, or
overflow: autowhen there is enough content to cause overflow. The scrollport coincides with the padding box of that container and represents the content that can be seen as the box is scrolled.
SNI (Server Name Indication): An extension to the Transport Layer Security (TLS) computer networking protocol by which a client indicates which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites (or any other service over TLS) to be served by the same IP address without requiring all those sites to use the same certificate. SNI is the conceptual equivalent to HTTP/1.1 name-based virtual hosting, but for HTTPS.
Textile: A lightweight markup language that uses a text formatting syntax to convert plain-text into structured HTML markup. Textile is used for writing articles, forum posts, documentation, and any other type of written content published online. It was first released in 2002. textile-lang.com
Usability inspection: The name for a set of methods where an evaluator inspects a user interface. This is in contrast to usability testing where the usability of the interface is evaluated by testing it with real users. Usability inspections can generally be used early in the development process by evaluating prototypes or specifications for the system that cannot be tested with users. Usability inspection methods are generally considered to be cheaper to implement than testing with users. They include cognitive walkthroughs (task-specific), heuristic evaluations (holistic), and pluralistic walkthroughs.
Value-Driven Design: A systems engineering strategy based on microeconomics which enables multidisciplinary design optimization. The terms “value-driven design” and “value-centric design” are used interchangeably. The essence of these strategies is that design choices are made to maximize system value rather than to meet performance requirements. VDD is similar to the value-driven approach of agile software development, where a project’s stakeholders prioritize their high-level needs (or system features) based on the perceived business value each would deliver.
WXML (WeiXin Markup Language): A proprietary document language to describe page structures for so-called Mini Programs. WXML is maintained by Tencent. bit.ly/2XcZORT
X.509: A standard defining the format of public key certificates. X.509 certificates are used in many Internet protocols, including TLS/SSL, the basis for HTTPS. They are also used in offline applications, like electronic signatures. An X.509 certificate contains a public key and an identity, and is either signed by a certificate authority or self-signed. X.509 is defined by the International Telecommunications Union’s “Standardization Sector” (ITU-T), and based on ASN.1, another ITU-T standard. itu.int/rec/T-REC-X.509
Your Money or Your Life: A category from Google’s Search Quality Evaluator Guidelines that covers websites and apps that may impact “a person’s future happiness, health, financial stability, or safety” and for which result quality is particularly important.
Zero-configuration networking: A set of technologies that automatically creates a usable computer network based on the Internet protocol suite (TCP/IP) when computers or network peripherals are interconnected. Zeroconf does not require manual operator intervention or special configuration servers. Without it, a network administrator must set up network services, such as Dynamic Host Configuration Protocol (DHCP) and Domain Name System (DNS), or configure each computer’s network settings manually. Zeroconf is built on three core technologies: automatic assignment of numeric network addresses for networked devices, automatic distribution and resolution of computer hostnames, and automatic location of network services, such as printing devices.
How was it this time? How many terms did you know? How many terms had you heard about? What was new?
Web Development is a great field. If you decide to follow the field’s development through the The Web Development Glossary, you get book updates automatically when obtaining your copy at Google Play Books or Leanpub.
* Some explanations are based on Wikipedia, the MDN Web Docs, or the HTML Living Standard. All references are available in the Appendix of The Web Development Glossary (PDF). This post is licensed under a CC BY-SA 4.0 (Attribution-ShareAlike 4.0 International) license.