Skip to content

Latest commit

 

History

History
61 lines (48 loc) · 4.43 KB

File metadata and controls

61 lines (48 loc) · 4.43 KB

Glossary

This documents aims to provide a common lexicon for terms used to refer to artifacts.

Motivation

Our technology space is filled with overloaded words like package, module, and bundle.

Despite the potential for confusion, we can make our documentation, APIs, and all forms of written and spoken communication clearer by carefully selecting and qualifying the terminology that we use.

If this document succeeds, we should end up having a documentation where each object/artifact has one single term to designate it. In other words, Wittgenstein should be proud of us (see Tractatus Logico-Philosophicus).

Note that we also include an appendix section listing the canonical spelling and casing for used trademarks or product names.

Technical Terms

  1. Frontend realm:
    1. JavaScript module: a generic JavaScript module in any format (AMD, CommonJS, ...).
      1. AMD module: a JavaScript AMD module (the .js file or its logical representation at runtime).
      2. CommonJS module: a JavaScript CommonJS module (the .js files used in node).
      3. ES module: a module written in ECMAScript 6+ format (i.e.: import from syntax).
      4. ESModule: use ES module instead.
      5. ECMAScript module: use ES module instead.
      6. Harmony module: use ES module instead.
      7. JavaScript module: use ES module instead.
    2. npm package: a JavaScript package (those described by a package.json file).
    3. webpack bundle: a .js file created by webpack, containing several bundled .js files.
  2. Backend realm:
    1. Java package: a Java package as defined by the language.
    2. OSGi bundle: the JAR file deployed to DXP or its logical representation at runtime Bundle.
    3. OSGi module: the source project for an OSGi bundle. Sometimes people use OSGi module when they refer to an OSGi bundle (in Liferay and in the outside world) so we don't consider it incorrect, though we recommend using OSGi bundle for the physical artifact (JAR file) to make it more evident (see the Wikipedia for a nice description).
    4. Portlet: atomic units of UI handled by DXP. They are deployed inside OSGi bundles.
    5. Widget: a marketing synonym for portlet.
  3. Ambiguous terms (only to be used in contexts where no ambiguity arises):
    1. Module: a JavaScript module.
    2. Package: a Java package or npm package.

Appendix: Trademarks / Product Names

This section lists the names to be used in common language as well as commands.

When the product name is used to denote a command-line executable, we use the correct case (as Unix-like CLIs are usually case sensitive) and enclose it inside backticks (`).

For example: Yarn is the product name, while yarn is the command.

Product Name Command Remarks
DXP See also Liferay Portal CE
ECMAScript
Java
JavaScript
Liferay JS Toolkit
Liferay npm Bundler liferay-npm-bundler
Liferay Portal CE See also DXP
Liferay Themes Toolkit
Node.js node
npm npm
npm Registry This is https://npmjs.com
OSGi
webpack webpack
Yarn yarn