Sandi Metz is an American software engineer and author. She is the author of ''Practical
Object-Oriented Design
Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development proc ...
in
Ruby
Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
''.
[“Object-Oriented Design in Ruby”](_blank)
/ref> Metz teaches workshops around the country for new and experienced developers, emphasizing good programming habits and practices.
Metz is known for her books and articles on object-oriented programming
Object-oriented programming (OOP) is a programming paradigm based on the concept of '' objects''. Objects can contain data (called fields, attributes or properties) and have actions they can perform (called procedures or methods and impl ...
and her statement regarding the Don't repeat yourself
"Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids r ...
principle, that duplication is cheaper than the wrong abstraction.
Publications
* Metz, Sandi (September 5, 2012), ''Practical Object-Oriented Design in Ruby'' (First ed.), Addison-Wesley,
* Metz, Sandi & Owen, Katrina (Mar 20, 2017), ''99 Bottles of OOP'' (First ed.), Potato Canyon Software, LLC,
Important concepts elaborated
* SOLID
Solid is a state of matter where molecules are closely packed and can not slide past each other. Solids resist compression, expansion, or external forces that would alter its shape, with the degree to which they are resisted dependent upon the ...
Design principles[“Solid Object Oriented Design - GORUCO 2009”](_blank)
/ref>
* Test-driven development
Test-driven development (TDD) is a way of writing source code, code that involves writing an test automation, automated unit testing, unit-level test case that fails, then writing just enough code to make the test pass, then refactoring both the ...
["The Magic Tricks of Testing - Rails Conf 2013"](_blank)
/ref>
* Dependency injection
In software engineering, dependency injection is a programming technique in which an object or function receives other objects or functions that it requires, as opposed to creating them internally. Dependency injection aims to separate the con ...
["Practical Object-Oriented Design in Ruby: Managing Dependencies"](_blank)
/ref>
References
External links
*
RubyConf 2017 Keynote Speech
Ruby Rogues Interview
Living people
American software engineers
Year of birth missing (living people)
{{US-engineer-stub