Skip to content

Instantly share code, notes, and snippets.

@swalkinshaw
swalkinshaw / tutorial.md
Last active November 13, 2023 08:40
Designing a GraphQL API

FWIW: I (@rondy) am not the creator of the content shared here, which is an excerpt from Edmond Lau's book. I simply copied and pasted it from another location and saved it as a personal note, before it gained popularity on news.ycombinator.com. Unfortunately, I cannot recall the exact origin of the original source, nor was I able to find the author's name, so I am can't provide the appropriate credits.


Effective Engineer - Notes

What's an Effective Engineer?

SOLID

  • Single responsibility principle: a class should have only a single responsibility
  • Open/closed principle: software entities should be open for extension, but closed for modification
  • Liskov substitution principle: objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program
  • Interface segregation principle: many client-specific interfaces are better than one general-purpose interface
  • Dependency inversion principle: high level modules should not depend on low level modules, both should depend on abstractions

https://en.wikipedia.org/wiki/SOLID_(object-oriented_design)

@Dimitri-Gnidash
Dimitri-Gnidash / gist:5999939
Created July 15, 2013 13:28
Thoughtful Team
Building with Confidence
- Investment into quality i.e. spending time improving infrastructure, refactoring code, looking for better solutions (CRITICAL)
- Once a week half a day bug hunt with dev team or full-time Automated QA Engineer
- Demanding and giving developers time to do proper testing of their own effort.
- Test-driven development (or BDD) and Continuous Integration
- Code reviews
- Investment into writing library-style code
Running Tight Ship
- Pre-planning meeting where the dev teams play "Planning poker" (CRITICAL)