Jump to content

Software Engineering: Difference between revisions

From wiki.rayhan.com
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