Software Engineering: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 13: | Line 13: | ||
* No side effects | * No side effects | ||
* Consistent outputs | * Consistent outputs | ||
Benefits: | |||
* Composable: doesn't rely on outside state, so you don't have to think through what happens when you compose a few together or reuse them. | |||
* Cachable | |||
* Testable | |||
* Readable | |||
Revision as of 17:25, 30 May 2025
Software engineering is programming over time.
From ui.dev: "as a software developer, your primary job is to maximize the predictability of your program."
Related to the "principle of least surprise".
Two contributors:
- Side effects
- Inconsistent outputs
To make a predictable program:
- No side effects
- Consistent outputs
Benefits:
- Composable: doesn't rely on outside state, so you don't have to think through what happens when you compose a few together or reuse them.
- Cachable
- Testable
- Readable