Здравствуйте, Kore Sar, Вы писали:
KS>Я специально написал в исходном сообщении не "открытого кода", а "кода свободного использования". Т.е. давайте не рассматривать код, который хоть и открыт, но запрещен к использованию.
Пардон, был невнимателен.
Далее буду про public domain код, хотя его мне попадалось совсем немного. Народ больше любит GPL, LGPL, BSD и проч. лицензии.
KS>У Вас много опыта использования чужого кода?
Ну, относительно. Как узнать это у меня много или не много.
KS> Какой процент из кода свободного использования написан так, что его нельзя будет нормально юзать?
Из того что я использовал из небольших объемов кода как минимум отрефакторить пришлось почти всё.
Причины:
Или написан в суровом С стиле — куча глобальных переменных, все на сырых указателях и т.п. В таком виде накрывается использование в многопоточном приложении, поэтому переделка неминуема.
Или же написан как кура лапой c совершенно невменяемыми именами функций, переменных и т.п. — причесывание, rename и переделка критических мест.
Или просто плохо читаем — тогда просто проход с "причесыванием" и refactor rename для непонятных имён.
Кардинально переписывать, вникая в алгоритм, и по сути постепенно реализуя его заново пришлось наверное только в 30-40% случаев.
Остальное свелось к причёсыванию кода, покрытию его тестами и приведению к coding standard.
В случае использования стороннего public domain кода больших объемов и также к поставляемому в виде .lib/.dll + .h (т.е. без сурсов) — при необходимости "очеловечить" интерфейс писался враппер, иначе использовалось как есть.
Вообще использование чужого, неподконтрольного тестам кода стараюсь сводить к минимуму — только там, где без него совсем никак.
Где то вот так.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока