В "Дзен Питона", Тим Петерс, предложение "Комплекс лучше, чем сложный" смутило меня. Может ли кто-нибудь дать более подробное объяснение или пример?
Что означает "Комплекс лучше, чем сложный"?
Ответ 1
хотя и сложный и сложный звук, они не означают одинакового в этом контексте.
Таким образом, Дзен говорит: "Это нормально для создания очень сложных приложений, если это необходимо".
Чтобы привести пример:
counter = 0
while counter < 5:
print counter
counter += 1
Код очень легко понять. Это не сложно. Однако это сложно. Вам не нужно вручную выполнять большинство описанных выше шагов.
for i in xrange(5):
print i
Этот код более сложный, чем приведенный выше пример. Но: зная документацию об "изменении", вы можете понять это одним взглядом. Многие шаги скрыты за простым в использовании интерфейсом.
По мере роста процессов разрыв между сложным и сложным становится все шире и шире.
Общее правило состоит в том, чтобы следовать другим принципам Zen Python:
Если это трудно объяснить, это не очень хорошая идея.
Если это легко объяснить, это может быть хорошей идеей.
Ответ 2
Комплекс: много. Обычно неизбежно.
Сложно: Трудно понять.
Мне нравится эта цитата (источник):
Сложный человек подобен iPod. Что заключается в том, что они являются последовательными, просто и удобно а также довольно сложный. В отличие от сложного человека, взаимодействие со сложным человеком не требуют специальных знаний об их сложные способы - потому что их пути не сложны. Когда ошибки они, как правило, очень прощают потому что они понимают, что люди являются несовершенными. Короче говоря, они зрелые, разумные люди.
и этот (источник):
Airbus A380 сложный. Медуза сложная. Парижский метрополитен сеть сложна. Как люди используют это сложно. Ваш скелет сложно. Вы сложны. здание сложное. Город комплекс.
Еще несколько статей по этому поводу:
Ответ 3
Я не читал эту книгу.
комплекс - это, на мой взгляд, решение, которое может быть нелегко понять, но написано простым и логическим кодом.
сложное - это решение, которое может быть простым (или сложным), но написано в коде, что непросто понять, потому что в нем нет шаблонов или логики и нет правильных метафор и имен.
Ответ 4
Сложные системы сильно связаны и, следовательно, хрупки.
Сложные системы состоят из простых частей, работающих вместе для создания сложного эмерджентного поведения. В то время как возникающее поведение может все еще быть проблемой, отдельные части могут быть изолированы, изучены и отлажены. Отдельные части можно удалить и повторно использовать.
Я прокомментирую эту тему и приведу примеры в своем блоге
Ответ 5
Для "сложных" трудная вещь находится на поверхности. (Ваше описание сложное.)
Для "сложных" трудная вещь находится под столом. (Автомобиль сложный.)
Так же, как показано на примерах EinLama.