In "The Zen of Python", von Tim Peters, hat mich der Satz "Complex is better than complicated" verwirrt. Kann jemand eine ausführlichere Erklärung oder ein Beispiel geben?Was bedeutet "Komplex ist besser als kompliziert"?
Antwort
Obwohl komplex und kompliziert klingen, bedeuten sie in diesem Zusammenhang nicht dasselbe.
Der Zen sagt also: Es ist in Ordnung, sehr komplexe Anwendungen zu bauen, solange die Notwendigkeit dafür vernünftig ist.
ein Beispiel zu geben:
counter = 0
while counter < 5:
print counter
counter += 1
Der Code ist sehr einfach zu verstehen. Es ist nicht kompliziert. Es ist jedoch kompliziert. Sie müssen die meisten der oben genannten Schritte nicht manuell durchführen.
for i in xrange(5):
print i
Dieser Code ist komplexer als das obige Beispiel. Aber: Wenn Sie die Dokumentation von'xrange' kennen, können Sie sie auf einen Blick verstehen. Viele Schritte sind hinter einer einfach zu bedienenden Oberfläche versteckt.
Mit dem Anwachsen der Prozesse wird die Kluft zwischen kompliziert und komplex immer größer.
Eine Faustregel ist es, die anderen Prinzipien des Zen of Python zu folgen:
Wenn es schwer zu erklären ist, ist es keine gute Idee ist.
Wenn es leicht zu erklären ist, könnte es eine gute Idee sein.
Komplex: Macht viel. Normalerweise unvermeidbar.
Kompliziert: Schwer zu verstehen.
Ich mag dieses Zitat (source):
Eine komplexe Person wie ein iPod ist. Das ist zu sagen, dass sie konsistent sind, geradlinig und "benutzerfreundlich" während auch ziemlich anspruchsvoll. Im Gegensatz zu der komplizierten Person, Interaktion mit einer komplexen Person tut keine besonderen Kenntnisse über ihre komplizierte Wege, weil ihre Möglichkeiten sind nicht kompliziert. Wenn Fehler gemacht werden, neigen sie dazu, sehr zu vergeben , weil sie verstehen, dass Menschen sind nicht perfekt. Kurz gesagt, sie sind reife, vernünftige Menschen.
und dieses (source):
Ein Airbus A380 ist kompliziert. A Qualle ist komplex. Das Netz der Pariser Metro ist kompliziert. Wie Leute verwenden ist es komplex. Dein Skelett ist kompliziert. Du bist komplex. Ein Gebäude ist kompliziert. Eine Stadt ist Komplex.
Einige weitere Artikel zu diesem Thema:
Ich habe dieses Buch nicht lesen.
Komplex ist meiner Meinung nach eine Lösung, die nicht einfach zu verstehen ist, aber in einfachen und logischen Code geschrieben ist.
kompliziert ist eine Lösung, die einfach (oder komplex) sein kann, aber in Code geschrieben ist, der nicht leicht zu verstehen ist, weil es keine Muster oder Logik darin gibt und keine richtigen Metaphern und Benennungen.
Komplizierte Systeme sind stark gekoppelt und daher zerbrechlich.
Komplexe Systeme bestehen aus einfachen Teilen, die zusammenarbeiten, um ein komplexes Verhalten zu erzeugen. Während das entstehende Verhalten immer noch eine Herausforderung sein kann, können die einzelnen Teile isoliert, untersucht und getestet werden. Einzelne Teile können entfernt und wiederverwendet werden.
I Kommentar mehr zu diesem Thema und Beispiele liefern on my blog
- 1. Warum ist CountDownLatch so kompliziert?
- 2. Warum ist `[` besser als `Teilmenge`?
- 3. Ist org.junit.Assert.assertThat besser als org.hamcrest.MatcherAssert.assertThat?
- 4. Ist dd besser als Katze?
- 5. Java-Thread, was ist besser?
- 6. GLScissors: Was ist schneller/besser?
- 7. Singleton Pattern - was ist besser?
- 8. Was bedeutet "Code als Daten"?
- 9. NSDictionary oder NSObject mit NSStrings als Eigenschaften, was ist besser?
- 10. Was macht Flinke besser als Shiro?
- 11. Ist eine Sammlung besser als eine LinkedList?
- 12. Wann ist AtomicInteger besser als synchronisiert?
- 13. Was Lisp ist besser zu analysieren?
- 14. Was ist besser H2 oder HSQLDB?
- 15. Was ist besser Params oder Liste
- 16. Was ist besser, ETL oder ELT?
- 17. Django, Turbo Gears, Web2Py, was ist besser für was?
- 18. PHP - beenden oder zurück, was ist besser?
- 19. Warum ist .Net MVC-Architektur so über Rails kompliziert?
- 20. accdb vs mdb. Was ist schneller/besser?
- 21. Was bedeutet => in JavaScript? (ist größer als)
- 22. Warum ist ACCESS_ONCE so komplex?
- 23. Was bedeutet ‚Semikolon‘ bedeutet als eine Einheit der Größe
- 24. Inwiefern ist Mercurial besser/schlechter als TFS?
- 25. Ist javax.xml.soap besser als Apache cxf?
- 26. ist XmlFormat() immer besser als htmlEditFormat()?
- 27. Ist ST_GeomFromText besser als direkte Geometrie?
- 28. Wann ist `new Error()` besser als `Error()`?
- 29. Was ist ((Fenster) => {...}) (Fenster); was bedeutet,
- 30. Was ist POI und was bedeutet es?
@Abe äh, was? – marcog
Ja, ich bin mit Abe hier. Etwas, das mir anscheinend sagt, dass ich meine Arbeit leicht verständlich machen muss, ist sehr schwer zu verstehen. Äh, denke ich. – Malvolio
@Malvolio Bitte erklären Sie mir, was Sie so schwer zu verstehen finden? Ich denke, ich habe es ganz einfach gesagt. – marcog