Jump to content

Software Engineering: Difference between revisions

From wiki.rayhan.com
No edit summary
No edit summary
Line 1: Line 1:
== Reading ==
[https://tom.preston-werner.com/2010/08/23/readme-driven-development Readme Driven Development] by Tom Preston-Werner, founder and former CEO of GitHub.
== Random notes ==
Software engineering is programming over time.  
Software engineering is programming over time.  


Line 19: Line 28:
* Testable
* Testable
* Readable
* Readable
== Reading ==
[https://tom.preston-werner.com/2010/08/23/readme-driven-development Readme Driven Development] by Tom Preston-Werner, founder and former CEO of GitHub.

Revision as of 19:42, 3 June 2025

Reading

Readme Driven Development by Tom Preston-Werner, founder and former CEO of GitHub.



Random notes

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