Skip to content
This repository has been archived by the owner on Nov 5, 2024. It is now read-only.

Latest commit

 

History

History
42 lines (27 loc) · 1.63 KB

Guidelines.md

File metadata and controls

42 lines (27 loc) · 1.63 KB

🏗️ Developer Guidelines

The biggest challenge in software engineering is the fight against complexity. If you're planning to contribute to Ivy Wallet, we mainly care about two things:

  1. Your PR works and doesn't break anything.
  2. Your PR is simple and doesn't add complexity.

Software engineering is also about thinking. Don't just blindly follow best practices and strive to do the "right" thing. Instead, ask yourself:

  • Is this the simplest solution?
  • Am I over-engineering? What does this give me?
  • Can we make it simpler?

Be pragmatic. Engineering is all about being practical and finding optimal trade-offs. Our world isn't ideal so there isn't a "perfect" solution. The best we can do is optimize for things we care about.

Follow the 80/20 principle - from 20% effort comes 80% of the results.

In Ivy Wallet we care about:

  • Software complexity
  • Stability
  • Simplicity

To recap - THINK and keep it simple.

To get started read:

  1. Data Modeling
  2. Error Handling
  3. Architecture
  4. Screen Architecture
  5. Unit Testing
  6. Screenshot Testing

References