2010-12-31 10 views

risposta

34

sebbene suoni complessi e complicati allo stesso modo, non significano lo stesso in questo contesto.

Lo Zen quindi dice: Va bene costruire applicazioni molto complesse, purché il bisogno di farlo sia ragionevole.

per fare un esempio:

counter = 0 
while counter < 5: 
    print counter 
    counter += 1 

il codice è molto facile da capire. Non è complesso Tuttavia, è complicato. Non è necessario eseguire manualmente la maggior parte dei passaggi precedenti.

for i in xrange(5): 
    print i 

Questo codice è più complesso rispetto all'esempio sopra. Ma: conoscendo la documentazione di'xrange 'puoi capirlo con una sola occhiata. Molti passaggi sono nascosti dietro un'interfaccia facile da usare.

Man mano che i processi diventano più grandi, il divario tra complicato e complesso diventa sempre più ampio.

Una regola generale è quello di seguire gli altri principi della Zen di Python:

Se è difficile da spiegare, non è una buona idea.

Se è facile da spiegare, potrebbe essere una buona idea.

9

Complesso: fa molto. Di solito inevitabile.

Complicato: Difficile da capire.

Mi piace questa citazione (source):

Una persona complessa è come un iPod. Che è dire che sono coerenti, semplice e 'user friendly' pur essendo anche piuttosto sofisticato. A differenza della persona complicata, interagire con una persona complessa non richiede una conoscenza speciale dei loro modi complicati , perché i loro modi non sono complicati. Quando vengono commessi gli errori , tendono ad essere molto clemente perché capiscono che le persone sono imperfette. In breve, sono esseri umani maturi e sensibili.

e questo (source): è complicato

Un Airbus A380. Una medusa è complessa. La rete della metropolitana di Parigi è complicata. Come le persone usano è complesso. Il tuo scheletro è complicato. Sei complesso. Un edificio è complicato. Una città è il complesso .

Alcuni altri articoli su questo:

+0

@Abe Um, che cosa? – marcog

+0

Sì, sono con Abe su questo. Qualcosa che a quanto pare mi sta dicendo di rendere il mio lavoro facile da capire è molto difficile da capire. Uh, penso. – Malvolio

+0

@Malvolio Per favore, spiegami che cosa stai trovando così difficile da capire? Penso di averlo detto abbastanza semplicemente. – marcog

0

non ho letto questo libro.

complesso è a mio parere una soluzione che potrebbe non essere facile da capire ma è scritta in codice semplice e logico.

complicato è una soluzione che potrebbe essere semplice (o complessa) ma è scritta in codice che non è facile da capire perché non ci sono schemi o logica in esso e nessuna metafore e denominazione appropriate.

+3

Non è un libro, "importa questo", lo puoi vedere con il numero – flycondor

+0

@flycondor Grazie, ora ha più senso – Christian

0

I sistemi complicati sono altamente accoppiati e quindi fragili.

I sistemi complessi sono costituiti da parti semplici che operano insieme per creare un comportamento emergente complesso. Mentre i comportamenti emergenti possono ancora essere una sfida, le singole parti possono essere isolate, studiate e debuggate. Le singole parti possono essere rimosse e riutilizzate.

io commento più su questo argomento e fornire esempi on my blog