updated: 7 Jan 2020
Some meanings here are genuinely in ‘universal’ use (the universe being limited geographically to Earth). However, ‘universal’ agreement is extremely rare. So very often this is about the definition I have chosen to work with. In fact, in some cases, there are at least two common uses of the same term. These also make the glossary. We are not arguing for universal use in the way we use the term, but we do have a need for a specific term matching the definition here, so one these pages, and in our team, this is what the term is taken to mean. This is of course open to debate and refinement.
Attribute: Every thing that can be accessed using ‘.’ notion within an object. This includes fields, properties, methods, and sometimes even functions.
Computing: Hopefully self explanatory, but aslo used as a substitute for IT when used in the more general sense, as opposed to the narrower more specifc use of IT as in this glossary.
Default Value Trap: The risk with mutable default value parameters in Python
Field: An attribute which holds data.
Immutable: Values that only ever have a single unchanging value.
Information Technology (see IT)
IT. There are two very different interpretations of IT. Wikipedia describes Information Technology in the more general sense, then adds “often in the context of a business or other enterprise”, effectively covering both the wider meaning, and the more specific meaning. With no other term for the more specific meaning, we use Computing for the use without the ‘often’ and use IT for ‘only when the often applies’. To clarify:
Information Tecnology(IT): the use of computers to store, retrieve, transmit, and manipulate data, or information, in the context of a business or other enterprise, for use within that business or other enterprise
Mutable: Values that can be altered, and variables that can be altered – see immutable.
Property: An attribute which holds data and can be accessed from code external to the class through either explicit or implicit get and optionally set methods. Python does generally use the term property only when explicit get and set are in use, but as only Kotlin has obvious implicit get and set for all fields accessed outside a class, then the term works for both languages with this definition.
TTD: Test driven development. A discipline where developers create tests first and never code except to pass a failing test. At the extreme, it is suggested that system design should only be arise from coding to pass tests.
Unit Test: Broader meaning: Any fully automated test driven by a test module such as pytest or junit. Narrower Meaning: Tests as per the broader meaning which are reliant only on the specific class or ‘unit’ under test, with all other systems fully mocked. Under this narrower meaning, any tests that rely on other component rather than a mock, are integration tests.