"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