2010-12-31 19 views

Respuesta

34

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.

9

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:

+0

@Abe Um, ¿qué? – marcog

+0

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

+0

@Malvolio Por favor, ¿me explica lo que está encontrando tan difícil de entender? Creo que lo puse de manera simple. – marcog

0

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.

+3

No es un libro, "importa esto", puedes verlo – flycondor

+0

@flycondor thanx, ahora tiene más sentido – Christian

0

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