К патчу обезьяны или не к?

Я думаю, что вы должны использовать XmlDocument вместо XElement в вашем коде. Тип данных для ProcessData, MetaData и ResultData должен быть XmlDocument.

10
задан Mechanical snail 13 September 2012 в 00:28
поделиться

3 ответа

Не делайте!

Особенно с бесплатным программным обеспечением, у Вас есть все возможности там для получения изменений в основное распределение. Но если у Вас будет слабо зарегистрированный взлом в Вашей локальной копии, то Вы никогда не будете мочь поставить продукт, и обновляющий до следующей версии проклятий (обновления системы защиты любой) будет очень высокая стоимость.

См. этот ответ для взгляда на то, что возможно на внешних кодовых базах. Связанный скринкаст действительно стоит часов. Внезапно грязный взлом превращается в ценный вклад.

Если Вы действительно не можете получить патч в восходящем направлении по любой причине, по крайней мере, создайте локальное (мерзавец) repo, чтобы отследить в восходящем направлении и иметь Ваши изменения в отдельном ответвлении.

Недавно я столкнулся с точкой, где я должен принять исправление обезьяны как последнее средство: Марионетка является "выполненной везде" частью кода Ruby. Так как агент должен работать - потенциально сертифицированный - системы, он не может потребовать определенной рубиновой версии. У некоторых из тех есть ошибки, которые могут работаться вокруг исправляющими обезьяну избранными методами во времени выполнения. Эти патчи являются определенными для версии, содержатся, и цель замораживается. Я не вижу никакую другую альтернативу там.

8
ответ дан 3 December 2019 в 22:39
поделиться

Я сказал бы, не делают.

Каждый патч обезьяны должен быть исключением и отмеченный (например, с//комментарий ВЗЛОМА) как таковой, таким образом, их легко отследить назад.

Как все мы знаем, это - все к легкому для отъезда ужасного кода на месте, потому что это работает, итак, почему больше проводят время на нем. Таким образом, ужасный код будет там в течение долгого времени.

4
ответ дан 3 December 2019 в 22:39
поделиться

Я думаю, что вопрос не может быть рассмотрен с единственным категорическим ответом yes-no/good-bad - различия между языками и их реализациями нужно рассмотреть.

В Python нужно рассмотреть, может ли класс быть исправлен обезьяной вообще (см. это ТАК вопрос для обсуждения), который касается Python немного реализация меньшего-количества-OO. Таким образом, я был бы осторожен и склонен израсходовать некоторое усилие, ища альтернативы перед исправлением обезьяны.

В Ruby OTOH, который был создан, чтобы быть OO вниз в интерпретатор, классы, может быть изменен независимо от того, реализованы ли они в C или Ruby. Даже Объект (в значительной степени базовый класс всего) открыт для модификации. Таким образом исправляющий обезьяну скорее более с энтузиазмом принят как техника в том сообществе.

0
ответ дан 3 December 2019 в 22:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: