... |
... |
@@ -8,7 +8,7 @@ |
8 |
8 |
|**Term**|(% style="text-align:justify" %)**Explanation** |
9 |
9 |
|Abstraction|(% style="text-align:justify" %)((( |
10 |
10 |
1. The counterpart to 'Concretion', refers to interfaces and abstract classes that define behavior (function signatures) but leave the internal operation of these functions undefined. |
11 |
|
-1. A higher-level, generalized unit of code. Duplication across multiple functions can be resolved by creating an 'abstraction' - a separate function containing the shared code. This adheres to the DRY principle. |
|
11 |
+1. A higher-level, generalized unit of code. Duplication across multiple functions can be resolved by creating an 'abstraction'—a separate function containing the shared code. This adheres to the DRY principle. |
12 |
12 |
))) |
13 |
13 |
|Assertion|(% style="text-align:justify" %)Pertains to an assertion function, a crucial part of testing. If the input values don't satisfy a certain condition, the test containing the assertion fails. Example: 'assertEquals(expectedResult, actualResult)'. |
14 |
14 |
|Awareness|(% style="text-align:justify" %)A class A is aware of class B if it contains a reference to class B in its source code. If no such reference exists, class A is unaware of class B. |
... |
... |
@@ -40,7 +40,6 @@ |
40 |
40 |
|Graphical User Interface (GUI)|(% style="text-align:justify" %)A user interface that allows users to interact with the system through graphical elements like icons, buttons, windows, and menus. |
41 |
41 |
|[[Inversion of Control>>doc:Software Architecture.Dependency Injection.Dependency Injection Explained.WebHome]] (IoC)|(% style="text-align:justify" %)A design principle that delegates a program's control flow to a separate container or framework that "wires" application components together, facilitating [[dependency injection>>doc:Software Architecture.Dependency Injection.WebHome]]. An IoC container, as found in the Spring Framework, is a common tool for implementing this principle. |
42 |
42 |
|JavaBean|A design convention for data structures. Typically, a class with a public no-argument constructor, private fields, and getter/setter methods for each field. Often followed by DTOs and entities. |
43 |
|
-|Module|(% style="text-align:justify" %)A distinct part of a software that encapsulates specific implementation details, such as functions, data structures, classes, interfaces, or even other modules. It exposes a concise API designed to perform specific tasks. These modules are typically crafted for reusability and improved code organization, thereby promoting a modular design. |
44 |
44 |
|Logic|(% style="text-align:justify" %)Code with non-trivial complexity. For instance, getters and setters have trivial complexity and are usually not considered 'logic'. |
45 |
45 |
|Magic|(% style="text-align:justify" %)Code that performs complex tasks while abstracting away the complexity, presenting a simple interface to the user. |
46 |
46 |
|Operating System (OS)|(% style="text-align:justify" %)The foundational system software that manages and coordinates all computer resources. Examples include Windows, MacOS, and Linux. |
... |
... |
@@ -48,7 +48,7 @@ |
48 |
48 |
|Production Code|(% style="text-align:justify" %)Code that comprises the functioning part of an application, as opposed to test code. |
49 |
49 |
|Rollback|The act of returning a system or data to a previous state, often using a snapshot. |
50 |
50 |
|Runtime|The period when the code is being executed. |
51 |
|
-|Self-Containment|(% style="text-align:justify" %)The ability of software to operate independently, without dependence on external services or factors. This characteristic ensures that its results are determined solely by its source code, which promotes stability and consistency. |
|
50 |
+|Self-Containment|(% style="text-align:justify" %)The ability of software to operate independently, without dependence on external services or factors. This characteristic ensures that its results are determined solely by its source code, which promotes stability and consistency. For example, the execution of unit and component tests should be self-contained to remain reproducible. |
52 |
52 |
|Separation of Concerns|(% style="text-align:justify" %)A design principle suggesting that each module or component should have a single responsibility or concern, enhancing clarity and maintainability. |
53 |
53 |
|[[Setter Injection>>doc:Software Architecture.Dependency Injection.Types of Dependency Injection.WebHome]]|(% style="text-align:justify" %)A type of dependency injection where a dependency is provided to an object through a setter method. |
54 |
54 |
|Snapshot|A saved state of a system or data at a specific point in time. Can be used for rollbacks. |
... |
... |
@@ -58,6 +58,5 @@ |
58 |
58 |
|Static|Pertains to behaviors or properties determined at compile time. Examples: static code analysis tools inspect source code; statically-typed languages determine an object's type at compile time. |
59 |
59 |
|Test Code|(% style="text-align:justify" %)Code that tests the functionality of production code. Does not contribute to the operational aspects of an application. |
60 |
60 |
|Test-Driven Development (TDD)|(% style="text-align:justify" %)A development approach where code is written in small increments, with tests defining functionality written before each coding iteration. |
61 |
|
-|Unit|(% style="text-align:justify" %)The smallest testable part of an application. This is often a single class, method or module, but can also be a small cluster of tightly coupled classes or functions that together perform a specific functionality. |
62 |
62 |
|Virtual Machine (VM)|(% style="text-align:justify" %)A software emulation of a physical computer, able to run its own OS and applications as if it were a separate physical machine. |
63 |
63 |
|Wiring|(% style="text-align:justify" %)The process conducted by the IoC container to create and inject dependencies, facilitating application startup. |