Mykola's Patch

Personal blog of Mykola Denysiuk

Никогда не покупайте 3rd party библиотек без исходников

Копался я тут 3 часа в одном неприятном баге, когда делая drag&drop в собственный namespace extension для Windows Explorer в одном случае операция move проходила успешно, а во втором (если бросать элемент на дерево в левой части), Explorer впоследствии пытался удалять только что перемещенный элемент. Это вполне успешно у него удавалось, т.к. для обозначения элементов используются id, а не пути, как при работе с “обычной” файловой системой.

Уже и документацию читал и stackoverflow искал, и разные шаманства, и перебор разных вариантов перепробовал, ничего не помогало. Казалось все это неким voodoo programming, пока я не заглянул в исходники библиотеки (для “легкого построения namespace extensions) и не прочитал комментарии к коду в теле одного из методов объекта, описывающего данные для drag&drop. После этого все стало понятно, т.к. стандартное поведение (с удалением источника после выполнения move) смысл имеет, но точно не в нашем случае.

Вывод: покупать 3rd party библиотеку обязательно надо с исходниками. Никакая документация часто не сможет помочь так, как простой комментарий к коду, написанный авторами самими для себя.

blog comments powered by Disqus
Яндекс.Метрика