Goodreads helps you follow your favorite authors. Be the first to learn about new releases!
Start by following Sandi Metz.
Showing 1-23 of 23
“You don’t send messages because you have objects, you have objects because you send messages.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Novice programmers don’t yet have the skills to write simple code.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“The first way design fails is due to lack of it.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“depend on things that change less often than you do.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Your application needs to work right now just once; it must be easy to change forever.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Successful (working) but undesigned applications carry the seeds of their own destruction; they are easy to write, but gradually become impossible to change.”
― Practical Object-Oriented Design: An Agile Primer Using Ruby
― Practical Object-Oriented Design: An Agile Primer Using Ruby
“The future is uncertain and you will never know less than you know right now.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“In a small application, poor design is survivable. Even if everything is connected to everything else, if you can hold it all in your head at once, you can still improve the application. The problem with poorly designed small applications is that if they are successful, they grow up to be poorly designed big applications.”
― Practical Object-Oriented Design: An Agile Primer Using Ruby
― Practical Object-Oriented Design: An Agile Primer Using Ruby
“Those of us whose work is to write software are incredibly lucky. Building software is a guiltless pleasure because we get to use our creative energy to get things done. We have arranged our lives to have it both ways; we can enjoy the pure act of writing code in sure knowledge that the code we write has use. We produce things that matter. We are modern craftspeople, building structures that make up present-day reality, and no less than bricklayers or bridge builders, we take justifiable pride in our accomplishments.”
―
―
“A dependency on a private method of an external framework is a form of technical debt. Avoid these dependencies.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Persist. Practice. Experiment. Imagine. Do your best work, and all else will follow.”
― Practical Object-Oriented Design: An Agile Primer Using Ruby
― Practical Object-Oriented Design: An Agile Primer Using Ruby
“Every dependency is like a little dot of glue that causes your class to stick to the things it touches.”
― Practical Object Oriented Design in Ruby
― Practical Object Oriented Design in Ruby
“When the future cost of doing nothing is the same as the current cost, postpone the decision. Make the decision only when you must with the information you have at that time.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“The problem is not one of technical knowledge but of organization; you know how to write the code but not”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Instead of deciding on a class and then figuring out its responsibilities, you are now deciding on a message and figuring out where to send it. This transition from class-based design to message-based design is a turning point in your design career.”
―
―
“Conveying information that a method is stable or unstable is one thing; attempting to control how others use it is quite another.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Your job is one of synthesis; you must combine an overall understanding of your application’s requirements with knowledge of the costs and benefits of design alternatives and then devise an arrangement of code that is cost effective in the present and will continue to be so in the future.”
― Practical Object-Oriented Design: An Agile Primer Using Ruby
― Practical Object-Oriented Design: An Agile Primer Using Ruby
“Changing requirements are the programming equivalent of friction”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Agile processes guarantee change and your ability to make these changes depends on your application’s design.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“The general rule for refactoring into a new inheritance hierarchy is to arrange code so that you can promote abstractions rather than demote concretions.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“Demeter became a “law” because a human being decided so; don’t be fooled by its grandiose name.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“If lack of a feature will force you out of business today it doesn’t matter how much it will cost to deal with the code tomorrow; you”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer
“If you cannot correctly identify the abstraction there may not be one, and if no common abstraction exists then inheritance is not the solution to your design problem.”
― Practical Object-Oriented Design in Ruby: An Agile Primer
― Practical Object-Oriented Design in Ruby: An Agile Primer




