Home > Author > Robert C. Martin
161 " In Clojure, an atom is a special kind of variable whose value is allowed to mutate under very disciplined conditions that are enforced by the swap! function. "
― Robert C. Martin , Clean Architecture
162 " Woe to the poor developer who buckles under pressure and agrees to try to make the deadline. That developer will start taking shortcuts and working extra hours in the vain hope of working a miracle. "
― Robert C. Martin , The Clean Coder: A Code of Conduct for Professional Programmers
163 " To comply with these rules, the creation of volatile concrete objects requires special handling. This caution is warranted because, in virtually all languages, the creation of an object requires a source code dependency on the concrete definition of that object. In most object-oriented languages, such as Java, we would use an Abstract Factory to manage this undesirable dependency. "
164 " To the software architect, however, the answer is clear: OO is the ability, through the use of polymorphism, to gain absolute control over every source code dependency in the system. It allows the architect to create a plugin architecture, in which modules that contain high-level policies are independent of modules that contain low-level details. The low-level details are relegated to plugin modules that can be deployed and developed independently from the modules that contain high-level policies. "
165 " The majority of the cost of a software project is in long-term maintenance. "
― Robert C. Martin , The Robert C. Martin Clean Code Collection (Collection)
166 " It is a myth that we can get systems “right the first time.” Instead, we should implement only today’s stories, then refactor and expand the system to implement new stories tomorrow. This is the essence of iterative and incremental agility. "
― Robert C. Martin , Clean Code: A Handbook of Agile Software Craftsmanship
167 " Event sourcing is a strategy wherein we store the transactions, but not the state. When state is required, we simply apply all the transactions from the beginning of time. "
168 " Structured programming is discipline imposed upon direct transfer of control. "
169 " Object-oriented programming is discipline imposed upon indirect transfer of control. "
170 " It is no longer sufficient that every programmer does what is right in their own eyes. Some disciplines, standards, and ethics will come. The decision before us today is whether we programmers will define them for ourselves or have them forced upon us by those who don’t know us. "
― Robert C. Martin , Clean Craftsmanship: Disciplines, Standards, and Ethics
171 " Functional programming is discipline imposed upon variable assignment. "
172 " Objects hide their data behind abstractions and expose functions that operate on that data. Data structure expose their data and have no meaningful functions. "
173 " Why don´t you fix bad code when you see it? Your first reaction upon seeing a messy function is ´This is a mess, it needs to be cleaned' . Your second reaction is ´I'm not touching it!´. Beacuse you know that if you touch it you risk breaking it; and if you break it; it becomes yours "
174 " If we really want to spend our days programming, we are going to have to learn to talk to—people.1 "
175 " If its dependencies are inverted, it has an OO design. If its dependencies are not inverted, it has a procedural design. "
― Robert C. Martin , Agile Principles, Patterns, and Practices in C#
176 " It is far more common to fight your way through terrible software designs than it is to enjoy the pleasure of working with a good one. "
177 " Duplication may be the root of all evil in software. Many principles and practices have been created for the purpose of controlling or eliminating it. Consider, for example, that all of Codd’s database normal forms serve to eliminate duplication in data. Consider also how object-oriented programming serves to concentrate code into base classes that would otherwise be redundant. Structured programming, Aspect Oriented Programming, Component Oriented Programming, are all, in part, strategies for eliminating duplication. It would appear that since the invention of the subroutine, innovations in software development have been an ongoing attempt to eliminate duplication from our source code. "
178 " Professional developers are so certain of their code and tests that they are maddeningly casual about making random, opportunistic changes. They'll change the name of a class, on a whim. They'll notice a long-ish method while reading through a module and repartition it as a matter of course They'll transform a switch statement into polymorphic deployment, or collapse an inheritance hierarchy into a chain-of-command. In short, they treat software the way a sculptor treats clay-they continuously shape and mold it. "
― Robert C. Martin
179 " Without tests every change is a possible bug. No "
180 " God is in the details, said the architect Ludwig mies van der Rohe. "