Estoy leyendo Clean Code por el tío Bob. Como no hablo inglés nativo, no pude entender la siguiente declaración:
Las clases y los objetos deben tener sustantivo o un sintagma nominal nombres como
Customer,WikiPage,Account, yAddressParser. Evita palabras comoManager,Processor,Data, oInfoen nombre de una clase. Un nombre de clase no debe ser un verbo.
Que yo sepa, ninguno de los Manager, Processor, Data, y Infoes un verbo, no es así? ¿Cuál es el punto real que quiere enfatizar?
coding-style
terminology
code-quality
naming
mmdemirbas
fuente
fuente

Respuestas:
Los tres puntos están separados:
Los nombres de clase deben ser sustantivos o frases nominales . Esto significa que el nombre de la clase debería ser algo que sería el sujeto de un verbo. En el caso del diseño orientado a objetos, los métodos serían los verbos que tienen lugar sobre lo que representa la clase.
Algunas palabras deben ser evitadas.
Managerindica una posible clase de dios .InfoyDatapuede indicar un contenedor de datos ficticios. Palabras como esta pueden indicar un modelado deficiente del espacio del problema.Los verbos nunca deben ser nombres de clase. Vea el primer punto: las clases modelan cosas, los métodos modelan acciones.
fuente
Él está tratando de establecer una distinción entre cosas (sustantivos) y acciones (verbos). En el diseño convencional orientado a objetos, pensamos en las clases como cosas, y sus métodos como las acciones que esas cosas pueden realizar. Para gestionar es cuidar o coordinar, mientras gerente es una persona o cosa que administra.
Los libros introductorios generalmente reducen esto a los términos más simples y obvios posibles, como una clase llamada Perro , con métodos Bark and Bite . En las clases del mundo real, la distinción es a menudo un poco más sutil, pero sigue ahí. Sin embargo, creo que el punto que el tío Bob está haciendo es que, si bien el gerente es un sustantivo, pone mucha atención en lo que hace el gerente y no en lo que es, es una palabra demasiado vaga para describir exactamente lo que es ser manejado o cómo.
fuente
Accountes un objeto,balancees un campo ytransferes un método. Pero el diseño correcto sería:Transferes un objeto,accountes un campo ybalancees un método. Así es como los sistemas bancarios son realmente implementadas y cómo bancario asuma realmente trabajaron antes de los ordenadores.