Professional Documents
Culture Documents
Metaprinciples of Software Development: Elias Fofanov
Metaprinciples of Software Development: Elias Fofanov
Elias Fofanov
http://engineerspock.com
Outline
● Good for making multiple points in one slide, or for anything that needs a
large amount of space in general
● In general between three to five bullet points is about right, any more than
that and everything starts to look a bit like a wall of text
● Also ideal for large charts, still images - animated GIFs can work as well if
you’re using Google Slides
Using Diagrams and Shapes
Step 3
Step 2 We challenge you to create
Step 1 and build your own examples
We show you how to analyse
We help you understand
and apply what you’ve seen
and remember key points
This format is ideal for quick
summaries and explaining the
reasoning behind certain
Why? decisions.
Development can be
Because this is the responsible
thing to do opinionated; and that’s totally
fine. Just bring the audience
along with you.
Metaprinciples of Software Development
Elias Fofanov
http://engineerspock.com
Outline
Greg Young
What we if really need to make code more general?
Reused Abstraction Principle (RAP)
• RAP states that there should be at least three implementers on an interface or a base class
(Rule of Three)
• Abstraction eliminates irrelevant and amplifies the essential
Basic algorithm:
• Start with a concrete implementation of a specific behavior
• Observe the emerging commonalities
• Apply the Rule of Three
Next Video
OCP vs YAGNI
OCP VS YAGNI
• SRP implies that a class should have only one reason to change.
ISP at the same time tells that clients should not depend
on things they do not need.
• ISP and SRP are different views on the same idea.
SRP is more focused on the designer-side point-of-view,
while ISP is more focused on the client-side point-of-view.
SRP and ISP
}
}
interface IReader {
byte[] Read(string file);
}
interface IWriter {
void Write(byte[] content);
}
Next Video
Architecture and Design
Architecture and Design
What is the difference between Architecture and Design?
What is the difference between Architecture and Design?
Architecture