Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Общие темы > Болтовня

Болтовня Разговоры на любые темы (думайте, о чем пишите)

Ответ
 
Опции темы
Старый 02.03.2015, 01:47   #16
Samodelkin
Мастер
 
Регистрация: 12.01.2009
Сообщений: 979
Написано 388 полезных сообщений
(для 631 пользователей)
Ответ: C\C++

Сообщение от Igor Посмотреть сообщение
ссылочка на хабр
Вот пример - ошибку в сортировке timsort нашли только тогда, когда попытались математически доказать корректность алгоритма. И то, нашли только сейчас, и некорректная реализация оказалась в Android SDK, Oracle JDK и OpenJDK.
Принципы работы сортировок, списков, деревьев знать надо, но писать их самому "просто потому что могу" не стоит.
Ну в общем это очень экзотический случай, но он тоже имеет место быть.

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

Когда ты понимаешь суть работы алгоритма, твои ошибки могут быть в синтаксисе или каких-то опечатках, но они при пошаговой отладке легко находятся и исправляются. Ты контролируешь свой код. Если же ты не знаешь как работает код тебе гораздо сложнее понять почему у тебя программа работает неправильно. А если действительно ошибка в стандартной библиотеке, а пользователь ей на 100% доверяет?

Я могу привести много примеров когда разработчики использовали чужие движки или софт в котором не разбирались и это приводило к большим проблемам когда баги возникали внутри этого софта.

Если ты используешь чужой софт то его нужно изучить, порой это не легче чем написать свой, поэтому и выбор не такой однозначный.

Ещё одно важное различие: одно дело придумать новый алгоритм, другое дело написать ручками, но всё же уже придуманный алгоритм. Когда я говорю что написал свою сортировку это значит только то что я взял известный алгоритм, просто адаптировал его под свои задачи, мне требовались изменения в коде, вот и всё.

Так что не всё так просто: для каждой отдельной ситуации есть своё оптимальное решение.

[doublefatmode=ON]
Сообщение от ABTOMAT
Смысл этого топика "Я хочу в 10 раз больше писать кода, который в 20 раз сложнее обслуживать ради 0.05% улучшения производительности" ?
Извини, но ты уже более чем десятый человек реагирующий подобным образом, мне остаётся только сказать что-то типа "разберись сначала с этим (или хотя бы прочитай что я выше написал), а потом говори во сколько раз больше кода, во сколько раз он сложнее и на сколько улучшается производительность".
[/doublefatmode]
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 19:22.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com