En "El zen de Python", por Tim Peters, la frase "Complejo es mejor que complicado" me confundió. ¿Alguien puede dar una explicación más detallada o un ejemplo?¿Qué significa "El complejo es mejor que complicado"?
Respuesta
Aunque sonido complejo y complicado por igual, no significan lo mismo en este contexto.
Por lo tanto, el Zen dice: Está bien construir aplicaciones muy complejas, siempre que la necesidad sea razonable.
Para dar un ejemplo:
counter = 0
while counter < 5:
print counter
counter += 1
El código es muy fácil de entender. No es complejo. Sin embargo, es complicado. No es necesario realizar manualmente la mayoría de los pasos anteriores.
for i in xrange(5):
print i
Este código es más complejo que el ejemplo anterior. Pero: conociendo la documentación de'xrange 'puedes entenderlo de un vistazo. Muchos pasos están ocultos detrás de una interfaz fácil de usar.
A medida que los procesos crecen, la brecha entre lo complicado y lo complejo se hace más y más amplia.
Una regla general es seguir los demás principios del Zen de Python:
Si es difícil de explicar, no es una buena idea.
Si es fácil de explicar, podría ser una buena idea.
Complejo: Hace mucho. Por lo general inevitable.
Complicado: Difícil de entender.
Me gusta esta cita (source):
Una persona compleja es como un iPod. Eso es decir que son consistentes, sencillo y 'fácil de usar' a la vez que es bastante sofisticado. A diferencia de la persona complicada, interactuando con una persona compleja does no requieren un conocimiento especial de sus formas complicadas, porque sus formas no son complicadas. Cuando se cometen errores , tienden a ser muy indulgentes porque entienden que las personas son imperfectas. En resumen, son seres humanos maduros y sensatos.
y este (source): se complica
Un Airbus A380. Una medusa es compleja. La red del Metro de París es complicada. Cómo la gente usa es complejo. Su esqueleto es complicado. Eres complejo. Un edificio es complicado. Una ciudad es complejo.
Algunos más artículos sobre este:
No he leído este libro.
complejo es, en mi opinión, una solución que puede no ser fácil de entender, pero está escrito en código simple y lógico.
complicado es una solución que puede ser simple (o compleja) pero está escrita en código que no es fácil de entender porque no hay patrones o lógica en ella y no hay metáforas y nombres adecuados.
Los sistemas complicados son altamente acoplados y, por lo tanto, frágiles.
Los sistemas complejos están hechos de partes simples que funcionan juntas para crear un comportamiento emergente complejo. Si bien los comportamientos emergentes aún pueden ser un desafío, las partes individuales pueden aislarse, estudiarse y depurarse. Las partes individuales se pueden quitar y reutilizar.
comento más sobre este tema y dar ejemplos on my blog
- 1. pivote complicado
- 2. ¿Por qué Scala es muy complejo?
- 3. ¿Por qué el uso es mejor que el uso?
- 4. ¿Por qué el código del método Marshal.WriteInt64 es tan complejo?
- 5. ¿Qué significa que el botón está armado?
- 6. Por qué ArrayDeque es mejor que LinkedList
- 7. ¿Qué significa "El constructor ... es ambiguo"?
- 8. ¿Por qué ENUM es mejor que INT
- 9. ¿Qué es el doble? significa en C#?
- 10. SQL complicado Únase
- 11. SVN? VSS? ¿Por qué es uno mejor que el otro?
- 12. RedirectToAction (..) falla el objeto complejo complejo
- 13. ¿Qué es un PDI y qué significa?
- 14. qué significa cuando dicen que http es stateless
- 15. ¿Qué significa que Javascript es un lenguaje basado en prototipos?
- 16. JPanel dice que es opaco, ¿qué significa eso?
- 17. JavaScript complejo. ¿Qué me llamó?
- 18. ¿Qué significa el DTMobileIS?
- 19. ¿Qué significa el parcial?
- 20. ¿Qué significa Field.Index.NOT_ANALYZED_NO_NORMS significa
- 21. ¿Qué Lisp es mejor en el análisis?
- 22. ¿Qué caso es mejor?
- 23. ¿Qué es mejor?
- 24. TabActivity -> Fragments ... ¿es realmente así de complicado?
- 25. ¿Qué analizador HTML es el mejor?
- 26. ¿Qué servidor WAMP es el mejor?
- 27. ¿Qué significa ('../') significa?
- 28. ¿Qué significa "babosa" significa
- 29. ¿Cuál es el código más complejo/poderoso que puede escribir que es válido en un número máximo de idiomas?
- 30. es decir, problema de cookie de subdominio complicado
@Abe Um, ¿qué? – marcog
Sí, estoy con Abe en este caso. Algo que aparentemente me dice que haga mi trabajo fácil de entender es muy difícil de entender. Uh, creo. – Malvolio
@Malvolio Por favor, ¿me explica lo que está encontrando tan difícil de entender? Creo que lo puse de manera simple. – marcog