- Last Updated on 02 June 2011
- Written by Administrator
- Hits: 2125
I often had trouble reading complicated explanations about some terms and the list here tries to make a definition that can be understood by normal human beings without theoretical mathematics and other higher level skills.
ACID (Atomicity, Consistency, Isolation, Durability)
If a Database follows ACID rules then the operation will success and data will be stored or the operation will fail and the database remains in a safe state. Concurrent operations are handled transparently by the database. [More]
Law used to predict the maximum possible performance speedup when adapting programs to use more processors. [More]
Example: a function declares another function inside itself that uses its local variables. The inner function + local variables is called closure. [More]
A quantitative measure of a characteristic of the software source code. A simple metric is the amount of lines, or the ration comments/lines of code
Objects or components are tightly coupled if they highly depend on each other what hinders their reuse and extendabilty. [More]
Don't Repeat Yourself [More]
General Responsibility Assignment Software Patterns [More]
An immutable object cannot be modified after creation. [More]
A cryptosystem should be secure even if everything about the system, except the key, is public knowledge. [More]
Keep It Simple, Stupid! Avoid unnecessary complexity. [More]
Description of a function by mean of a statement binding parameters to an expression. For example: (x,y) => x*y defines an anonymous function that returns the product of the two arguments. This is often used to define delegates in a more readable way.
Liskov substitution principle
A derived class shall behave in the same way than the base class (keeping same semantics). [More]
Mc Cabe complexity
A code metric representing the amount of decisions taken by a piece of code. Having complex code makes the maintenance and testing of that code harder and costly. Here is a small drop-in tool that computes metrics for you: ACQC metrics.
OCP: open/closed principle
"software entities (classes, modules, functions, etc.) should be open for extension, but closed for modification" [More]
A derived class overrides a base class virtual method, the implementation is replaced by the derived one, this is done at run-time.
The same method has different implementations with different parameter types (in the same scope).
REST/RESTful (Representational State Transfer)
An architecture that is resource oriented (accessible over an URL for example) and follows the constraints of requests being cacheable and the requests holding all parameters needed for operation (no need to manage a state or session on server side) among others. [More]
A routine is said to be reentrant if while one thread is running the code, another thread can enter and run also the routine safely. Usually involves not using static variables or calling only reentrant functions. [More]
Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion principles [More]
Time Of Check To Time Of Use: Security issue or bug caused by a change to a system between the check (where the conditions were ok) and the time at which a resource is used. Usually the solution consist into locking the resource before the check and while the resource is used. [More]