"premature optimization is the root of all evil"

Kostya Alexandrov koticka at mail.ru
Wed Oct 28 23:27:00 MSK 2009


Сложность кода не имеет отношения к количеству/вероятности ошибок, это 
широко распростроненное заблуждение,
мой опыт говорит мне что 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
>
> =====================================================================
>





More information about the nginx-ru mailing list