ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: "premature optimization is the root of all evil"



Сложность кода не имеет отношения к количеству/вероятности ошибок, это широко распростроненное заблуждение, мой опыт говорит мне что 99% ошибок это не тривиальные, часто связанные с неверным пониманием/постановкой задачи вещи. Программисты которые допускают большое число действительно ошибок, явных, или молоды или ошиблись изначально с выбором спецальности. С другой стороны - каждый день вижу - упертые попытки сделать код "красивым", "правильным" и "читаемым" редко приводят к тому результату которого добивались, хотя случается и такое, но вот чаще просто губят проекты, их проще переписать заново чем привести к живому виду. Особенно это касается ООП, где красивая и вроде бы верная иерархия классов, красивые интерфейсы и т.п. сами по себе вроде бы и вменяемы, но ни один нормальный
человек не способен осилить такое жесткое наследование и т.п.

Оптимизация же конечных, и часто не больших алгоритмов, например, разбор http запроса, могут быть оптимизированы как угодно, и чем более оптимальный код тем лучше. Горе и гнев богов тому кто не сможет разобраться с подобным кодом даже после жестокой оптимизации. Сам алгоритм простой.

Не бывает "преждевременной" оптимизации зато бывает решение задач методом "копипаста похожего куска", а точнее это называется "на отъ...ь". Еще бывает бездумный и бездушный код, когда я вижу такой код от китайцев или индусов, то это нормально, но когда вижу от экс-советских граждан - хочется убить, менталитет и начальный уровень другие.

Gena Makhomed wrote:
Executier Godlike wrote:

Преждевременная оптимизация корень всех зол (с).

В эту фразу я вкладывал такой смысл:

б) оптимизация часто ведёт к сильному усложнению кода. Чем сложнее код
и чем его больше тем проще допустить ошибку.

Д. Кнут не утверждал, что "Efficiency is the root of all evil."
он также не говорил, что "Optimization is the root of all evil."

в фразе "premature optimization is the root of all evil"
ключевым является слово "premature", а не "optimization"

=====================================================================

А теперь, как на самом деле звучала фраза про преждевременную
оптимизацию:

  "We should forget about small efficiencies, say about 97% of the
  time: premature optimization is the root of all evil."
                                              -- Sir Tony Hoare

И если вспомнить, что тогда люди программировали на ассемблере или
прямо двоичными кодами, считали количество инструкций, то станет
понятен настоящий смысл этой фразы.

  What Hoare and Knuth are really saying is that software engineers
  should worry about other issues (such as good algorithm design and
  good implementations of those algorithms) before they worry about
  micro-optimizations such as how many CPU cycles a particular
  statement consumes.

К прочтению:

* The Fallacy of Premature Optimization (обязательно!)
  http://www.acm.org/ubiquity/views/v7i24_fallacy.html

=====================================================================




 




Copyright © Lexa Software, 1996-2009.