Pull to refresh
0
0
Send message

Referential Transparency as a mechanism for building Reliable Programs

Level of difficultyEasy
Reading time4 min
Views569

Referential transparency, a key concept in functional programming, is often associated with more reliable, easier to test, and safer software. This term refers to a principle in which a function, given the same input, will always produce the same output without producing any side effects.

In the real world of software development, side effects are inevitable. Programs are rarely useful unless they interact with the outside world. This interaction could be reading from or writing to the console, making network requests, querying a database, or modifying a variable.

Yet, despite the necessity of side effects, they introduce risks and complexities. Programs with side effects are harder to test, harder to reason about, and more prone to bugs. They can also make the system as a whole more difficult to understand and maintain, due to hidden dependencies between components.

Enter referential transparency - a concept that means a function, given the same input, will always provide the same output, without creating any side effects. A function that adheres to this principle doesn't read any global state or change any state outside of its scope. The result is code that is more predictable and easier to reason about.

In terms of software safety and reliability, the absence of side effects is not enough. Programs should also be free from external influence - their results should only depend on their arguments. That is, programs should not read data from the console, a file, network, database, or even system variables.

Yes
Total votes 1: ↑1 and ↓0+1
Comments3

Information

Rating
Does not participate
Registered
Activity

Specialization

Software Developer, Backend Developer
Senior
From 6,500 $
Java
Java Spring Framework
Spring Boot
Junit
Intellij IDEA
Docker
Git
PostgreSQL
Linux
Bash