Стандартная библиотека или написание собственных реализаций алгоритмов

Рейтинг: 0Ответов: 2Опубликовано: 15.03.2011

Когда выгодно отказаться от стандартных функций?

Ответы

▲ 4Принят

Иногда случается, что у вас какой-то специфичный случай, в котором обощённый подход, реализованный в стандартной библиотеке неэффективен. В таких случаях можно блеснуть своими знаниями и реализовать что-то самостоятельно. Однако, нужно стараться сдерживать себя от подобных выпадов. Разумеется, интересно реализовать самому какое-нибудь красно-чёрное дерево с быстрым произвольным доступом по индексу, но если если это не критично, то не стоит ввязываться. Вы должны понять, что за код, написанный вами в серьёзном проекте приходится платить дважды, а то и трижды. Это и тестирование (многократное на каждой фазе проекта + на каждый релиз + бывают промежуточные), это и поддежка (другие люди придут и им придётся в этом разбираться и как-то поддерживать) и багфиксинг (представляете, если в вашей реализации затесается ошибочка, а вы уже ушли из проекта.. как думаете, быстро пофиксят КЧ-дерево студенты-старшекурсники? :)) )

▲ 3

Ну, обычно подобным велосипедостроительством нет смысла заниматься - стандартные библиотеки/функции/алгоритмы давным-давно отработаны и доведены до хорошего состояния.

Но иногда всё же приходится - например, в условиях сильной нехватки ресурсов, когда нужно экономить очень сильно.

  • Заточить функции под конкретный набор исходных данных (экономия программной памяти);
  • Оптимизировать выполнение функции на конкретной платформе (экономия времени выполнения);

Ну или что-то аналогичное. Если есть возможность использовать стандартное - лучше всё-таки использовать =)